mirror of
https://github.com/agent0ai/agent-zero.git
synced 2026-07-09 17:08:29 +00:00
Reject document_query during parallel tool-call normalization before worker jobs are started. Add prompt guidance so the model avoids batching document_query, and update DOX plus regressions for the new sequential-only contract.
1.8 KiB
1.8 KiB
parallel
run independent tool calls concurrently, or await/cancel background parallel jobs.
Use only for independent work. Each tool_calls item is a normal tool request object using the same tool_name and tool_args shape as a top-level reply: { "tool_name": "...", "tool_args": { ... } }.
Only tool_name and tool_args are used; if an item is copied from a full reply object, planning fields like thoughts or headline are ignored.
Batch all independent calls that are ready now into one tool_calls list, even when they use different tools. Do not split by tool type.
Rules:
- do not use for one simple call, dependent steps, ordered steps, shared mutable state, or state/tool-availability changes that must happen in the parent context
- never nest
parallel - Never include
document_queryintool_calls; it is too heavy for parallel workers, so call it sequentially. call_subordinateinsideparallelstarts an isolated child chat under the parent chat, not a scheduler task- use
wait: falseonly when you will collect results later withjob_ids - if extras list running or ready parallel jobs, collect them before final synthesis
timeoutonly limits how long this call waits; running jobs continue and can be awaited again byjob_ids
Args: tool_calls, job_ids, wait default true, action as start|await|collect|cancel, timeout.
Start and wait:
{
"tool_name": "parallel",
"tool_args": {
"tool_calls": [
{"tool_name": "call_subordinate", "tool_args": {"message": "Review option A and return key risks.", "reset": true}},
{"tool_name": "search_engine", "tool_args": {"query": "official API changelog release notes"}}
],
"wait": true
}
}
Collect existing jobs:
{"tool_name": "parallel", "tool_args": {"action": "await", "job_ids": ["job-id"], "timeout": 300}}