OpenClaw Agent Catalog
This directory contains the specialized worker agents the orchestrator can dispatch or evolve toward. Some are richer, runtime-oriented agent surfaces (doc-specialist, reddit-helper); others are structured task templates that define scope, I/O, and governance for future or selective execution paths.
Telemetry helpers live under shared/. New agents should start from AGENT_TEMPLATE/.
Current Agent Surfaces
doc-specialist/- documentation drift repair and knowledge-pack generationreddit-helper/- community response drafting using fresh knowledge packsbuild-refactor-agent/- safe refactor and build-oriented code changescontent-agent/- repository-backed content generationdata-extraction-agent/- structured extraction from local filesdeployment-ops-agent/- bounded deployment posture synthesis across rollout surfaces, rollback readiness, and pipeline evidencecode-index-agent/- bounded code-index posture synthesis across local coverage, doc-to-code linkage, search gaps, and retrieval freshnesstest-intelligence-agent/- bounded test-intelligence posture synthesis across local suite coverage, recent failures, retry signals, and release-facing riskcompliance-agent/- bounded compliance posture synthesis across policy coverage, dependency evidence, and release governanceintegration-agent/- multi-step workflow handoffsmarket-research-agent/- approved external research collectionnormalization-agent/- data normalizationoperations-analyst-agent/- bounded control-plane synthesis and companion-facing operational briefsqa-verification-agent/- verification and QA evidencerelease-manager-agent/- bounded release posture synthesis across verification, security, and system evidencesecurity-agent/- security review and remediation guidanceskill-audit-agent/- skill reliability and behavior auditssummarization-agent/- long-form summarizationsystem-monitor-agent/- health and observability reporting
Operational Status Truth (Do Not Collapse Modes)
Use these terms separately:
- declared agent: agent folder + manifest/config exists.
- spawned-worker capable: orchestrator can spawn the task entrypoint for task execution.
- serviceAvailable: agent has a real long-running
src/service.tsimplementation in repo. - serviceInstalled: a matching systemd unit is actually installed on the host the orchestrator is running on.
- serviceRunning: host-running state is actually proven for that service.
Current runtime truth:
Real long-running service implementations available in repo (
src/service.tspresent):doc-specialist/reddit-helper/serviceAvailableCountshould now be read as2
Service-available and also spawned-worker capable, with live worker proof in the current runtime:
doc-specialist/(2026-03-07;drift-repairlive smokerun_id=auto-8ef2eb1a3ff49ddd4237ee019d646b4810f9418c699b3a2a1de7682e388fd502, knowledge-pack verification recorded in/api/tasks/runsand/api/memory/recall)
Service-available and spawned-worker capable, but worker path is still partial/degraded in the latest validation baseline:
reddit-helper/(reddit-responsestill depends on provider health for the optional final polish pass, but the runtime now hardens token use with service-state dedupe, per-cycle throttles, daily LLM budgets, deterministic local scoring, local-first fallback drafting, mandatory operator approval formanual-reviewRSS leads, and operator promotion approvals for the top10draftleads. Spawned helper runs now inherit orchestrator-shared runtime dependencies viaNODE_PATH, and real helper exceptions fail the task instead of reporting a false-green draft.)Focused contract-proven spawned workers in the current public expansion slice:
operations-analyst-agent/(2026-04-02; boundedcontrol-plane-briefplus companion-overview proof)release-manager-agent/(2026-04-02; boundedrelease-readinessproof)deployment-ops-agent/(2026-04-09; boundeddeployment-opsproof)code-index-agent/(2026-04-10; boundedcode-indexlive canary and promoted runtime-evidence proof)test-intelligence-agent/(2026-04-12; boundedtest-intelligencelive canary and promoted runtime-evidence proof)compliance-agent/(2026-04-13; boundedcompliance-reviewlive canary and promoted runtime-evidence proof)
Confirmed working as spawned workers in the latest validation sweep (service availability is separate from worker proof):
build-refactor-agent/market-research-agent/(query-only mode)content-agent/(2026-03-07; local/template output lane)data-extraction-agent/(2026-03-07; inline-source lane only)integration-agent/(2026-03-07; local/simulated workflow lane)normalization-agent/(2026-03-07)qa-verification-agent/(2026-03-07; live dry-run proof plus minimal allowedbuild-verifyrun, with execute-modetestRunneraudit evidence)security-agent/(2026-03-07; local/simulated findings lane)skill-audit-agent/(2026-03-07; live smoke after the orchestrator/agent contract fix)summarization-agent/(2026-03-07)system-monitor-agent/(2026-03-07; local/simulated monitoring lane)
Declared-only template surface (not service-operational and not a runtime worker):
Service-running remains separate from service availability:
- current orchestrator truth can report
serviceAvailable - current orchestrator truth now also reports
serviceInstalled - current orchestrator truth must not report
serviceRunningunless host evidence exists - placeholder gating remains relevant operationally because a unit can still be present before a host actually enables or proves it
- current orchestrator truth can report
Operator API mapping:
GET /api/agents/overviewis the runtime operator surface for these status distinctions and includes supporting evidence fields.- In the
2026-03-07spawned-worker sweep,/api/agents/overviewmemory fields reflected the successful runs, but the olderworkerValidationStatuslabel could still lag until evidence-backed route logic was updated. - Treat that API output as runtime truth for operator UI/status reporting; do not infer service-operational behavior from manifests alone. Prefer
serviceAvailableandserviceRunning; the olderserviceImplementation/serviceOperationalfields remain only as compatibility aliases.
Important: manifest presence or systemd declaration does not by itself prove service-running runtime behavior. Important: every non-template agent here is a declared agent, but only doc-specialist and reddit-helper currently keep real resident src/service.ts entrypoints. The rest are worker-first task lanes, and current orchestrator truth still does not host-prove any service-expected unit as running unless host evidence exists. Important: "spawned-worker capable" is broader than "confirmed working in the latest sweep." A task entrypoint can exist and still remain unconfirmed until a real orchestrator task path is exercised successfully. Most agents should still be read as spawned-worker surfaces first. Service-mode availability does not replace orchestrator task routing, ToolGate, or worker evidence. Important: in current manifests, id is the runtime identifier the orchestrator uses. agentId is present but null in current manifests and is not the active runtime key.
How To Read This Directory
agents/README.mdis the catalog and current entrypoint.- Each
agents/*/README.mdis a specialized local runbook for that agent, using the same baseline structure (Status,Primary orchestrator task,Canonical contract,Mission,Contract,Runtime,Governance). agent.config.jsonand source code are the real contract when documentation and implementation differ.
Shared Specialist Result Contract
All non-template agents should now converge on the same operator-facing result shape. The exact specialist logic differs by lane, but the operator contract should stay recognizable:
operatorSummary: one short answer to "what happened here?"recommendedNextActions[]: bounded follow-up actions for the operator or downstream lanespecialistContract: compact specialist metadata withroleworkflowStagedeliverablestatusrefusalReasonescalationReason
Status vocabulary:
completedwatchingblockedescalaterefused
Refusal language should be explicit:
- say
Refused because ...when the request is outside the governed lane - say
Escalate because ...when the lane is legitimate but cannot be closed safely with current evidence or permissions - do not hide blocked or weak-evidence outcomes behind a generic success tone
Not every agent here is equally mature. The folder can contain both active runtime surfaces and staged templates for orchestrated expansion.
Memory Contract (Mandatory for all agents)
Every agent must include these config keys in agent.config.json:
orchestratorStatePathserviceStatePath
Why this remains mandatory:
- Enables persistent cross-run memory continuity.
- Guarantees each agent has a durable execution timeline and status history.
- Supports operator auditability and replay-friendly diagnostics.
Runtime standard:
- The orchestrator updates each spawned agent
serviceStatePathwith memory state (lastRunAt,lastStatus, task IDs/types, counters, and bounded timeline history). - In the public repo,
orchestratorStatePathnow defaults to the local-first runtime state file at../../orchestrator/data/orchestrator-state.json. - When operators override runtime state with
STATE_FILEorORCHESTRATOR_CONFIG, spawned agents should inherit that override rather than silently drifting back to a stale manifest target. - Agents with richer pipelines may define additional memory I/O keys (for example
knowledgePackDir,draftLogPath,devvitQueuePath) but cannot omit the baseline memory contract above.
Capability And Access Policy
- every declared non-template agent remains in scope for full capability uplift
- full capability means each agent should eventually gain governed access to the skills and tools required for its role-complete execution path
- do not flatten permissions by giving every agent every skill or tool
- expand access through explicit manifest updates, ToolGate-visible policy, and evidence-backed runtime validation so operators can see what is truly available versus still missing
Governance
Every agent folder should keep its local governance primitives (ROLE.md, SCOPE.md, POLICY.md, TOOLS.md) aligned with ../docs/GOVERNANCE_REPO_HYGIENE.md.
Material agent code/config changes should update the appropriate existing .md file in the same change set and reference the affected task, runtime, or config paths where useful.