sandbox-agent/research/acp/rfds-vs-extensions.md
Nathan Flurry 2ba630c180 acp spec
2026-02-11 06:43:36 -08:00

5.9 KiB

ACP RFDs vs Extensions

Status date: 2026-02-10

Feature Area Approach Short-Term Extension Path Notes
Generic non-permission HITL question/input flow (agent request + client response) RFD _sandboxagent/session/request_question request + structured JSON-RPC response (answered/rejected/cancelled). Needs standard ACP request/response shape beyond permission prompts.
Standard model listing support (including pre-session discovery and/or stable session model state) RFD _sandboxagent/session/list_models response with availableModels, currentModelId, plus variant fields (defaultVariant, variants[]) in payload or _meta. Includes model variant semantics (defaultVariant, variants[]).
Stabilize session/list RFD Use ACP unstable session/list directly (no custom extension alias). Currently unstable ACP method.
Stabilize session/fork RFD Use ACP unstable session/fork directly (no custom extension alias). Currently unstable ACP method.
Stabilize session/resume RFD Use ACP unstable session/resume directly (no custom extension alias). Currently unstable ACP method.
Stabilize session/set_model RFD Use ACP unstable session/set_model directly; fallback to session/set_config_option where available. Currently unstable ACP method.
Standard session metadata-at-creation semantics (portable title/tags-style hints) RFD Use session/new.params._meta["sandboxagent.dev"] for create-time metadata; optional _sandboxagent/session/set_metadata for post-create updates. Reduces custom _meta usage for common metadata.
Sandbox Agent robust HTTP filesystem API Extension Already extension (/v2/fs/* custom HTTP surface). Separate custom HTTP API; not ACP core agent-session protocol.
skills payload and behavior Extension Already extension via _meta["sandboxagent.dev"].skills and optional _sandboxagent/session/set_metadata. Product-specific behavior.
Client-requested session alias (requestedSessionId) behavior Extension Already extension via _meta["sandboxagent.dev"].requestedSessionId. Product-specific metadata/ID behavior.
Agent version pin/hint behavior during bootstrap/session creation Extension Already extension via _meta["sandboxagent.dev"].agentVersionRequested. Product-specific runtime selection behavior.
Agent control-plane inventory/install state (list/install/credentialsAvailable/installed/path) Extension Already extension as custom control-plane HTTP (/v2/agents, /v2/agents/{agent}/install). Control-plane functionality outside ACP core.
Runtime daemon/process status and related capabilities (serverStatus, sharedProcess, commandExecution, errorEvents) Extension Already extension as control-plane fields (/v2/agents, /v2/health) and capability _meta hints. Runtime/orchestrator-specific state.
Sandbox Agent control-plane APIs (/v2/health, /v2/agents, /v2/agents/{agent}/install) Extension Already extension (custom non-ACP API surface). Custom non-ACP HTTP surface.
OpenCode compatibility bridging behavior (/opencode/*) Extension Already extension as product compatibility bridge layer. Product compatibility layer, not ACP core protocol.