项目简介
ACP(Agent Communication Protocol)是一个开放协议,旨在统一 AI 代理、应用程序与人类之间的多模态通信方式。现代 AI 系统往往分散在不同的框架、团队和基础设施中,导致创新受阻且协作困难。ACP 通过定义一套通用的消息结构和交互规范,打破这种隔阂,让各类代理能够高效地互相发现、协同和共享状态,从而加速智能系统的发展与落地。

核心功能

  • 多模态消息传递:支持文本、代码、文件、媒体等多种格式的消息互通;
  • 实时与流式响应:可根据需求即时响应、后台执行或以流(streaming)的形式输出;
  • 能力发现:代理可公开自身的“能力清单”(Agent Manifest),让其他系统或用户轻松发现可用功能;
  • 长任务协作:内置“会话”(Session)与“挂起/恢复”(Await)机制,方便代理在长时任务中暂停等待外部输入后再继续执行;
  • 可扩展生态:ACP 已集成 Python/TypeScript SDK、OpenAPI 规范及多种示例,助力快速构建与接入自定义代理。

快速上手

  1. 初始化项目

    uv init --python '>=3.11' my_acp_project
    cd my_acp_project
    uv add acp-sdk
  2. 创建简单的 echo
    agent.py 中编写以下代码:

    import asyncio
    from acp_sdk.server import Server
    from acp_sdk.models import Message, RunYield, RunYieldResume, Context
    
    server = Server()
    
    @server.agent()
    async def echo(input: list[Message], context: Context):
        for msg in input:
            await asyncio.sleep(0.5)
            yield {"thought": "Echoing message"}
            await asyncio.sleep(0.5)
            yield msg
    
    server.run()
  3. 启动服务并验证

    uv run agent.py
    curl http://localhost:8000/agents

    正常情况下会返回包含 echo 代理的信息;

  4. 通过 HTTP 接口调用

    curl -X POST http://localhost:8000/runs \
      -H "Content-Type: application/json" \
      -d '{
            "agent_name": "echo",
            "input": [{"role":"user","parts":[{"content":"Hello ACP","content_type":"text/plain"}]}]
          }'

    即可收到同样的消息。

许可证与社区

  • 许可证:Apache-2.0
  • 维护与贡献:项目由 Linux Foundation AI & Data 下的 BeeAI 社区维护,欢迎通过 GitHub Issues、PR 和 Discussions 参与共建。

更多文档与示例请见官方站点:https://agentcommunicationprotocol.dev

标签:AI, infra

你的评论