Install
openclaw skills install agentmanagerOrchestrates external AI planners by validating, scheduling, executing tools, enforcing budgets, and providing replayable telemetry for plans and runs.
openclaw skills install agentmanagerThis file is a concise integration contract for AI tool callers and gateway implementers.
This skill.md is a compact integration guide for Clawhub and other AI clients.
Agent Manager is an orchestration kernel for external AI planners. External AI builds plans, and Agent Manager validates, schedules, executes tools, enforces budgets, and provides replayable telemetry.
Use X-Run-Token for owner attribution and optional access control.
REQUIRE_RUN_TOKEN=1 enables token enforcement.RUN_TOKENS contains allowed token values.Example header:
X-Run-Token: tenant-a
Start with:
GET /v1/capabilitiesGET /v1/provider-adapter/schemaCore endpoints:
POST /v1/plan (validate plus recommendations)POST /v1/plan/validatePOST /v1/plan/generatePOST /v1/runPOST /v1/run/syncGET /v1/run/:idGET /v1/run/:id/events?after=GET /v1/run/:id/streamGET /v1/run/:id/replayGET /v1/run/:id/report (if enabled)GET /v1/runsPOST /v1/run/:id/cancelPOST /v1/run/:id/task/:name/injectPOST /v1/tools/register (only when enabled)Provider choice follows this order:
task.provider_idrun.options.provider_idDEFAULT_PROVIDER_IDmockRead provider availability from capabilities.llm_providers.providers and capabilities.llm_providers.default_provider_id.
GET /v1/capabilitiesPOST /v1/plan with { plan, options }POST /v1/run (async) or POST /v1/run/syncGET /v1/run/:id/stream or poll GET /v1/run/:id/events?after=<seq>GET /v1/run/:idGET /v1/run/:id/replayPOST /v1/run/:id/task/:name/inject for deterministic overrides when neededWhen a provider returns tool_calls, Agent Manager appends exactly one role="tool" message for each tool_call_id before the next provider round.
This prevents protocol errors in model APIs.
GET /v1/run/:id/stream sends event id from event sequence numbers.
Last-Event-ID header or ?after= query.: ping
Heartbeat interval uses SSE_HEARTBEAT_MS (default 15000).
Common emitted event types include:
task_start, task_end, task_retrytool_call_requested, tool_call_start, tool_call_end, tool_call_failed, tool_call_started, tool_call_finishedllm_step_start, llm_step_tool_calls, llm_step_finalllm_round_start, llm_round_tool_calls, llm_round_finalbudget_violation, fallback_start, fallback_endrun_complete, run_cancel_requesteddependency_truncated, artifact_limitGET /v1/run/:id/replay returns stable replay JSON:
{
"run": { "id": "run_123", "created_at": 1700000000000, "status": "succeeded" },
"plan_digest": "sha256:...",
"events": [{ "seq": 1, "type": "task_start", "run_id": "run_123" }],
"results_index": { "task_a": { "digest_hash": "sha256:..." } }
}
Run cost attribution is exposed per task in run.metrics.cost_breakdown:
{
"metrics": {
"cost_breakdown": {
"task_a": {
"cost_est": 0.0021,
"tier": "cheap",
"tool_calls": 1
}
}
}
}
Callback tools use callback_url and enforce ToolSpec.timeout_ms.
The execution signal combines run abort plus timeout. On timeout, tool result is structured with error_code as TOOL_TIMEOUT and retryable: true.
Use GET /v1/provider-adapter/schema to fetch schema_version, request and response schemas, and examples for your gateway implementation.
Outbound traffic is blocked by default until allowlists are configured.
OUTBOUND_ALLOWLIST.TOOL_CALLBACK_ALLOWLIST.Enable REDACT_TELEMETRY=1 with mode hash or truncate to redact sensitive event and replay fields for shared deployments.
This service uses validated configuration from src/config.ts. Critical outbound controls: OUTBOUND_HOST_ALLOWLIST, OUTBOUND_ALLOW_ALL, ALLOW_INSECURE_HTTP, TOOL_CALLBACK_ALLOWLIST, MAX_PROVIDER_REQUEST_BYTES, MAX_TOOL_CALLBACK_REQUEST_BYTES, and redaction flags.
When gateway or callback tools are enabled, task inputs, dependency payloads, and tool payloads may be sent outbound to allowed destinations. Keep allowlists strict in shared deployments.