Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Orchestrates external AI planners by validating, scheduling, executing tools, enforcing budgets, and providing replayable telemetry for plans and runs.
Orchestrates external AI planners by validating, scheduling, executing tools, enforcing budgets, and providing replayable telemetry for plans and runs.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
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.
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/capabilities GET /v1/provider-adapter/schema Core endpoints: POST /v1/plan (validate plus recommendations) POST /v1/plan/validate POST /v1/plan/generate POST /v1/run POST /v1/run/sync GET /v1/run/:id GET /v1/run/:id/events?after= GET /v1/run/:id/stream GET /v1/run/:id/replay GET /v1/run/:id/report (if enabled) GET /v1/runs POST /v1/run/:id/cancel POST /v1/run/:id/task/:name/inject POST /v1/tools/register (only when enabled)
Provider choice follows this order: task.provider_id run.options.provider_id DEFAULT_PROVIDER_ID mock Read provider availability from capabilities.llm_providers.providers and capabilities.llm_providers.default_provider_id.
GET /v1/capabilities POST /v1/plan with { plan, options } POST /v1/run (async) or POST /v1/run/sync Stream with GET /v1/run/:id/stream or poll GET /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/inject for deterministic overrides when needed
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.
GET /v1/run/:id/stream sends event id from event sequence numbers. Resume with Last-Event-ID header or ?after= query. If idle and run is non-terminal, heartbeat comments are emitted: : ping Heartbeat interval uses SSE_HEARTBEAT_MS (default 15000).
Common emitted event types include: task_start, task_end, task_retry tool_call_requested, tool_call_start, tool_call_end, tool_call_failed, tool_call_started, tool_call_finished llm_step_start, llm_step_tool_calls, llm_step_final llm_round_start, llm_round_tool_calls, llm_round_final budget_violation, fallback_start, fallback_end run_complete, run_cancel_requested dependency_truncated, artifact_limit
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 } } } }
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. Provider and gateway calls require OUTBOUND_ALLOWLIST. Callback tools require TOOL_CALLBACK_ALLOWLIST. IP literal hostnames and redirect chains are blocked.
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.
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.