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. Connects to the agent's 'Agent extensions' input.
Type in the graph: agent_skills
ToolExecStateful
An error output can be enabled to handle failures on their own path.
Try it
Minimal working scenario
- 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 skills 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 Agent extensions port of AI Agent.
Inputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Set active skillsskills_in | Execute + Dataexecute_data | object | shown when overwrite_from_input = true |
Skill 1skill_0 | Extensionlink_extension | — |
Outputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Agent extensionoutput | Extensionlink_extension | — | |
Active skillsskills_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 an output that hands on which skills are currently active. |
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 an input port that both runs this step and brings a value: a map of skill name to on/off, merged into the active flags of matching skills. Also shows its Success output, which fires once the write is done. |
Shared fields
Every node has these three — the platform adds them, not the node author.
expose_error_output— Show an output that runs if writing the skills state fails.