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.

Agent SkillsT▶S
Set active skillsAgent extension
Skill 1Active skills

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

Entry
Agent SkillsT▶S
Exit▶
  • Execute + Data
  • Data
Press “Copy nodes”, open the editor and hit Ctrl+V on the canvas.

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

PortWirePayloadNotes
Set active skillsskills_inExecute + Dataexecute_dataobject

shown when overwrite_from_input = true

Skill 1skill_0Extensionlink_extension—

Outputs

PortWirePayloadNotes
Agent extensionoutputExtensionlink_extension—
Active skillsskills_outDatadataobject

shown when expose_skills_output = true

Configuration

FieldTypeDefaultDescription
Edit modeedit_modestringeditor

UI mode for editing skills: json (textarea) or editor (visual form)

Options: json — As text, editor — As a form

Enabled toolsenabled_toolsarray<string>["activate","deactivate"]

Which skill management tools are available to the LLM. Nothing is exposed while the skill list is empty.

Active outputexpose_skills_outputbooleanfalse

Show an output that hands on which skills are currently active.

Expose Tools to LLMexpose_toolsbooleantrue

Allow LLM to call skill management tools (activate/deactivate)

Initial skillsinitial_skillsarray[]

Initial skills to load (each skill has name, description, prompt, active)

Set active skills from inputoverwrite_from_inputbooleanfalse

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.