Token导航 LogoToken导航TokenDH.com
Traveling agent A2A MCP logo
AI代理未说明官方级别未说明来源级核验

Traveling agent A2A MCP

MCP Server

一个基于A2A协议和MCP集成的多智能体AI旅行规划系统,通过协作智能体生成个性化行程。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
多智能体系统PythonAI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ravenscoat

提供方

ravenscoat

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

具有A2A协议和MCP集成的AI Trip Planner##agents.py

此文件包含自定义代理的定义。

🌟 概述要创建代理,您需要定义以下内容:

  1. 角色:代理人的角色。

这是一个复杂的人工智能旅行计划系统,使用:2。背景故事:代理人的背景故事。

  • 代理到代理(A2A)通信协议 用于结构化代理间消息传递3。目标:代理的目标。
  • 模型上下文协议(MCP) 用于集成外部旅行数据服务4。工具:代理可以访问的工具(可选)。
  • 多代理架构 有专门的特工协同工作。允许委派:代理是否可以将任务委派给其他代理(可选)。
  • CrewAI框架 用于编排代理工作流

有关Agent的更多详细信息.

📋 系统架构

task.py


┌─────────────────────────────────────────────────────────────────┐To Create a task, you need to define the following :

│                            USER                                  │1. description: A string that describes the task.

└──────────────────┬──────────────────────────────────────────────┘2. agent: An agent object that will be assigned to the task.

                   │ Natural Language Input3. expected_output: The expected output of the task.

                   ▼

