← Back to Agentish Framework Guide
Chapter 5 The Worker Node
Subtask delegation and specialized tool execution
A Worker Node is a subtask agent. Unlike LLM Nodes which participate in the main execution flow, Workers are called by an LLM Node as a tool. The LLM decides when to invoke the Worker, the Worker does its job, and returns the result back to the calling LLM.
How Workers Differ from LLM Nodes
| Aspect | LLM Node | Worker Node |
|---|---|---|
| Flow participation | Part of the main execution graph. Has flow edges (in and out). | Not part of flow. Connected to an LLM Node as a tool binding. |
| Invocation | Runs when execution reaches it via an edge. | Runs when the parent LLM decides to call it (like a tool). |
| Output | Writes to state variables via structured output. | Returns a fixed format: {result: str, success: bool}. |
| State access | Reads via input_state_keys, writes via output_state_keys. | Has its own system prompt and tools but returns only result + success. |
When to Use Workers
- Complex tool tasks — When a tool call requires multi-step reasoning (e.g., “decompile the function, analyze the code, find the key”), delegate to a Worker instead of making the parent LLM do it all.
- Isolation — Workers have their own conversation context. They don’t pollute the parent LLM’s context window with tool call details.
- Specialization — Give the Worker a focused system prompt and a narrow set of tools for one specific job.
Inspector Fields
| Field | Purpose |
|---|---|
| Node title | Display name. Must be unique. This becomes the tool name the parent LLM sees. |
| Description | Brief description of what the Worker does. Shown to the parent LLM as the tool description. |
| System prompt | Instructions for the Worker’s reasoning. |
| Selected tools | Tools the Worker can use to complete its subtask. |
| Max tool iterations | Safety limit on the Worker’s tool loop. |
| Iteration warning message | Warning when approaching the tool limit. |
Connecting Workers
To connect a Worker to an LLM Node, draw an edge from the LLM Node’s output to the Worker’s input. This does not create a flow edge — it creates a tool binding. The Worker appears as an available tool in the parent LLM’s tool list.
Rule: Every Worker must be connected to at least one LLM Node.
An unconnected Worker will never be called. The topology validator will produce:
"Worker node 'Recon Agent' (id=5) is not connected to any LLM
node and will never be called."ASL Representation
ASL — Worker Node
{
"id": "5",
"type": "WorkerNode",
"label": "Recon Agent",
"config": {
"title": "Recon Agent",
"description": "Performs reconnaissance on the target binary.",
"system_prompt": "You are a reconnaissance agent. Use the available
tools to enumerate functions, strings, and imports in the binary.
Return a summary of your findings.",
"selected_tools": ["list_functions", "check_strings"],
"max_tool_iterations": 10,
"iteration_warning_message": "Wrap up reconnaissance."
}
}Chapter Summary
Key Takeaways:
- Workers are subtask agents invoked by LLM Nodes as tools.
- They return a fixed
{result, success}format. - Use Workers for complex tool tasks that benefit from isolation and specialization.
- Every Worker must be connected to at least one LLM Node.
- The Worker’s title becomes the tool name the parent LLM sees.