Agent Orchestrator — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Agent Orchestrator (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
English | 简体中文
agent-orchestrator is a TypeScript orchestration runtime for multi-model engineering workflows. It is designed to keep worker execution, repository context selection, deterministic validation, and local task artifacts under explicit control through a CLI and MCP server.
In host-driven use cases such as Codex, ao is not intended to become a second user-facing leader.
ao provides the controlled runtime: worker routing, repository context packs, deterministic validation, artifact persistence, and patch gates.ao_start_task and other host-managed tools.Human / Coding Agent / CI / MCP Client
|
v
ao CLI / MCP
|
v
Orchestration Runtime Layer
| | \
v v v
Worker Routing Deterministic Tools AO Storage / Artifacts
|
v
Worker Models / Local Clientspackages/
core/
models/
graph/
tools/
mcp-server/
cli/
apps/
playground/
examples/
leader-worker-basic/
docs/22>=10This repository targets actively maintained Node.js LTS releases only. CI currently validates Node 22. Other Node.js >=22 versions are best-effort until they are added to the CI matrix.
node --version
pnpm install
pnpm build
pnpm exec ao doctor
pnpm exec ao setup --allow-write
pnpm exec ao doctor
pnpm typecheck
pnpm testpnpm exec ao setup --allow-write
pnpm exec ao doctor
pnpm exec ao mcp configInternal-trial installation and MCP launch guidance lives in docs/install.md. The current official internal distribution shape is documented in docs/distribution.md.
Unless noted otherwise, read every ao ... example below as pnpm exec ao ... from the repository root for the current internal-trial install path.
Legacy repository-local .ao/ directories are unsupported and ignored by current builds.
ao setup creates user-scoped AO workspace storage under ~/.ao/workspaces/<workspace-id>/ by default:
config.jsonworkers.jsonworker-profiles.jsonaudit/runs/ao review repo --scope packages/graph
ao review diff --base main --head HEAD
ao review files --file packages/graph/src/index.ts
ao validate --typecheck --lint --test
ao fix error --error-log-file ./tmp/tsc-error.log --scope packages/schema-codegen
ao task start --goal "Fix failing typecheck" --scope packages/core --typecheck --error-log-file ./tmp/tsc-error.log --run-fix --allow-write-session
ao task report <taskId>
ao cleanup runs
ao cleanup audit
ao models list
ao mcp config
ao mcp serve
ao mcp list-toolsWorkers are not treated as automatically qualified just because a model endpoint exists.
Use onboarding evaluation before assigning real work:
ao worker interview --provider litellm --model qwen3-coder
ao worker interview --provider litellm --model qwen3-coder --save
ao worker list
ao worker profile litellm:qwen3-coderThe interview workflow evaluates:
Interview results produce a WorkerCapabilityProfile that affects routing:
active: worker can receive the task types it qualified forlimited: worker is restricted to low-risk tasks and requires host reviewblocked: worker is excluded from production workflows and emits warningsExample warning output:
Worker litellm:qwen3-coder failed onboarding evaluation.
Status: limited
Reasons:
- structured-output: Output failed schema validation.
- codegen: Generated code uses any.
- confidence-calibration: Worker reported high confidence on an ambiguous task.
Recommended action:
- Do not assign codegen tasks.
- Limit this worker to qualified low-risk tasks.
- Require host review for every accepted output.If the worker is significantly worse, the profile becomes blocked and production routing should treat it as unavailable.
Use --save if you want to persist the interview result:
ao worker interview --provider litellm --model qwen3-coder --saveSaved profiles are written to:
~/.ao/workspaces/<workspace-id>/worker-profiles.jsonYou can inspect persisted profiles with:
ao worker list
ao worker profile litellm:qwen3-coderCurrent behavior is conservative: if a workflow is started without an explicit profile object, the system can re-run the interview instead of blindly trusting an old capability record.
Register a reusable worker, evaluate it, and keep the assignment explicit:
ao worker register \
--provider litellm \
--model qwen3-coder \
--base-url http://localhost:4000/v1 \
--allow-write
ao worker interview --worker litellm:qwen3-coder --save
ao task start \
--goal "Review this repository" \
--worker litellm:qwen3-coder \
--require-profile
ao audit listThis flow keeps worker selection local, auditable, and gated by a persisted capability profile while leaving the host in control of the overall task.
Use the dedicated repository workflows for day-to-day engineering checks:
ao review repo --scope packages/graph
ao review diff --base main --head HEAD
ao review files --file packages/graph/src/index.ts
ao validate --typecheck --lint --test
ao fix error --error-log-file ./tmp/tsc-error.log --scope packages/coreThese commands build repository context packs, read scoped files safely, and route deterministic validation into the review output.
Patch handling is intentionally separated into proposal, inspection, and gated apply steps:
ao fix error --error-log-file ./tmp/tsc.log --scope packages/core
ao patch propose \
--goal "Fix failing typecheck" \
--scope packages/core
ao patch inspect ./tmp/candidate.patch
ao patch apply ./tmp/candidate.patch --dry-run
ao patch apply ./tmp/candidate.patch \
--allow-write \
--confirm-apply \
--typecheck \
--lint \
--testSafety constraints for patch lifecycle:
Task sessions keep local review artifacts and resumable state under ~/.ao/workspaces/<workspace-id>/runs by default:
ao task start \
--goal "Fix failing typecheck in packages/core" \
--scope packages/core \
--worker litellm:qwen3-coder \
--require-profile \
--typecheck \
--lint \
--propose-patch \
--allow-write-session
ao task status <taskId>
ao task resume <taskId>
ao task report <taskId>Patch apply is still a separate explicit gate even inside task resume:
ao task resume <taskId> \
--apply-patch \
--allow-write \
--confirm-applySession persistence is separate from repository writes. --allow-write-session only permits AO session artifacts under runs/. It does not enable patch apply.
See docs/permissions.md for the full write-gate model.
Start the stdio server:
ao mcp servePrint a generic stdio config snippet for local MCP clients:
ao mcp configList exposed tool names:
ao mcp list-toolsSee .env.example.
LEADER_MODEL_PROVIDERLEADER_MODEL_NAMELEADER_MODEL_BASE_URLLEADER_MODEL_API_KEYWORKER_MODEL_PROVIDERWORKER_MODEL_NAMEWORKER_MODEL_BASE_URLWORKER_MODEL_API_KEYLITELLM_BASE_URLMCP_SERVER_NAMEMCP_SERVER_VERSIONLOG_LEVELAO_ROOT_DIRAO_HOME_DIRAO_WORKER_CLIENT_COMMANDAO_DRY_RUNAO_ALLOW_WRITEAO_ALLOWED_COMMANDSRuntime configuration resolves in this order:
~/.ao/workspaces/<workspace-id>/config.jsonconfig.json no longer stores secret env-var names. Provide runtime secrets through fixed variables such as LEADER_MODEL_API_KEY and WORKER_MODEL_API_KEY.
Repository context settings in the user-scoped AO config.json also control default maxFileBytes, maxTotalBytes, and ignoredPaths for review, fix, patch, and task workflows unless a command overrides them explicitly.
host-worker-workflow: runs one explicit worker task under host control with answer-quality gatesreview-workflow: summarizes diff impact, risks, missing tests, and follow-up itemsfix-error-workflow: analyzes error logs and proposes safe validation-oriented fix stepspatch-proposal-workflow: generates and inspects patch proposals without applying repository writestask-session-workflow: runs the end-to-end persisted task pipelineworker-interview-workflow: evaluates a worker model before production routing and generates a capability profileRun pnpm exec tsx examples/leader-worker-basic/src/index.ts to inspect the host-managed example workflow.
packages/graph/src/workers.WorkerCapability with Zod-backed schemas.packages/graph/src/workflows.packages/mcp-server/src/tools.packages/mcp-server/src/server.ts.Set LEADER_MODEL_PROVIDER=litellm or WORKER_MODEL_PROVIDER=litellm, then provide:
LITELLM_BASE_URLUse LEADER_MODEL_BASE_URL or WORKER_MODEL_BASE_URL when leader and worker traffic should target different endpoints.
git diff can still execute inside dry-run so review workflows keep working without enabling writes.ao setup, ao cleanup, worker registry writes, and task session persistence remain local-only inside AO-managed storage..env and private keys.[PLACEHOLDER] artifact and cannot be applied.ao audit list exposes the local audit trail for workflow, file, and command events.ao cleanup runs and ao cleanup audit only delete local AO artifacts and never touch project source files.See docs/permissions.md for the concrete permission layers and write-gate examples.
Use both smoke layers before shipping CLI changes:
pnpm smoke
pnpm smoke:dist~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.