Agent profiles that demonstrate cross-provider workflows where a supervisor on one
provider delegates to workers on different providers via the provider key in
their frontmatter.
Each worker profile is identical to its counterpart in examples/assign/ except for
the added provider field. When a supervisor calls assign or handoff with one of
these profiles, CAO reads the provider key and launches the worker on that provider —
regardless of which provider the supervisor is running on.
| Profile | Description |
|---|---|
cross_provider_supervisor.md |
Supervisor that delegates to cross-provider workers |
| Profile | Provider Override |
|---|---|
data_analyst_claude_code.md |
claude_code |
data_analyst_gemini_cli.md |
gemini_cli |
data_analyst_kiro_cli.md |
kiro_cli |
These are not referenced by the default supervisor profile but are available if you want to use other providers:
| Profile | Provider Override |
|---|---|
data_analyst_codex.md |
codex |
data_analyst_copilot_cli.md |
copilot_cli |
| Profile | Provider Override |
|---|---|
report_generator_codex.md |
codex |
- Start the CAO server:
cao-server- Install the agent profiles:
# Supervisor
cao install examples/cross-provider/cross_provider_supervisor.md
# Default worker profiles (used by the supervisor)
cao install examples/cross-provider/data_analyst_claude_code.md
cao install examples/cross-provider/data_analyst_gemini_cli.md
cao install examples/cross-provider/data_analyst_kiro_cli.md
cao install examples/cross-provider/report_generator_codex.md- Launch the supervisor:
# Using Kiro CLI (workers on Claude Code + Gemini CLI + Kiro CLI + Codex)
cao launch --agent-profile cross_provider_supervisor --provider kiro_cli
# Or specify a different provider for the supervisor
cao launch --agent-profile cross_provider_supervisor --provider claude_code
cao launch --agent-profile cross_provider_supervisor --provider codex
cao launch --agent-profile cross_provider_supervisor --provider gemini_cli
cao launch --agent-profile cross_provider_supervisor --provider kimi_cli
cao launch --agent-profile cross_provider_supervisor --provider copilot_cliIn the supervisor terminal, try this example task:
Analyze these datasets and create a comprehensive report:
- Dataset A: [1, 2, 3, 4, 5]
- Dataset B: [10, 20, 30, 40, 50]
- Dataset C: [5, 15, 25, 35, 45]
Calculate mean, median, and standard deviation for each dataset.
Generate a professional report with the analysis results.
The default supervisor uses data_analyst_claude_code, data_analyst_gemini_cli,
and data_analyst_kiro_cli for data analysis, and report_generator_codex for
report generation. To use different providers:
- Install the additional worker profiles you need:
cao install examples/cross-provider/data_analyst_codex.md
cao install examples/cross-provider/data_analyst_copilot_cli.md- Copy and edit the supervisor profile to reference the profiles you want:
cp examples/cross-provider/cross_provider_supervisor.md my_supervisor.md- In
my_supervisor.md, update the Worker Profiles table and the Example section to use your preferred profiles. For example, to use Codex and Copilot CLI instead of Gemini CLI and Kiro CLI:
| `data_analyst_claude_code` | Claude Code |
| `data_analyst_codex` | Codex |
| `data_analyst_copilot_cli` | Copilot CLI |- Install and launch your custom supervisor:
cao install my_supervisor.md
cao launch --provider kiro_cli --agent-profile my_supervisor --session-name my-sessionTo create a cross-provider version of any agent profile, add a provider field to
the frontmatter:
---
name: my_agent_codex
description: My agent that runs on Codex
provider: codex
mcpServers:
cao-mcp-server:
type: stdio
command: uvx
args:
- "--from"
- "git+https://github.com/awslabs/cli-agent-orchestrator.git@main"
- "cao-mcp-server"
---Valid provider values: kiro_cli, claude_code, codex, q_cli, gemini_cli,
kimi_cli, copilot_cli.
See test/e2e/test_cross_provider.py for automated tests that verify the
cross-provider resolution works across Kiro CLI, Gemini CLI, and Claude Code.
uv run pytest -m e2e test/e2e/test_cross_provider.py -v -o "addopts="