ACP Protocol Surface Guide
September 4, 2026 · View on GitHub
中文 | English
ACP Protocol Surface Guide
Scope: this guide applies to src/crates/interfaces/acp.
openbitfun-acp owns the Agent Client Protocol surface over the assembled product
runtime. Keep ACP protocol/client details here or in app-surface adapters;
share only stable capability facts through contract crates.
The crate exposes two additive roles. client owns ACP process discovery,
configuration, remote probing, session transport, and tool-card projection; it
selects the Core Agent Runtime plus concrete SSH support. server owns the
CLI-hosted ACP server and runtime projection through DeliveryProfile::Acp; it
selects the exact Core tool, document, subscription, and external-source
owners used by that path, but does not select SSH. The compatibility default is
exactly client + server. Desktop selects only client; CLI selects both.
Keep these role features additive and do not replace either closure with
product-full.
Guardrails
- Remote ACP workspaces reuse local ACP client configuration. Preserve the manager, remote shell probing, remote capability store, and workspace menu availability semantics when changing ACP client behavior.
- ACP config persistence, remote probing, timeout policy, and workspace surface
selection are ACP/app-surface behavior. Do not move them into
core-types,runtime-ports, oragent-tools. - ACP external-agent tool naming, schema, validation, presentation, and result
shape are portable contracts owned by
openbitfun-agent-tools; ACP should call those helpers instead of redefining them locally. - Keep ACP stdio/connection ownership and protocol notification projection in this crate. Shared runtime facts may cross the SDK boundary; ACP protocol requests, client choices, and lifecycle state may not.
- If a future contract is needed, make it observational: environment identity, capability facts, and request/response DTOs only.
Verification
cargo check -p openbitfun-acp --no-default-features --features client
cargo check -p openbitfun-acp --no-default-features --features server
cargo test -p openbitfun-acp