微信扫码
添加专属顾问
我要投稿
探索AI协作新方式:用Python轻松实现Agent间自动交互,开启智能通信第一步。核心内容: 1. A2A交互的基本概念与开发环境配置 2. 服务端启动与客户端交互测试步骤 3. 代码解析与运行效果验证
人工智能技术日益发展的今天,Agent 之间的自动通信与协作正变得越来越重要。今天我们来实战一下,使用 Python 实现一个简单的 A2A(Agent-to-Agent)交互示例。
在开始之前,请确保你的开发环境中已安装以下工具:
访问 GitHub 并克隆官方提供的 A2A 示例仓库:
bash 深色版本
git clone https://github.com/google-a2a/a2a-samples.git -b main --depth 1
cd a2a-samples
注意:该项目是 Google A2A 的官方示例代码库,我们只拉取最新主分支的简化版本。
bash 深色版本
python -m venv .venv
.venv\Scripts\activate
bash 深色版本
python -m venv .venv
source .venv/bin/activate
进入项目目录后,安装所需的 Python 包以及 A2A SDK:
bash 深色版本
pip install -r samples/python/requirements.txt
你可以运行以下命令再次确认依赖是否安装完整:
bash 深色版本
pip install -r samples/python/requirements.txt
如果看到类似输出:
深色版本
A2A SDK imported successfully
恭喜!你的开发环境已经准备就绪!
从项目根目录启动服务端:
bash 深色版本
python samples/python/agents/helloworld/__main__.py
服务启动后,你会看到如下日志信息:
深色版本
INFO: Started server process [xxxxx]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:9999 (Press CTRL+C to quit)
此时,服务已成功运行在 http://localhost:9999
上。
打开一个新的终端窗口,保持虚拟环境激活状态,运行客户端脚本:
bash 深色版本
python samples/python/agents/helloworld/test_client.py
让我们看看客户端是如何实现与服务端通信的。
python 深色版本
base_url = 'http://localhost:9999'
asyncwith httpx.AsyncClient() as httpx_client:
resolver = A2ACardResolver(
httpx_client=httpx_client,
base_url=base_url,
# agent_card_path 使用默认值,extended_agent_card_path 也使用默认值
)
这段代码初始化了一个异步 HTTP 客户端,并通过 A2ACardResolver
获取目标 Agent 的能力描述(Card),为后续交互做准备。
python 深色版本
client = A2AClient(httpx_client=httpx_client, agent_card=final_agent_card_to_use)
logger.info('A2AClient initialized.')
send_message_payload: dict[str, Any] = {
'message': {
'role': 'user',
'parts': [
{'kind': 'text', 'text': 'how much is 10 USD in INR?'}
],
'messageId': uuid4().hex,
},
}
request = SendMessageRequest(id=str(uuid4()), params=MessageSendParams(**send_message_payload))
response = await client.send_message(request)
print(response.model_dump(mode='json', exclude_none=True))
上述代码构建了一个包含用户问题的 JSON 请求,并通过 A2AClient
发送给服务端 Agent。
运行完成后,你应该会看到类似如下的响应:
json 深色版本
{
"jsonrpc": "2.0",
"id": "xxxxxxxx",
"result": {
"type": "message",
"role": "agent",
"parts": [
{ "type": "text", "text": "Hello World" }
],
"messageId": "yyyyyyyy"
}
}
这表明一次完整的 A2A 非流式交互已经成功完成!
今天我们完成了以下任务:
虽然目前只是一个基础示例,但它为我们理解 A2A 架构提供了良好的起点。
下一篇文章中,我们将进一步深入,带你体验 流式响应处理,让你实时看到 Agent 是如何一步步生成回复内容的。准备好感受 A2A 的强大交互能力了吗?敬请期待!
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-05-29
2025-05-23
2025-04-29
2025-05-07
2025-05-07
2025-05-07
2025-06-01
2025-04-29
2025-06-07
2025-05-20
2025-07-19
2025-07-19
2025-07-19
2025-07-19
2025-07-19
2025-07-18
2025-07-18
2025-07-18