The ACP SDK allows you to wrap an existing agent, regardless of its framework or programming language, into a reusable and interoperable service. By implementing a simple interface, your agent becomes compatible with the ACP protocol and can communicate over HTTP, interact with other agents in workflows, and exchange structured messages using a shared format. Once wrapped, your agent becomes:Documentation Index
Fetch the complete documentation index at: https://agentcommunicationprotocol.dev/llms.txt
Use this file to discover all available pages before exploring further.
- Remotely callable over REST APIs
- Composable in workflows with other agents
- Discoverable by other systems
- Reusable without changing its internal logic
Simple agent
Wrap an agent by annotating a Python function with@server.agent(). The agent name comes from the function name, and the description comes from the docstring. You can add more metadata like capabilities, dependencies, and content types - see the Agent Manifest section for details.
This creates an ACP-compliant agent that can receive messages and respond via HTTP using the ACP protocol:
echo.py
- The
@server.agent()decorator registers your function as an ACP agent inputscontains the messages sent to your agentcontextprovides request metadata and utilitiesyieldstatements send responses back to the caller- The server automatically handles HTTP routing and message serialization
Simple LLM agent
Here’s a more sophisticated example that wraps an LLM agent with memory and tools using thebeeai-framework:
llm.py