Skip to content

Workers Toolset

The Workers toolset creates tools that delegate tasks to other agents or teams in the pool. Each configured worker becomes an ask_<name> tool that the agent can use.

Overview

Workers allow building hierarchies where a manager agent can delegate specialized tasks to worker agents or teams. This is useful for:

  • Task specialization: Different agents handle different domains
  • Parallel processing: Delegate multiple tasks to workers
  • Team coordination: Use entire teams as workers for complex tasks

Basic Usage

agents:
  manager:
    toolsets:
      - type: workers
        workers:
          - name: code_reviewer
            type: agent
          - name: researcher
            type: agent
            pass_message_history: true

This creates tools ask_code_reviewer and ask_researcher for the manager agent.

Toolset Configuration

Workers Toolset

Configuration for worker agent tools.

Workers are agents or teams registered as tools for the parent agent. This provides a predefined set of worker tools based on configuration.

Workers Toolset (YAML)
1
2
3
4
toolsets:
- type: workers
  workers: []  # List of workers to register as tools.
  namespace: null  # Optional namespace prefix for tool names

Worker Types

Agent Workers

Standard agents with history management options:

toolsets:
  - type: workers
    workers:
      - name: helper_agent
        type: agent
        reset_history_on_run: true    # Clear history before each run (default)
        pass_message_history: false   # Don't share parent's context (default)
Option Default Description
reset_history_on_run true Clear worker's conversation history before each run
pass_message_history false Pass parent agent's message history to worker

Team Workers

Use entire teams as workers:

toolsets:
  - type: workers
    workers:
      - name: research_team
        type: team

Team workers return formatted output with all team member responses.

ACP Agent Workers

Use external ACP-compatible agents (Claude Code, Gemini CLI, etc.):

toolsets:
  - type: workers
    workers:
      - name: claude_code
        type: acp_agent

AG-UI Agent Workers

Use remote AG-UI protocol servers:

toolsets:
  - type: workers
    workers:
      - name: remote_agent
        type: agui_agent

Worker Configuration Reference

TeamWorkerConfig

Configuration for team workers.

Team workers allow using entire teams as tools for other nodes.

TeamWorkerConfig (YAML)
- type: team
  name: web_agent  # Name of the node to use as a worker.

AgentWorkerConfig

Configuration for agent workers.

Agent workers provide advanced features like history management and context sharing between agents.

AgentWorkerConfig (YAML)
1
2
3
4
- type: agent
  reset_history_on_run: true  # Whether to clear worker's conversation history before each run.
  pass_message_history: false  # Whether to pass parent agent's message history to worker.
  name: web_agent  # Name of the node to use as a worker.

ACPAgentWorkerConfig

Configuration for ACP agent workers.

ACP agent workers allow using external ACP-compatible agents as tools. Unlike regular agents, ACP agents manage their own history server-side, so history options are not available.

ACPAgentWorkerConfig (YAML)
- type: acp_agent
  name: web_agent  # Name of the node to use as a worker.

AGUIAgentWorkerConfig

Configuration for AG-UI agent workers.

AG-UI agent workers allow using remote AG-UI protocol servers as tools. Like ACP agents, they manage their own state server-side.

AGUIAgentWorkerConfig (YAML)
- type: agui_agent
  name: web_agent  # Name of the node to use as a worker.

Example: Manager with Specialized Workers

agents:
  code_expert:
    model: openai:gpt-4o
    system_prompts:
      - "You are a code review specialist."

  research_expert:
    model: openai:gpt-4o
    system_prompts:
      - "You are a research specialist."

  manager:
    model: openai:gpt-4o
    system_prompts:
      - "You coordinate tasks between specialists."
    toolsets:
      - type: workers
        workers:
          - name: code_expert
            type: agent
          - name: research_expert
            type: agent
            pass_message_history: true  # Share context with researcher