多客科技 发表于 2025-7-5 03:31

AI Infra:ACP,标准化的 RESTful API 解决 Agent 之间的通信问题

作者:微信文章



项目简介
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-sdk2. 创建简单的 echo
在 agent.py 中编写以下代码:import asyncio
from acp_sdk.server import Server
from acp_sdk.models import Message, RunYield, RunYieldResume, Context

server = Server()

@server.agent()
asyncdefecho(input: list, context: Context):
    for msg ininput:
      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
页: [1]
查看完整版本: AI Infra:ACP,标准化的 RESTful API 解决 Agent 之间的通信问题