Agent Manager skill
What this file is for
This 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.
Authentication
Use X-Run-Token for owner attribution and optional access control.
REQUIRE_RUN_TOKEN=1enables token enforcement.RUN_TOKENScontains allowed token values.
Example header:
X-Run-Token: tenant-a
Capability discovery and endpoint map
Start with:
GET /v1/capabilitiesGET /v1/provider-adapter/schema
Core 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 selection
Provider choice follows this order:
task.provider_idrun.options.provider_idDEFAULT_PROVIDER_IDmock
Read provider availability from capabilities.llm_providers.providers and capabilities.llm_providers.default_provider_id.
Recommended client flow
GET /v1/capabilitiesPOST /v1/planwith{ plan, options }POST /v1/run(async) orPOST /v1/run/sync- Stream with
GET /v1/run/:id/streamor pollGET /v1/run/:id/events?after=<seq> - Read final run from
GET /v1/run/:id - Export replay from
GET /v1/run/:id/replay - Use
POST /v1/run/:id/task/:name/injectfor deterministic overrides when needed
Tool-calling protocol rule
When 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.
SSE reliability and resume
GET /v1/run/:id/stream sends event id from event sequence numbers.
- Resume with
Last-Event-IDheader or?after=query. - If idle and run is non-terminal, heartbeat comments are emitted:
: ping
Heartbeat interval uses SSE_HEARTBEAT_MS (default 15000).
Event types
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_limit
Replay and report data
GET /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
}
}
}
}
HTTP callback tools and timeout enforcement
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.
Provider adapter contract
Use GET /v1/provider-adapter/schema to fetch schema_version, request and response schemas, and examples for your gateway implementation.
Outbound security defaults
Outbound traffic is blocked by default until allowlists are configured.
- Provider and gateway calls require
OUTBOUND_ALLOWLIST. - Callback tools require
TOOL_CALLBACK_ALLOWLIST. - IP literal hostnames and redirect chains are blocked.
Telemetry redaction
Enable REDACT_TELEMETRY=1 with mode hash or truncate to redact sensitive event and replay fields for shared deployments.
Environment variables
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.
Outbound data disclosure
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.