AI代理测试框架
一个生产就绪的测试框架,用于使用 模型上下文协议(MCP) 用于酒店预订管理。该项目展示了现代人工智能工程实践、异步Python模式和全面的测试自动化。
展示的功能和技能
核心能力
- MCP集成:使用FastMCP定制MCP服务器实现AI工具编排
- AI代理编排:具有异步stdio通信的Claude AI代理
- 数据验证:具有业务逻辑强制的Pydantic模型
- 测试自动化:具有多种测试场景的综合验证框架
- 容器化:Docker支持可重复部署
- 现代Python:异步/等待模式、类型提示和干净的架构
技术栈
- 语言:Python 3.10+
- AI/ML:人类Claude API,模型上下文协议(MCP)
- 验证:Pydantic 2.0+
- 包管理:uv(超快Python包管理器)
- 容器化:Docker
- 测试:具有pytest就绪结构的自定义验证框架
建筑
组件
- agent.py:Claude AI代理与MCP客户端集成(431行)
- src/reservation_server.py:提供预订管理工具的FastMCP服务器(279行)
- src/models/reservation.py:带验证的Pydantic数据模型
- src/storage/json_storage.py:基于JSON的持久层
- 问题/:具有自动验证功能的结构化测试场景
可用的MCP工具
create_reservation-通过验证创建新的酒店预订get_reservation-按ID检索预订update_reservation-修改现有预订delete_reservation-取消预订list_reservations-查询所有预订- 服务管理工具(创建、更新、删除服务)
业务逻辑
- 日期验证(退房必须在办理入住手续后)
- 业务规则执行(例如,1月份的预订限制)
- 服务附件和定价
- 多步骤工作流编排
快速开始
先决条件
- Docker(推荐)或Python 3.10+
uv - 无烟煤API键
设置
- 克隆并导航到项目
cd agent-workforce-test- 配置API密钥
cp .env.example .env
# Edit .env and add your ANTHROPIC_API_KEY从以下位置获取API密钥:https://console.anthropic.com/
- 运行测试
使用Docker(推荐):
./docker-run.sh problems/001直接使用紫外线(更快):
./run_test.sh problems/001测试场景
问题001:基线(通过示例)
目标:验证基本预订创建
- 为指定日期的客人创建预订
- 验证数据持久性和检索
- 状态: ✅ 通过
问题002:业务规则执行
目标:测试一月限制合规性
- 尝试创建一月预订
- 代理必须根据系统提示规则拒绝
- 状态: ✅ 通过
问题003:服务管理
目标:在现有预订中添加服务
- 为预订附加多种服务
- 验证服务持久性
- 状态: ✅ 通过
问题004:噩梦模式(复杂多步)
目标:使用条件逻辑的复杂合并
- 多客人预订整合
- 房间升级和日期延长
- 选择性服务转移
- 有条件的业务规则(例如,水疗套餐资格)
- 10点验证检查表
- 状态: ⚠️ 具有挑战性(可能失败,但展示了高级推理)
项目结构
agent-workforce-test/
├── agent.py # Main Claude AI agent
├── src/
│ ├── reservation_server.py # MCP server implementation
│ ├── models/
│ │ └── reservation.py # Data models
│ └── storage/
│ └── json_storage.py # Persistence layer
├── problems/ # Test scenarios
│ ├── 001/ # Baseline test
│ ├── 002/ # Rule enforcement
│ ├── 003/ # Service management
│ └── 004/ # Complex multi-step
├── prompts/
│ └── system_prompt.txt # Agent behavioral instructions
├── Dockerfile # Containerization
├── docker-run.sh # Docker test runner
├── run_test.sh # Direct test runner (uv)
└── print_results.py # Test result formatter运作原理
- 代理初始化:Claude AI代理通过stdio连接到MCP服务器
- 工具发现:代理从MCP服务器接收可用工具
- 任务执行:代理使用可用工具处理用户提示
- 验证:自动脚本验证代理行为是否正确
- 结果:丰富的终端输出显示通过/失败状态
系统提示:代理行为指示和业务规则在中定义 提示/system_prompt.txt
发展
运行所有测试
# Test all scenarios
for problem in problems/*/; do
./docker-run.sh "$problem"
done查看结果
python print_results.py添加新测试
- 在中创建新目录
problems/ - 添加
description.md,user_prompt.txt,check_result.py - 提供初始数据
data/子目录 - 运行测试以验证
突出技能
该项目展示了以下方面的专业知识:
- AI/ML工程:代理编排、即时工程、MCP协议
- 异步编程:适当的异步/等待模式、上下文管理器
- API集成:Anthropic Claude API,MCP客户端/服务器
- 数据工程:Pydantic验证,JSON持久化
- 测试:自动验证、测试场景设计
- 开发运维:Docker容器化,可复制环境
- 软件架构:关注点清晰分离,模块化设计
- Python最佳实践:类型提示、错误处理、现代工具
许可证
此项目根据MIT许可证获得许可-请参阅 许可证.
作者
巴特巴洛迪亚
该项目是一个展示AI/ML工程能力的演示/投资组合。
致谢
- 内置 Anthropic Claude API
- 用途 模型上下文协议(MCP) 用于工具集成
- 由...驱动 FastMCP 框架
