Agent Orchestration Process (AOP)
AOP gives automation one CLI for running bounded, non-interactive jobs across different agent harnesses without requiring callers to learn each harness's command flags, session format, output schema, runtime state, or resume behavior:
- Run Codex,
Claude Code,
Cursor Agent,
Devin CLI,
OpenCode,
Antigravity (
agy), Grok Build, Hermes, DeepSeek Harness (dsh), and Zcode through the samerunandresumecommands. See Harness adapters for current model support and limitations. - Reuse each harness's existing authentication, model execution, tools, and conversations instead of maintaining a separate AOP credential store.
- Apply the same isolated worktrees, inputs-only sealed runs, configured deadlines, process cleanup, snapshotted inputs, and validated artifacts across harnesses.
- Retain consistent results, logs, timing, token usage, and exact provider session identity when available.
- Keep cleanup, checkpointing, and Git integration outside agent control.
Codex runs can also use Z.AI Coding Plan as the zai-coding-plan inference provider rather than as a separate harness. AOP resolves the effective native Codex configuration, validates the authenticated model inventory, projects only the selected credential into isolated runs, and preserves the exact route for resume. List the currently available models with:
aop models --agent codex --provider zai-coding-plan
Agent Client Protocol (ACP) standardizes interactive communication between agents and clients such as editors and IDEs. Use ACP when a person needs to chat, approve actions, watch progress, and steer a session.
Use AOP when software needs to run bounded jobs unattended across different agent CLIs. The two are complementary: ACP serves interactive clients, while AOP serves automation.
Install and run
AOP requires Linux and Python 3.11 or newer. The edit, review, and sealed profiles require
bwrap. Git is required for edit, review, and host. Install and authenticate at least one
supported agent harness.
Install AOP from PyPI:
uv tool install agent-orchestration-process
Run a sealed task from any directory without exposing local files or requiring a Git repository:
aop run --agent codex --profile sealed --prompt "Explain the difference between TCP and UDP"
Run a task in an existing Git repository:
aop init
aop run task-a --agent codex --prompt "Implement the parser and its tests"
aop init adds /.aop/ to .gitignore; commit that change before integrating tasks. AOP creates
the task worktree automatically and prints the run ID needed to resume the exact provider session:
aop resume <run-id> --prompt "Address the review findings"
See the CLI guide for other harnesses, inputs, artifacts, batch runs, cleanup, and machine-readable results. See Integration when a task's changes are ready to checkpoint and merge.
Execution profiles
AOP profiles describe the complete execution boundary rather than only where writes are allowed.
The isolated profiles expose only the declared workspace, inputs, provider runtime, private state,
cache, scratch, output, and required operating-system paths. host runs without that isolation.
| Profile | Use it when |
|---|---|
edit |
The agent should modify an isolated task worktree. |
review |
The agent should inspect a task worktree without modifying it. |
sealed |
The agent should see only explicit input snapshots, with no repository or inherited instructions. |
host |
The command needs the native host environment and filesystem. |
Inspect a declared profile or preview the intended policy without compiling or dispatching it:
aop profile explain sealed
aop profile explain sealed --agent codex --json
aop run study-arm --profile sealed --prompt "Answer using only declared inputs" --dry-run
All profiles currently retain native network connectivity because the supported provider CLIs need it. See Execution profiles for the exact filesystem, instruction, environment, credential, input, and output boundaries.
Use --no-web to deny model-controlled external retrieval while retaining the harness's inference
connection. AOP records the effective tool policy and rejects harnesses that cannot enforce the
boundary. See CLI guide for current support.
Codex --no-web uses the canonical top-level web_search = "disabled" mode introduced in Codex 0.82.0. AOP's current Codex app-server integration targets Codex 0.150.1 or newer.
Results and usage
Every adapter records the same result shape, including provider session identity when available, timing, token usage, cost evidence, logs, and declared artifacts. See Token usage and pricing for the normalized token contract, provider mappings, and cost calculation rules.
Results distinguish complete accounting from partial or unavailable deadline accounting. Codex deadlines use native app-server interruption to retain per-turn usage and an API-equivalent cost when available. If any harness terminates before reporting usage, usage and cost fields remain null instead of being reported as measured zero.
Development
Clone the repository and synchronize its locked development environment:
git clone https://github.com/wakamex/agent-orchestration-process.git
cd agent-orchestration-process
uv --no-config sync --locked
uv --no-config run --locked pytest
uv --no-config run --locked ruff check src tests
Metadata
Release files for agent-orchestration-process 0.1.18
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agent_orchestration_process-0.1.18.tar.gz | 97.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agent_orchestration_process-0.1.18-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 206.1 kB
Release files / agent_orchestration_process-0.1.18.tar.gz
| Download URL | agent_orchestration_process-0.1.18.tar.gz |
|---|---|
| Size | 97.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4e8e17f2848c1703f7ba4678ee4f203d8d3f928c4bd0725343fe08095ae62675
|
|
BLAKE2b-256 checksum How to use checksums |
246132fddf0fee270ffe71e110959d636d0e8ebf64c2e9ce1e7cbf4154046c40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / agent_orchestration_process-0.1.18-py3-none-any.whl
| Download URL | agent_orchestration_process-0.1.18-py3-none-any.whl |
|---|---|
| Size | 109.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e3ecc77e8007164e49492dba0447d5972c892e3ffcd4ad22143f0fd59cc93542
|
|
BLAKE2b-256 checksum How to use checksums |
a6c92d85c61d86ab2bbd89aa948ae5d4e4abef3f04596ae9347ea0976c592146
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|