P/ACP Components
{{#rfd: proxying-acp}}
This section documents the components that implement the P/ACP (Proxying ACP) protocol for composable agent architectures.
Overview
P/ACP enables building modular agent systems by chaining components together. Each component can intercept and transform ACP messages flowing between editors and agents.
The key components are:
- Conductor: ACP Orchestrator - The orchestrator that manages the proxy chain and presents as a normal ACP agent to editors
- ProxyingAcpServer Trait (planned) - The trait/interface that makes writing proxy components easy
- Sparkle Component (planned) - Example component that injects Sparkle collaborative patterns
Architecture
flowchart LR
Editor[ACP Editor]
subgraph Conductor[Conductor Process]
F[Orchestrator]
end
subgraph Chain[Component Chain]
C1[Proxy Component 1]
C2[Proxy Component 2]
Agent[ACP Agent]
C1 -->|_proxy/successor/*| C2
C2 -->|_proxy/successor/*| Agent
end
Editor <-->|ACP| F
F <-->|manages| Chain
Key principles:
- Editor transparency: Editors see Conductor as a normal ACP agent—no special protocol awareness needed
- Component composition: Proxies can be mixed and matched without knowing about each other
- Capability negotiation: Each component controls what capabilities it advertises to its predecessor
- Simple forwarding: Default behavior is to forward messages unchanged; components only override what they need
Component Lifecycle
- Initialization: Editor sends
acp/initializeto Conductor - Chain setup: Conductor spawns first component, which initializes its successor, etc.
- Capability negotiation: Capabilities flow back up the chain, each component adding its own
- Message routing: Messages flow down the chain, responses flow back up
- Shutdown: If any component exits, the entire chain shuts down
Related Documentation
- P/ACP RFD - Full protocol specification and motivation