Skip to content

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 5

Outcome: 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:

python3 deploy_local_cookbook_agents.py deploy
python3 deploy_local_cookbook_agents.py serve

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.