How foundationagents/aorchestra works
AOrchestra is a benchmark-oriented framework for dynamically orchestrating specialized sub-agents. For each GAIA, SWE-bench, or Terminal-Bench task, a benchmark runner creates a MainAgent that delegates subtasks with configurable instructions, context, tools, and models; sub-agents execute in the benchmark environment and report results for further orchestration or submission. The repository also includes benchmark-specific task tools and environment adapters. The README documents the three benchmark capabilities; sampled excerpts confirm parts of the SWE-bench and Terminal-Bench flows, so uncertain GAIA wiring is not shown.
Main entry points: main_agent.py Main Agent · delegate.py Delegation Tool · react_agent.py ReAct Sub-agent · swebench_agent.py SWE Sub-agent
Components 24
Orchestration
- Main Agent
aorchestra/main_agent.py - Delegation Tool
aorchestra/tools/delegate.py - Submission Tool
aorchestra/tools/submit.py - Completion Tool
aorchestra/tools/complete.py - GAIA Prompts
aorchestra/prompts/gaia.py - SWE Prompts
aorchestra/prompts/swebench.py - Terminal Prompts
aorchestra/prompts/terminalbench.py
Agent Runtime
- ReAct Sub-agent
aorchestra/subagents/react_agent.py - SWE Sub-agent
aorchestra/subagents/swebench_agent.py - Agent Runtime
base/agent/base_agent.py - Agent Memory
base/agent/memory.py - Async LLM
base/engine/async_llm.py
Benchmark Workflows
- GAIA Runner
aorchestra/runners/gaia_runner.py - SWE-bench Runner
aorchestra/runners/swebench_runner.py - Terminal-Bench Runner
aorchestra/runners/terminalbench_runner.py - GAIA Tools
benchmark/gaia/tools - SWE Tools
benchmark/swebench/aci_tools.py - Terminal Executor
benchmark/terminalbench/base_executor.py - SWE Executor
benchmark/swebench/swebench_executor.py - Benchmark Environment
benchmark/common/env.py
External Services
- LLM Provider
- Execution Sandbox
- Search And Web APIs
Other components
- Benchmark Operator
Connections 30
- Benchmark Operator → GAIA Runner: runs tasks
- Benchmark Operator → SWE-bench Runner: runs tasks
- Benchmark Operator → Terminal-Bench Runner: runs tasks
- GAIA Runner → Main Agent: creates
- SWE-bench Runner → Main Agent: creates
- Terminal-Bench Runner → Main Agent: creates
- Main Agent → Async LLM: requests decisions
- Async LLM → LLM Provider: calls model
- Main Agent → Delegation Tool: dispatches
- Main Agent → Submission Tool: dispatches
- Main Agent → Completion Tool: dispatches
- Main Agent → GAIA Prompts: builds prompts
- Main Agent → SWE Prompts: builds prompts
- Main Agent → Terminal Prompts: builds prompts
- Delegation Tool → ReAct Sub-agent: runs delegated task
- Delegation Tool → SWE Sub-agent: runs delegated task
- ReAct Sub-agent → Agent Runtime: uses runtime
- ReAct Sub-agent → Agent Memory: updates memory
- SWE Sub-agent → Agent Memory: updates memory
- ReAct Sub-agent → Async LLM: requests actions
- SWE Sub-agent → Async LLM: requests actions
- SWE-bench Runner → SWE Executor: runs tasks
- Terminal-Bench Runner → Terminal Executor: runs tasks
- GAIA Runner → GAIA Tools: uses tools
- SWE Sub-agent → SWE Tools: issues commands
- Terminal Executor → Execution Sandbox: executes in
- Benchmark Environment → Execution Sandbox: provides environment
- GAIA Tools → Search And Web APIs: accesses APIs
- Submission Tool → Benchmark Environment: submits result
- Delegation Tool → Benchmark Environment: uses task environment