Agent Client Protocol (Python) - v0.0.1
A minimal Python SDK for the Agent Client Protocol (ACP). Build agents that talk to ACP clients (e.g. Zed) over stdio.
- Package:
agent-client-protocol(import asacp) - Docs: https://psiace.github.io/agent-client-protocol-python/
Install
pip install agent-client-protocolMinimal agent
import asyncio
from acp import Agent, AgentSideConnection, Client, InitializeRequest, InitializeResponse, PromptRequest, PromptResponse, SessionNotification, stdio_streams, PROTOCOL_VERSION
from acp.schema import ContentBlock1, SessionUpdate2
class EchoAgent(Agent):
def __init__(self, client: Client):
self.client = client
async def initialize(self, _p: InitializeRequest) -> InitializeResponse:
return InitializeResponse(protocolVersion=PROTOCOL_VERSION)
async def prompt(self, p: PromptRequest) -> PromptResponse:
await self.client.sessionUpdate(SessionNotification(
sessionId=p.sessionId,
update=SessionUpdate2(sessionUpdate="agent_message_chunk", content=ContentBlock1(type="text", text="Hello from ACP")),
))
return PromptResponse(stopReason="end_turn")
async def main() -> None:
reader, writer = await stdio_streams()
AgentSideConnection(lambda c: EchoAgent(c), writer, reader)
await asyncio.Event().wait()
if __name__ == "__main__":
asyncio.run(main())Use this executable from your ACP client.
More
- Quickstart: docs/quickstart.md
- Mini SWE Agent bridge: examples/mini_swe_agent/README.md
- Details: docs/mini-swe-agent.md