decisionsLast updated 2026-04-29
2026-04-29 — No ACP
Dropped ACP (Agent Communication Protocol) in favor of native `sessions_spawn` with `runtime: "subagent"`. Simpler, more reliable, no permission headaches.
Summary
Dropped ACP (Agent Communication Protocol) in favor of native sessions_spawn with runtime: "subagent". Simpler, more reliable, no permission headaches.
Context
We evaluated multiple ways to run specialized agents:
1. ACP harness (OpenClaw's protocol)
2. Native subagent (OpenClaw's built-in)
3. External API calls (OpenCodeGo, etc.)
Decision
Use native subagent only. No ACP harness. No external APIs for crew work.
Rationale
Factor
ACP
Native
External API
Setup complexity
High (harness, permissions)
Low (built-in)
Medium (keys, rate limits)
Reliability
Permission issues observed
Just works
Network dependent
Filesystem access
Restricted
Full
None
Audit trail
Opaque
Transparent
External logs
Portability
Theoretical
OpenClaw only
Provider dependent
Consequences
- ✅ Simpler crew architecture
- ✅ No permission debugging
- ✅ Full filesystem access for agents
- ❌ Locked to OpenClaw runtime
- ❌ Can't easily port to other harnesses
Reversibility
Low. If we need ACP later, we'd need to re-architect. But the pain of ACP was real and immediate.
Relationships
- subagent-pattern — The pattern this decision enables
- crew-coordination — File coordination works better with native subagents
- blinky — DevOps Engineer, primary beneficiary of simpler execution