A2A项目概述
A2A是什么?
A2A(代理到代理协议)是代理使用共享消息格式(JSON-RPC+结构化消息)通过HTTP相互通信的标准方式。
A2A与MCP有何不同
MCP(模型上下文协议)和A2A解决了堆栈的不同层:
- MCP是关于工具的\
它公开了get_weather(city)或search_docs(query)等函数/API。\ 代理→ MCP服务器(工具)。
- A2A是关于特工的\
它允许完整的代理(使用自己的工具、内存、逻辑)相互通信。\ 代理人A↔ 代理B(对话/请求)。
项目
| 项目名称 | 链和运行命令 |
|---|---|
| 旅行规划师×天气造型师 | |
| (A2A+MCP演示) | A2A连接:旅行计划代理↔ 天气造型师代理。 |
MCP连接:天气造型师代理→ 气象MCP服务器→ OpenWeather API。
1.启动天气造型师代理: uv run uvicorn weather_stylist_agent:app --port 8080 2.启动旅行计划代理: uv run uvicorn travel_planner_agent:app --port 8081 3.调用链: uv run talk_to_agent.py | |货币与股票配对 (A2A+MCP演示)|A2A连接:货币对代理↔ 股票数据代理。 MCP连接: •货币对代理→ 货币MCP服务器→ API汇率 •股票数据代理→ 库存MCP服务器→ 雅虎财经API。
运行顺序: 1.启动货币对(A2A)代理: uv run uvicorn currency_pair_agent:app --port 8081 2.启动股票数据(A2A)代理: uv run uvicorn stock_data_agent:app --port 8082 3.测试或协调沟通: uv run python test.py | |度假规划师×Airbnb (A2A+MCP演示)|A2A连接:飞行代理↔ Airbnb代理。 MCP连接: •飞行代理→ 航班MCP服务器→ 谷歌航班API(通过RapidAPI) •Airbnb代理→ Airbnb MCP服务器→ Airbnb搜索和列表工具。
运行顺序: 1.启动航班MCP服务器: uv run python flights_mcp_server.py 2.启动Airbnb(A2A)代理: uv run uvicorn airbnb_a2a:app --port 8090 3.启动航班(A2A)代理: uv run uvicorn flights_a2a:app --port 8091 4.运行编排器/测试器: uv run python tester.py | |Reddit×谷歌文档 (A2A+MCP演示)|A2A连接:谷歌文档代理↔ Reddit代理。 MCP连接: •Reddit代理→ Reddit MCP服务器→ Reddit API(热门话题、评论、摘要) •谷歌文档代理→ 谷歌文档MCP服务器→ 谷歌文档和驱动API。
运行顺序: 1.启动Reddit(A2A)代理: uv run uvicorn reddit_a2a:app --port 8130 2.启动谷歌文档(A2A)代理: uv run uvicorn docs_a2a:app --port 8131 3.运行A2A客户端/编排器: uv run python a2a_client.py
✅ *流量:* User → 规划师→ 谷歌文档代理→ Reddit代理→ Reddit MCP→ 谷歌文档MCP→ 最后写信给Doc|
如何运行此项目
1.克隆仓库
git clone https://github.com/gauthiii/a2aProjects
cd a2aProjects2.创建.env文件
OPENAI_API_KEY=your_openai_key_here
OPENWEATHER_API_KEY=your_openweather_key_here
# Optional
ANTHROPIC_API_KEY=your_anthropic_key_here
GROQ_API_KEY=
GEMINI_API_KEY=
GMAIL_CLIENT_ID=
GMAIL_CLIENT_SECRET=
EXCHANGE_RATE_API_KEY=
RAPID_GOOGLE_FLIGHTS_API=
3.使用uv安装依赖项
uv sync