What is ACP?

The Agent Communication Protocol (ACP) is an open standard with open governance for agent interoperability. It defines a standardized RESTful API supporting synchronous, asynchronous, and streaming interactions. In ACP, agents are services that exchange multimodal messages, with the protocol remaining agnostic to their internal implementations and requiring only minimal specifications for compatibility.

Why ACP?

AI systems today are siloed by incompatible frameworks, leading to:

  • Duplicated effort
  • Integration hurdles
  • Scalability issues
  • Inconsistent developer experience

ACP addresses this by offering a shared communication standard. Whether built with BeeAI, LangChain, CrewAI, or custom code, agents can work together through a unified interface.

ACP is an open standard developed under the Linux Foundation, alongside BeeAI, its official implementation. While ACP defines the protocol standard, BeeAI delivers the practical platform for discovering, deploying, and running agents built on any technology stack. Both projects are maintained under open governance to ensure transparency and community-driven development.

Key Features

  • REST-based Communication: ACP uses simple, clearly defined REST endpoints, aligning closely with standard HTTP patterns. Unlike protocols relying on more complex communication methods (such as JSON-RPC), ACP leverages widely-used HTTP conventions to simplify usage and integration into production environments.
  • No SDK Required (but there’s one if you want it): ACP is simple enough that you don’t need an SDK or specialized libraries. You can easily interact with ACP-compatible agents using standard HTTP tools like curl, Postman, or even your browser. However, for those who prefer it, there is an SDK.
  • Offline Discovery: Agents can be made discoverable even when inactive by embedding metadata directly into their distribution packages. This enables discovery in secure, disconnected, or scale-to-zero environments.
  • Async-first, Sync Supported: ACP is designed primarily for asynchronous communication, ideal for agents handling longer-running tasks. However, synchronous communication is also fully supported by default, simplifying development, rapid testing, and common use cases.

Get Started