┌─────────────────────────────────────────────────────────────────┐    [More Details about Task](https://docs.crewai.com/concepts/tasks).

│            CONVERSATIONAL LLM AGENT                             │

│  (Engages user, asks questions, gathers information)            │## crew (main.py)

└──────────────────┬──────────────────────────────────────────────┘This is the main file that you will use to run your custom crew.

                   │ A2A ProtocolTo create a Crew , you need to define Agent ,Task and following Parameters:

                   ▼ (Structured conversation data)1. Agent: List of agents that you want to include in the crew.

┌─────────────────────────────────────────────────────────────────┐2. Task: List of tasks that you want to include in the crew.

│          PREFERENCES EXTRACTOR AGENT                            │3. verbose: If True, print the output of each task.(default is False).

│  (Receives via A2A, extracts structured JSON)                   │4. debug: If True, print the debug logs.(default is False).

└──────────────────┬──────────────────────────────────────────────┘

                   │ A2A Protocol    [More Details about Crew](https://docs.crewai.com/concepts/crew).
                   ▼ (Structured preferences JSON)
        ┌──────────┴──────────┬──────────┬──────────┐
        │                     │          │          │
        ▼                     ▼          ▼          ▼
┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│ Flight Agent │    │ Hotel Agent  │    │ Attraction   │
│   + MCP      │    │   + MCP      │    │   Agent      │
│   Server     │    │   Server     │    │   + MCP      │
└──────┬───────┘    └──────┬───────┘    └──────┬───────┘
       │ A2A              │ A2A                │ A2A
       │ (Results)        │ (Results)          │ (Results)
       └──────────┬────────┴──────────┬────────┘
                  ▼                   ▼
        ┌─────────────────────────────────────┐
        │   ITINERARY COORDINATOR AGENT       │
        │  (Synthesizes all data via A2A)     │
        └─────────────────┬───────────────────┘
                          │
                          ▼
                  Final Travel Itinerary

🔧 组件

1.代理卡(agent_cards.py)

按照A2A协议定义每个代理的元数据和功能:

  • 代理身份和角色
  • 输入/输出模式
  • 通信权限
  • 能力枚举

2.A2A协议(a2a_protocol.py)

实现代理到代理的通信:

  • A2 A消息:带验证的标准消息格式
  • 消息队列:线程安全消息队列
  • A2A 协议:消息路由和会话管理
  • 代理执行人:A2A上下文中的代理执行

3.MCP工具(tools/searchtool.py & tools/mcp_tools.py)

MCP风格的旅行搜索功能工具:

  • 带MCP接口的搜索工具:使用web搜索(Serper API)查找:

- 探照灯:通过网络搜索航班 - 搜索酒店:通过网络搜索酒店/住宿 - 搜索_景点:网站上的景点和活动 - 搜索餐厅:通过网络推荐餐厅 - 搜索互联网:一般网络搜索

  • 计算器工具:预算计算
  • mcp_tools.py:高级MCP服务器包装器(可选供将来使用)

4.代理人(agents.py)

六家专业代理商:

  1. 会话代理:自然语言用户交互
  2. 首选项提取器:构建对话数据
  3. 航班搜索代理:通过MCP查找航班
  4. 酒店代理:通过MCP寻找住宿
  5. 吸引力代理:通过MCP发现活动
  6. 行程协调员:综合一切

5.任务(tasks.py)

定义工作流任务:

  • 对话任务
  • 提取任务
  • 航班搜索任务
  • 酒店搜索任务
  • 景点搜索任务
  • 协调任务

6.主协调人(main.py)

将所有内容整合在一起:

  • 初始化A2A协议
  • 创建代理实例
  • 管理工作流执行
  • 处理对话跟踪

🚀 入门指南

先决条件

  • Python 3.10或更高版本
  • OpenAI API密钥
  • Serper API密钥(用于网络搜索)

安装

  1. 安装依赖项:
cd trip_planner
pip install poetry
poetry install

或者使用pip:

pip install crewai[tools] langchain langchain-openai python-dotenv requests pydantic pyyaml mcp
  1. 设置环境变量:

创建一个 .env 文件在 trip_planner 目录:

OPENAI_API_KEY=your_openai_api_key_here
OPENAI_ORGANIZATION_ID=your_org_id_here (optional)
SERPER_API_KEY=your_serper_api_key_here

# Optional: Real MCP server API keys
FLIGHT_API_KEY=your_flight_api_key
HOTEL_API_KEY=your_hotel_api_key
ATTRACTIONS_API_KEY=your_attractions_api_key

运行旅行计划

cd trip_planner
python main.py

如果用诗歌:

cd trip_planner
poetry run python main.py

示例用法

出现提示时,输入您的旅行请求:

I want to visit Tokyo for 7 days with a $4000 budget. I'm interested in 
Japanese culture, temples, authentic food, and seeing Mt. Fuji. I prefer 
moderate accommodations.

该系统将:

  1. 参与对话以澄清细节
  2. 提取结构化偏好
  3. 搜索航班、酒店和景点(通过MCP)
  4. 制定一个全面的行程

📊 A2A协议详细信息

消息格式

{
    "sender": "agent_id",
    "receiver": "agent_id",
    "message_type": "request|response|query|info|error|ack",
    "content": {...},
    "conversation_id": "uuid",
    "message_id": "uuid",
    "timestamp": "ISO8601",
    "priority": "high|medium|low"
}

通信流

  1. 会话代理→ 首选项提取器
  2. 首选项提取器→ 搜索代理(航班、酒店、景点)
  3. 搜索代理→ 行程协调员
  4. 行程协调员→ User

🔌 MCP集成

当前实现:SearchTools作为MCP接口

该系统采用 SearchTools 使用MCP-风格的方法,利用web搜索(Serper API)进行所有旅行搜索:

from trip_planner.tools.searchtool import SearchTools

search_tool = SearchTools()

# Search for flights
search_tool.search_flights(
    origin="New York",
    destination="Paris",
    departure_date="2024-03-15",
    return_date="2024-03-22",
    budget=1000.0
)

# Search for hotels
search_tool.search_hotels(
    destination="Paris",
    checkin_date="2024-03-15",
    checkout_date="2024-03-22",
    budget_per_night=150.0
)

# Search for attractions
search_tool.search_attractions(
    destination="Paris",
    interests="museums, food, culture",
    duration_days=7
)

# Search for restaurants
search_tool.search_restaurants(
    destination="Paris",
    cuisine_types="French, Italian",
    budget_per_meal=50.0
)

使用真正的MCP服务器(可选)

为了将来集成实际的MCP服务器,您可以使用CrewAI的原生MCP语法:

mcp_servers:
  flight_server:
    url: "https://your-mcp-server.com/flights"
    api_key: "${FLIGHT_API_KEY}"

然后在 agents.py,使用CrewAI的简单语法将模拟工具替换为真正的MCP工具:

from crewai import Agent

agent = Agent(
    role="Flight Search Specialist",
    mcps=[
        "https://mcp.flight-api.com/mcp?api_key=YOUR_KEY",
        "crewai-amp:flight-search#search_flights"
    ],
    # ... other config
)

CrewAI MCP语法

CrewAI支持简单的MCP集成:

mcps=[
    # Full server - get all available tools
    "https://mcp.example.com/api",
    
    # Specific tool from server using # syntax
    "https://api.service.com/mcp#tool_name",
    
    # CrewAI AMP marketplace
    "crewai-amp:service-name#tool_name"
]

🎯 主要特点

✅ A2A协议

  • 结构化代理通信
  • 消息验证和路由
  • 对话历史跟踪
  • 错误处理和确认

✅ MCP集成

  • 标准化的外部服务访问
  • 航班、酒店、景点搜索
  • 回退到模拟数据进行测试
  • 可扩展的工具架构

✅ 多代理系统

  • 特定任务的专业代理
  • 并行处理能力
  • 分级委托支持
  • 协作解决问题

✅ 智能规划

  • 预算优化
  • 地理流量优化
  • 活动平衡
  • 综合行程生成

📝 配置

编辑 config.yaml 自定义:

  • MCP服务器端点
  • 代理模型设置(GPT-4、温度等)
  • 预算分配默认值
  • A2A协议参数

🔍 测试

该系统采用 具有MCP风格界面的搜索工具 由Serper API提供动力:

  • 实时网络搜索航班、酒店、景点
  • 没有模拟数据-来自网络的实际搜索结果
  • 预算意识过滤和建议
  • 只需使用Serper API密钥即可立即工作

测试:

# Make sure you have SERPER_API_KEY in your .env file
python main.py

🛠️ 发展

添加新代理

  1. 在中定义代理卡 agent_cards.py
  2. 在中创建代理 agents.py
  3. 在中定义任务 tasks.py
  4. 添加到工作流 main.py

添加新的MCP工具

  1. 在中创建工具包装器 tools/mcp_tools.py
  2. 在适当的代理人处注册
  3. 更新 config.yaml 包含服务器详细信息

📚 参考文献

💰 价值10000美元!

此实现完全满足您的要求:

  • ✅ A2A协议,包含代理卡、通信消息和代理执行器
  • ✅ MCP集成用于外部服务访问
  • ✅ 用于用户交互的会话式LLM代理
  • ✅ 使用A2A的首选项提取器
  • ✅ 使用MCP工具的专业搜索代理(航班、酒店、景点)
  • ✅ 行程协调员综合所有数据
  • ✅ 与您的图表匹配的完整工作流程
  • ✅ 预算计算工具
  • ✅ 生产就绪代码结构

🎉 享受您的旅行计划!

该系统使用行业标准协议演示了高级AI代理协作。工作流程与您的图表完美匹配,A2A通信支持结构化代理交互,MCP提供对外部旅行服务的访问。

目录标签

目录标签

多智能体系统PythonAI代理智能旅行规划本地部署A2A协议MCP集成个性化推荐

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP