Control plane for AI agents
Project description
๐ฅ OpenAgentOrchestrator (OAO)
The Control Plane for AI Agents.
OpenAgentOrchestrator (OAO) is an infrastructure-grade orchestration engine designed to bring governance, determinism, and observability to AI agents.
While most agent frameworks focus on building agents, OAO focuses on controlling them.
OAO acts as a control plane on top of existing AI frameworks, enabling safe, measurable, and scalable execution of AI agents.
๐ Why OAO?
Modern AI agent frameworks lack:
- โ Deterministic lifecycle control
- โ Strict policy enforcement
- โ Tool-level governance
- โ Execution observability
- โ Parallel scheduling control
- โ Infrastructure-grade architecture
OAO solves this.
๐ง Core Philosophy
OAO separates:
Agent Intelligence โ Agent Governance
Frameworks build intelligence.
OAO governs execution.
Think of OAO as:
Kubernetes for AI Agents.
โจ Features
๐งญ Deterministic Lifecycle Engine
Strict execution flow:
INIT โ PLAN โ EXECUTE โ REVIEW โ TERMINATE
No uncontrolled recursion.
No hidden state transitions.
๐ Policy Enforcement
Built-in StrictPolicy enforces:
- Maximum execution steps
- Maximum token usage
- Maximum tool calls
- Execution timeouts
Agents cannot bypass governance rules.
๐ Adapter Architecture
Pluggable adapter system allows integration with external frameworks.
Currently supported:
- LangChain Adapter
Future roadmap:
- CrewAI
- AutoGen
- LlamaIndex
- Enterprise custom adapters
Adapters are fully decoupled from orchestration core.
๐ Async Execution Engine
Supports both:
- Synchronous execution (
run) - Asynchronous execution (
run_async)
Ready for scalable, high-throughput workloads.
๐ฅ Multi-Agent Orchestration
Run multiple agents under centralized governance:
- Independent lifecycle control
- Independent execution reports
- Controlled scheduling layer
โก Parallel Agent Scheduler
Built-in concurrency management:
- Configurable max concurrency
- Async worker pool
- Safe task isolation
- Error containment
๐ FastAPI Server (OAO as Service)
Expose OAO as an HTTP backend:
- Single-agent endpoint
- Multi-agent endpoint
- Swagger documentation
- Production-ready API layer
๐ Structured Execution Reports
Every execution generates:
- Unique execution ID
- Agent name
- Status (SUCCESS / FAILED)
- Total steps
- Token usage
- Tool usage
- Execution time
- State history
- Final output
Designed for observability and monitoring.
๐ Event Hook System
OAO emits structured lifecycle events:
- STATE_ENTER
- TOOL_CALL
- POLICY_VIOLATION
- EXECUTION_COMPLETE
Hooks enable:
- Logging
- Metrics
- Monitoring
- External integrations
๐ฆ Installation
Install from PyPI:
pip install open-agent-orchestrator
Optional Dependencies
For running the API server or using LangChain adapters:
# Install with API server and LangChain support
pip install "open-agent-orchestrator[server,langchain]"
Or install locally:
pip install -e ".[all]"
โก Quick Start (Single Agent)
from oao import Orchestrator, StrictPolicy
class DummyAgent:
def invoke(self, task):
return {"output": f"Processed: {task}"}
policy = StrictPolicy(max_steps=5)
orch = Orchestrator(policy=policy)
report = orch.run(
agent=DummyAgent(),
task="Explain AI orchestration",
)
print(report.json(indent=2))
โก Async Execution
import asyncio
from oao import Orchestrator
class DummyAgent:
def invoke(self, task):
return {"output": f"Processed: {task}"}
async def main():
orch = Orchestrator()
report = await orch.run_async(
agent=DummyAgent(),
task="Async execution demo"
)
print(report.json(indent=2))
asyncio.run(main())
๐ฅ Multi-Agent Example
import asyncio
from oao.runtime.multi_agent import MultiAgentOrchestrator
class DummyAgent:
def __init__(self, name):
self.name = name
def invoke(self, task):
return {"output": f"{self.name} processed: {task}"}
agents = {
"researcher": DummyAgent("Researcher"),
"critic": DummyAgent("Critic"),
}
async def main():
multi = MultiAgentOrchestrator(max_concurrency=2)
results = await multi.run_multi_async(
agents=agents,
task="Discuss AI governance"
)
for name, report in results.items():
print(name, report.status)
asyncio.run(main())
๐ Run as API Service
Start server:
# Ensure server dependencies are installed
pip install "open-agent-orchestrator[server]"
uvicorn oao.server:app --reload
Open:
http://127.0.0.1:8000/docs
Available endpoints:
POST /runPOST /run-multi
๐ Architecture Overview
Client / CLI / Dashboard
โ
FastAPI Server
โ
OAO Orchestrator Core
โ
Adapter โ External Framework
Core Components:
- Lifecycle State Machine
- Policy Engine
- Adapter Registry
- Tool Interception Layer
- Event Bus
- Execution Report Generator
- Parallel Scheduler
- Multi-Agent Coordinator
๐ Governance Model
OAO enforces:
- Deterministic state transitions
- Token budgeting
- Tool access limits
- Execution boundaries
- Timeout enforcement
Agents cannot override governance rules.
๐งช Project Structure
oao/
โโโ runtime/
โโโ adapters/
โโโ policy/
โโโ protocol/
โโโ server.py
โโโ cli.py
๐ Roadmap
- Deterministic lifecycle engine
- Strict policy enforcement
- Adapter abstraction
- Async execution engine
- Multi-agent orchestration
- Parallel scheduler
- FastAPI service
- Web dashboard
- Distributed scheduler (Redis)
- DAG-based orchestration
- Metrics exporter
- Enterprise plugin ecosystem
๐ค Contributing
Contributions are welcome.
Guidelines:
- Maintain clean architecture principles
- Keep lifecycle deterministic
- Preserve adapter abstraction
- Add tests for new modules
๐ License
MIT License
๐ง Vision
OAO aims to become:
The Infrastructure Layer for AI Agents.
As AI agents become more autonomous, governance becomes essential.
OAO ensures agents remain:
- Observable
- Measurable
- Controllable
- Scalable
- Safe
โญ Support
If you find OAO useful:
- Star the repository
- Contribute adapters
- Build plugins
- Share with the AI community
Letโs define the control plane for AI systems.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file open_agent_orchestrator-0.1.1.tar.gz.
File metadata
- Download URL: open_agent_orchestrator-0.1.1.tar.gz
- Upload date:
- Size: 16.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bea366d81de6a91fe8d73a4a23363f0ae49d1826696976d40a62097ec6adac8f
|
|
| MD5 |
423634316ba8f838fd6b079eb5b4ac2f
|
|
| BLAKE2b-256 |
84023b3bca0da41c4a3fbe3b50ba833ed683081680366637ab59de9c4abf7ce4
|
File details
Details for the file open_agent_orchestrator-0.1.1-py3-none-any.whl.
File metadata
- Download URL: open_agent_orchestrator-0.1.1-py3-none-any.whl
- Upload date:
- Size: 18.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c1e8f8b9c9ad9fd3bb5ad2be5071d1c17dbb1182c7b712eb0d513bf88c6ac34
|
|
| MD5 |
16fc7d5f6504a07a5fab1c57fe5372cf
|
|
| BLAKE2b-256 |
3091ead15fc6caf23e95e2dd6e55328fc940bbb2bc720deb856d83533cc619c9
|