Multi-Agent Workflows in Qodo Command
Multi-Agent Workflows in Qodo Command
Qodo Command supports combining multiple agents into workflows through three distinct chaining mechanisms, each optimized for different handoff patterns:
Context chaining (
>) — next agent receives a task-focused summary of previous step(s)Pipe chaining (
|) — next agent receives structured outputs as command argumentsSub-agents — agents call other agents as tools during execution
This guide uses review and review_ranked as example agents to illustrate the chaining patterns.
Context Chaining (>)
>)Context chaining runs agents sequentially. Before each agent starts, Qodo preloads a task-focused summary of previous sessions, providing the proper context without explicit wiring.
Use when:
The downstream agent should start with prior conclusions
The agent can infer its task from context rather than requiring strict inputs
Syntax:
qodo chain "agentA > agentB > agentC"Always quote the chain to prevent shell interpretation of special characters.
Example:
qodo chain "review > review_ranked"
qodo chain "review --set pr=https://github.com/owner/repo/pull/123 > review_ranked"Note: If your downstream agent requires specific structured inputs (e.g., review_ranked expects summary and findings), prefer pipe chaining or make those arguments optional.
Pipe Chaining (|)
|)Pipe chaining automatically maps the previous agent's structured output into --set arguments for the next agent. This creates a clear data contract between steps.
Use when:
You have explicit field dependencies between agents
The consuming agent requires specific, structured inputs
You want deterministic, machine-to-machine handoffs
How it works:
The producing agent's output_schema fields are mapped to the consuming agent's arguments. For example:
review outputs: { "summary": "...", "findings": [...] }
review_ranked receives: --set summary="..." --set findings="[...]"This automatic field mapping makes pipe chaining ideal for structured data handoffs.
Syntax:
# Minimal (auto-pipe structured output)
qodo chain "review | review_ranked"
# With arguments to first step
qodo chain "review --set pr=https://github.com/owner/repo/pull/123 | review_ranked"Requirements:
Producing agent: Must define
output_schemawith the fields to passConsuming agent: Must define
argumentswith matching names and types
Sub-agents
Sub-agents allow an agent to invoke other agents as tools during its run. Sub-agents execute in child processes but surface all activity in the parent's UI and approval flow.
Use when:
The parent agent should dynamically decide which specialized agents to invoke
Steps are optional or conditional
You need a supervisor/specialist delegation pattern
Implementation:
Sub-agents are exposed as tools with the naming pattern subagents__<agent_name>. The parent agent's instructions determine when and how to invoke them.
Example orchestrator instructions:
First, run subagents__review with the PR URL. If there are more than 10
critical findings, run subagents__review_ranked to prioritize the top issues.
Return a final summary.Behavior:
Sub-agents inherit auto-approvals from the parent
Non-auto-approved tool calls prompt in the parent's UI
The currently running agent is not exposed as a sub-agent (prevents recursion)
Pattern Selection
Context chaining (>):
The next agent needs awareness of prior work
Flexible, context-driven handoffs
The agent can infer the task from the summary
Pipe chaining (|):
Strict field dependencies
Structured, deterministic data flow
Clear contracts between agents
Ideal for workflows like
review → review_rankedwhere outputs map to inputs
Sub-agents:
Dynamic workflow decisions
Conditional or optional steps
Hierarchical delegation patterns
Hybrid approach: Chain top-level phases with > or |, and use sub-agents within phases for dynamic delegation.
Example Workflow: Review Pipeline
The following examples demonstrate chaining patterns using review and review_ranked agents, where:
reviewproduces structured output withsummaryandfindingsfieldsreview_rankedconsumes those fields to prioritize findings
Single agent execution
qodo run review --set pr=https://github.com/owner/repo/pull/123Pipe chain (recommended for this pattern)
qodo chain "review --set pr=https://github.com/owner/repo/pull/123 | review_ranked"This automatically passes review's structured output (summary and findings) to review_ranked's arguments.
Context chain configuration
To use context chaining between these agents, modify review_ranked's argument requirements:
Make arguments optional to accept context instead of strict inputs
arguments = [
- { name = "summary", type = "string", required = true, description = "High-level summary of the PR analysis." },
- { name = "findings", type = "array", required = true, description = "List of issues findings (each in json format) extracted from a PR unified git diff code review." }
+ { name = "summary", type = "string", required = false, description = "High-level summary of the PR analysis." },
+ { name = "findings", type = "array", required = false, description = "List of issues findings (each in json format) extracted from a PR unified git diff code review." }
]Then run:
qodo chain "review --set pr=https://github.com/owner/repo/pull/123 > review_ranked"Note: This modification is primarily for demonstrating context chaining. For production pipelines where strict input validation is critical, keep required arguments and use pipe chaining.
Sub-agent orchestration
Create an orchestrator agent that dynamically invokes both agents based on runtime conditions. The orchestrator's instructions might specify:
When to call
subagents__reviewConditions for calling
subagents__review_rankedHow to synthesize results
Troubleshooting
Shell interpretation issues
Always quote the entire chain string:
# Correct
qodo chain "review > agent2"
# Incorrect - shell will interpret > as output redirection
qodo chain review > agent2Pipe chain missing fields
If | reports missing fields:
Verify that the producing agent outputs those fields in its
output_schemaConfirm that the consuming agent declares them as
argumentsEnsure field names match exactly (case-sensitive)
Passing additional arguments
Use --set to provide arguments to specific steps:
qodo chain "review --set pr=... > review_ranked --set max_findings=5"Command Reference
# Context chain
qodo chain "agentA > agentB > agentC"
# Pipe chain
qodo chain "agentA | agentB | agentC"
# Arguments to specific steps
qodo chain "agentA --set key=value | agentB --set key=value"Design Principles
Use
>for flexible handoffs where agents work from a summarized contextUse
|for strict contracts where exact field mapping is requiredUse sub-agents for dynamic logic where runtime conditions determine workflow
Validate field mappings by ensuring output schemas match argument definitions
Quote all chains to avoid shell interpretation issues
Last updated