大数跨境
0
0

打破交流壁垒:Agent Communication Protocol (ACP)的全新突破

打破交流壁垒:Agent Communication Protocol (ACP)的全新突破 GitHub每日推文
2025-09-04
14
导读:在这个飞速发展的人工智能时代,AI技术的创新不断刷新我们的认知。

在这个飞速发展的人工智能时代,AI技术的创新不断刷新我们的认知。然而,各种AI代理常常在不同框架和基础设施中独立开发,导致它们难以有效互动,创新步伐因此受到限制。为了解决这些挑战,Agent Communication Protocol(ACP)应运而生。ACP是一种开放协议,旨在促进AI代理、应用程序和人类之间的沟通与协作。

ACP的核心功能及应用场景

ACP赋能AI代理能够以多模态消息的方式进行互动,它不仅支持文本、代码、文件或媒体的丰富消息传递,还能实现实时、后台或流式的响应。此外,ACP促进了AI代理在长时间任务上的协作,并支持在需要时共享状态信息。

通过ACP,开发者可以在BeeAI平台[1]中发现、运行并共享AI代理。这意味着无论您是想构建新应用、优化现有流程,还是增加团队沟通的效能,ACP都可以为您提供强大的支持。

想要深入了解ACP的使用?可以参加DeepLearning.AI的短期教程[2],在实践中掌握这一强大工具。

Deep Learning AI教程

最新更新:增强的功能与支持

  • 🧭 轨迹元数据:增强了MessagePart的轨迹元数据功能,用于多步骤推理和工具调用的跟踪。
  • 🌐 分布式会话:通过URI资源共享实现多服务器实例间的会话连续性。
  • 🔍 RAG LlamaIndex代理:提供了基于LlamaIndex的检索增强生成的新示例代理。
  • 📚 引用元数据:改进了消息部分的来源跟踪和归属元数据。
  • ⚡ 高可用性支持:通过集中的存储(如Redis/PostgreSQL)实现可扩展的、容错的ACP服务器部署。
  • 📝 消息角色参数:为消息结构添加role参数,以便更好地识别代理。
  • 🔄 TypeScript SDK:提供完整的TypeScript客户端库,用于与ACP代理交互。

快速入门指南

您准备用ACP构建自己的项目吗?以下是一份简单的快速入门指南,帮助您走上开发之路:

1. 项目初始化

使用以下命令初始化您的Python项目:

uv init --python '>=3.11' my_acp_project
cd my_acp_project

2. 添加ACP SDK

uv add acp-sdk

3. 创建一个简单的“回声代理”

在您的项目目录中创建一个名为agent.py的文件,并输入以下代码:

# agent.py
import asyncio
from collections.abc import AsyncGenerator

from acp_sdk.models import Message
from acp_sdk.server import Context, RunYield, RunYieldResume, Server

server = Server()


@server.agent()
async def echo(
    input: list[Message], context: Context
)
 -> AsyncGenerator[RunYield, RunYieldResume]:

    """Echoes everything"""
    for message in input:
        await asyncio.sleep(0.5)
        yield {"thought""I should echo everything"}
        await asyncio.sleep(0.5)
        yield message


server.run()

4. 启动ACP服务器

uv run agent.py

此时,您的服务器应运行在http://localhost:8000[3]

5. 验证代理是否可用

在另一个终端中运行以下命令:

curl http://localhost:8000/agents

您将看到包含echo代理的JSON响应,确认其可用。

6. 通过HTTP运行代理

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

您将收到回声消息"Howdy!",这一切都在您的控制台中展示。

7. 构建ACP客户端

在项目目录中创建一个名为client.py的文件,并输入以下代码:

# client.py
import asyncio

from acp_sdk.client import Client
from acp_sdk.models import Message, MessagePart


async def example() -> None:
    async with Client(base_url="http://localhost:8000"as client:
        run = await client.run_sync(
            agent="echo",
            input=[
                Message(
                    role="user",
                    parts=[MessagePart(content="Howdy to echo from client!!", content_type="text/plain")]
                )
            ],
        )
        print(run.output)


if __name__ == "__main__":
    asyncio.run(example())

8. 运行ACP客户端

uv run client.py

您将在控制台中看到回声消息的响应。

结语

在AI代理的通信和协作领域,ACP不仅提供了开放和灵活的解决方案,还能有效打破创新瓶颈。其广泛的应用场景和易于上手的快速开发工具包,使得无论是AI新手还是老手,都可以从中受益无限。随着平台的不断迭代与完善,ACP必将成为未来AI通信的中坚力量。

同类项目比较

虽然市场上有其他代理通信协议项目,但ACP在功能的多样性、部署的简易性以及与现有工具的兼容性上表现突出。例如,Rasa和Dialogflow主要关注于AI在对话式应用中的用途,而ACP的设计初衷更多是支持多模态通信及跨平台协作,适用于更广泛的开发应用场景。无论是何种需求,ACP都能为您的项目提供强大支持。

参考资料

[1] 

BeeAI平台: https://github.com/i-am-bee/beeai-platform

[2] 

DeepLearning.AI的短期教程: https://www.deeplearning.ai/short-courses/acp-agent-communication-protocol/

[3] 

http://localhost:8000: http://localhost:8000


【声明】内容源于网络
0
0
GitHub每日推文
一位热爱编程与开源项目的开发者。每天我都会精选 GitHub 上的优质项目和最新动态,通过简短精炼的推文分享给大家,帮助你迅速了解技术前沿。关注我,获取每日 GitHub 精选,提升开发技能,紧跟技术潮流!
内容 448
粉丝 0
GitHub每日推文 一位热爱编程与开源项目的开发者。每天我都会精选 GitHub 上的优质项目和最新动态,通过简短精炼的推文分享给大家,帮助你迅速了解技术前沿。关注我,获取每日 GitHub 精选,提升开发技能,紧跟技术潮流!
总阅读343
粉丝0
内容448