All nodes/AI/Agent State
Agent Skills
A set of skills for the agent: each skill is a set of instructions in the system prompt. The agent can activate/deactivate skills dynamically. Connected via link_extension.
Type in the graph: agent_skills
ToolExecStateful
An error branch can be enabled (expose_error_output) to handle failures on their own path.
Try it
Minimal working workflow
- Execute + Data
- Data
Runs as pasted
When to use it
Skills are for one agent that has to behave differently in different situations, when keeping every instruction in a single system prompt has stopped being workable: refund rules, the tone for a complaint, the order-placement procedure. A skill is a name, a short description and a block of instructions. Only the instructions of enabled skills reach the prompt, and the model can switch them on and off as the conversation goes.
How it works
A <skills> block is added to the system prompt: first an index of every skill with its state
and description, then the full text of the enabled ones, then the names of the disabled ones. The
model sees what is available and switches with the agent_skill_activate and
agent_skill_deactivate tools — it decides by the description, so an empty description all
but guarantees the skill is never turned on.
Each skill gets its own Skill N input port, appearing as you add skills. Tools wired into a skill’s port are advertised to the model only while that skill is enabled. That is the real point of the node: not just the instruction text but the set of available tools changes with the mode of work.
Only the on/off flag is persisted between turns, keyed by the skill’s name. Texts, descriptions and wiring are taken from the current configuration every time, so an edited instruction reaches conversations already under way immediately, while the state of the switches is not lost.
The Set active port (revealed by “Set active skills from input”) is gentler than its
counterparts on Agent Memory and
Agent Plan: it takes a map like {"refunds": true} and flips only
the flags of skills matched by name. The library is not replaced, and unknown names are ignored.
Common mistakes
- Expecting the right skill to switch itself on. The model chooses. If a skill must always apply, leave it active from the start or move its text into the agent’s system prompt.
- Wiring tools straight to the agent and expecting the skill to hide them. Only tools wired into the skill’s own port are gated.
- Two skills with the same name. Switching finds the first one; the second stays out of reach.
- An empty skill list with tools enabled. While the library is empty, the management tools are not advertised at all — the node is on the canvas and has no effect.
- Wiring the output into the agent’s Memory port. This node connects over an extension link into the Extensions port of AI Agent.
Inputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Set activeskills_in | Execute + Dataexecute_data | object | shown when overwrite_from_input = true |
Skill 1skill_0 | Extensionlink_extension | — |
Outputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Agentoutput | Extensionlink_extension | — | |
Activeskills_out | Datadata | object | shown when expose_skills_output = true |
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
Edit Modeedit_mode | string | editor | UI mode for editing skills: json (textarea) or editor (visual form) Options: |
Enabled Toolsenabled_tools | array<string> | ["activate","deactivate"] | Which skill management tools are available to the LLM. Nothing is exposed while the skill list is empty. |
Active outputexpose_skills_output | boolean | false | Show a data output port that emits the current {skill: active} map. |
Expose Tools to LLMexpose_tools | boolean | true | Allow LLM to call skill management tools (activate/deactivate) |
Initial Skillsinitial_skills | array | [] | Initial skills to load (each skill has name, description, prompt, active) |
Set active skills from inputoverwrite_from_input | boolean | false | Show a skills (ED) input port (a {skill_name: bool} map) whose firing merges the active flags of matching skills, plus a 'History set' exec output that fires once written. |
Shared fields
Every node has these three — the platform adds them, not the node author.
expose_error_output— When enabled, show an execution output to connect nodes that run if this step fails.