Specialist review
%%{init: {'look': 'handDrawn', 'theme': 'base', 'themeVariables': {'primaryColor': '#eef2ff', 'primaryBorderColor': '#1e40af', 'primaryTextColor': '#1e293b', 'lineColor': '#1e3a8a', 'edgeLabelBackground': '#ffffff', 'clusterBkg': '#fbfcff', 'clusterBorder': '#2563eb', 'fontFamily': '-apple-system, system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif', 'fontSize': '15px'}, 'flowchart': {'nodeSpacing': 50, 'rankSpacing': 58, 'padding': 14, 'htmlLabels': true, 'curve': 'basis'}}}%%
flowchart LR
P(["Prompt"]) --> S
subgraph agents["two deployed agents · at the same time"]
direction TB
S("Security reviewer")
R("Reliability reviewer")
end
P --> R
S --> O("Two independent<br/>opinions")
R --> O
style agents stroke-dasharray: 6 5Outcome: obtain independent security and reliability recommendations concurrently, then join their durable results.
Prerequisites and contract
Download the companion deploy_local_cookbook_agents.py into your working directory; it deploys and serves security-reviewer and reliability-reviewer alongside the other cookbook agents:
Input is prompt; output contains both recommendations. The recipe intentionally has no synthesis or write: keep a human/policy boundary between recommendations and actions.
Runnable definition
Save this as parallel-specialist-review.json:
{
"name": "parallel_specialist_agent_review",
"version": 1,
"schemaVersion": 2,
"description": "Derived from ai/examples/33-conductor-agent-multi-agent.json. A FORK_JOIN fans out to the deployed security-reviewer and reliability-reviewer agents, then a JOIN collects both.",
"tasks": [
{
"name": "fork_agents",
"taskReferenceName": "fork_agents_ref",
"type": "FORK_JOIN",
"forkTasks": [
[
{
"name": "run_security_reviewer",
"taskReferenceName": "run_security_reviewer_ref",
"type": "AGENT",
"inputParameters": {
"agentType": "conductor",
"name": "security-reviewer",
"prompt": "${workflow.input.prompt}"
}
}
],
[
{
"name": "run_reliability_reviewer",
"taskReferenceName": "run_reliability_reviewer_ref",
"type": "AGENT",
"inputParameters": {
"agentType": "conductor",
"name": "reliability-reviewer",
"prompt": "${workflow.input.prompt}"
}
}
]
]
},
{
"name": "join_agents",
"taskReferenceName": "join_agents_ref",
"type": "JOIN",
"joinOn": [
"run_security_reviewer_ref",
"run_reliability_reviewer_ref"
]
}
]
}
Register and run
conductor workflow create parallel-specialist-review.json
conductor workflow start -w parallel_specialist_agent_review --sync -i '{"prompt":"Review this architecture proposal."}'
Production notes
- Bound each agent separately so one specialist can't consume the other's budget.
- Scope tool permissions per agent. Independent reviewers should not share reach.
- Keep each execution ID and reconcile reruns by correlation ID.
- This produces opinions, not actions. Put a decision step after it.