Skip to main content

Delegation

delegate_task allows a parent agent to spawn an isolated child agent for focused subtasks, then summarize and return results.

What the child agent inherits

The child agent is not a complete copy of the parent but is deliberately constrained:

  • memory.enable=false
  • agent.skip_context_files=true
  • agent.quiet_mode=true
  • tools.delegate_task.enabled=false
  • only allowed built-in tools
  • optional alternate llm config

This makes it more like a "constrained worker call" than an unbounded multi-agent tree.

Parameters

ParameterDescription
goalsubtask goal, required
contextbackground info or constraints
allowed_toolstool whitelist visible to child agent
max_iterationsmax iterations for child agent

Config

tools:
delegate_task:
enabled: true
max_depth: 2
max_iterations: 20
blocked_tools:
- delegate_task

You can also configure tools.delegate_task.model to use a cheaper or faster model for subtasks.

Guardrails

  • disabled by default, requires explicit tools.delegate_task.enabled
  • refuses to spawn when current_depth >= max_depth
  • blocked_tools always takes precedence over allowed_tools
  • child agent returns only a structured status and plain text summary

Example

{
"tool": "delegate_task",
"goal": "Summarize the HTTP channel implementation and list public endpoints",
"allowed_tools": ["read", "exec"],
"max_iterations": 8
}