1. 项目概述
今天我要分享一个很有意思的项目:使用SKILL+MCP技术栈构建一个智能旅行规划Agent。这个项目完美结合了大语言模型的决策能力和外部工具的执行能力,能够根据用户需求生成个性化的旅行计划。
作为一名经常需要出差和旅行的开发者,我深知规划行程的痛点:需要查询航班、酒店、景点等各种信息,还要考虑时间安排和预算控制。这个项目正是为了解决这些问题而设计的。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心技术解析
2.1 SKILL与MCP架构设计
这个项目的核心架构基于两个关键概念:SKILL和MCP。让我用开发者的视角来解释一下它们的区别:
-
SKILL(技能):相当于AI的"大脑",定义了AI在特定场景下的思考方式和行为模式。在我们的旅行规划场景中,SKILL规定了如何分析用户需求、如何调用工具、如何整合信息等逻辑流程。
-
MCP(模型上下文协议):相当于AI的"手和眼",提供了访问外部数据和执行具体操作的能力。在我们的项目中,MCP封装了航班查询、酒店搜索、天气获取等具体工具接口。
这种架构设计的优势在于:
- 将决策逻辑(SKILL)与具体实现(MCP)解耦
- 可以独立扩展SKILL或MCP而不影响对方
- 便于复用和组合不同的SKILL和MCP
2.2 技术栈选型
项目采用了以下技术栈:
- Python 3.8+:作为主要开发语言
- OpenAI API:使用GPT-4模型作为核心决策引擎
- MCP框架:用于构建和管理工具接口
- Pydantic:用于数据验证和模型定义
- asyncio:实现异步工具调用
- httpx:用于HTTP请求
选择这些技术的主要考虑:
- Python生态丰富,适合快速开发AI应用
- OpenAI API提供了强大的语言理解能力
- MCP框架专门为工具调用场景设计
- 异步架构提高系统响应速度
3. 核心实现细节
3.1 项目目录结构
code复制travel_agent/
├── skills/ # 技能定义
│ └── travel_plan/ # 旅行规划技能
│ └── SKILL.md # 技能说明文档
├── mcp_servers/ # MCP服务实现
│ └── travel_tools/ # 旅行相关工具
│ ├── __init__.py
│ ├── server.py # 工具服务实现
│ └── run_server.py # 服务启动脚本
├── llm_client.py # LLM客户端封装
├── main.py # 主程序入口
└── requirements.txt # 依赖文件
3.2 SKILL定义实现
SKILL定义在skills/travel_plan/SKILL.md中,它规定了旅行规划Agent的行为模式:
markdown复制# 智能旅行规划技能
你是一位专业的旅行规划师,擅长根据用户需求制定个性化旅行计划。
## 核心能力
- 分析用户旅行需求(目的地、时间、预算、兴趣)
- 智能调用相关工具获取实时信息
- 整合多源数据生成最优旅行方案
## 规划流程
1. 分析用户需求 → 确定关键参数
2. 调用航班工具 → 搜索最佳航班
3. 调用酒店工具 → 筛选合适住宿
4. 调用天气工具 → 考虑天气因素
5. 调用景点工具 → 安排每日行程
6. 整合信息 → 生成完整旅行计划
## 输出要求
- 包含航班、酒店、天气、景点等完整信息
- 按天安排行程,考虑地理位置和时间合理性
- 提供预算估算和实用建议
- 对特殊需求(如亲子、老人)给予特别考虑
- 严格使用MCP工具中的数据,不准捏造或者参考历史数据
3.3 MCP工具服务实现
MCP工具服务在`mcp_servers/travel_tools/serv
