适用于由MCP驱动的AI代理的启动工具包:包括示例客户端、评估工具以及与Claude Code及更多内容的简单集成指南。
此工具包提供了一个全面的评估框架,用于测试由模型上下文协议(MCP)工具驱动的AI代理。它包括:
copilot_evaluator.py用于运行Claude Code对抗测试问题copilot_web_visualizer.py用于评估结果的交互式分析评估数据集在datasets/目录下按照特定结构组织。根据需要更新,添加带有提示和预期结果的问题项。
datasets/
└── copilot/
├── groundtruth.json # 主数据集配置
├── Question1/
│ └── Prompt.txt # Question1的测试提示
└── Question2/
└── Prompt.txt # Question2的测试提示
groundtruth.json)主数据集文件定义了测试问题及其结构:
{
"questions": [
{
"question_id": "Question1",
"prompt": "Question1/Prompt.txt",
"input": [],
"output": [
],
"snapshots": [
]
}
]
}
字段:
question_id:问题的唯一标识符prompt:提示文件的路径(相对于数据集目录)input:输入文件列表(当前未使用)output:预期输出文件列表,用于比较(当前未使用)snapshots:参考截图列表(当前未使用)每个问题目录包含:
Prompt.txt:将发送给AI代理的测试提示Output/:包含预期输出文件(如XML、JSON等)的目录Snapshot/:包含用于视觉比较的参考截图的目录copilot_evaluator.py)评估器运行Claude Code对抗来自真实数据集的问题,并执行自动化评估。
python copilot_evaluator.py --dataset datasets/copilot/groundtruth.json [选项]
| 参数 | 描述 | 默认值 |
|---|---|---|
--dataset | 真实数据集JSON文件的路径 | 必需 |
--question-ids | 要运行的具体问题ID(使用'all'表示所有问题) | [] |
--output | 结果的基本输出目录 | output |
--mcp-config | MCP配置文件的路径 | conf/.mcp.json |
--claude-md | CLAUDE.md文件的路径 | conf/CLAUDE.md |
--log-level | 日志级别(DEBUG, INFO, WARNING, ERROR) | INFO |
--timeout | 每次执行的超时时间(例如,'600s', '5m', '1h') | 10m |
--debug | 启用调试模式 | True |
--max-turns | 每次执行的最大对话轮数 | 50 |
--checkpoint | 恢复用的checkpoint.json路径 | None |
--skip-eval | 跳过运行评估 | False |
--force-eval | 强制重新计算所有评估 | False |
# 运行所有问题
python copilot_evaluator.py --dataset datasets/copilot/groundtruth.json
# 运行特定问题
python copilot_evaluator.py --dataset datasets/copilot/groundtruth.json --question-ids Question1 Question2
# 使用自定义超时时间和最大轮数运行
python copilot_evaluator.py --dataset datasets/copilot/groundtruth.json --timeout 15m --max-turns 100
# 从检查点恢复
python copilot_evaluator.py --checkpoint output/copilot_evaluator_20250113_120000/checkpoint.json
评估器创建带有时间戳的输出目录:
output/
└── copilot_evaluator_20250113_120000/
├── checkpoint.json # 进度跟踪
├── results_20250113_120500.json # 总结结果
├── logs/
│ └── claude_code_runner_20250113_120000.log
├── Question1/
│ ├── .claude/
│ │ └── settings.local.json # Claude配置
│ ├── .mcp.json # MCP配置
│ ├── CLAUDE.md # 生成的文档
│ ├── claude_code_result.json # 执行结果
│ └── [生成的文件] # AI代理输出
├── Question1_eval/
│ ├── claude_code_result.json # 评估执行
│ ├── eval_result.json # 评估分数
│ └── eval_validation_tools.json # 验证工具使用情况
└── Question2/
└── [类似结构]
评估器衡量四个关键维度上的性能:
每个指标评分范围为0-1,并提供详细的Markdown格式推理。
copilot_web_visualizer.py)交互式的基于Web的仪表板,用于通过图表、详细分解和导出功能分析评估结果。
python copilot_web_visualizer.py results.json [选项]
| 参数 | 描述 | 默认值 |
|---|---|---|
results_file | 结果JSON文件的路径 | 必需 |
--port | 运行服务器的端口 | 3002 |
--no-browser | 不自动打开浏览器 | False |
--no-debug | 禁用调试模式和自动重载 | False |
# 查看结果并自动打开浏览器
python copilot_web_visualizer.py output/copilot_evaluator_20250113_120000/results_20250113_120500.json
# 在自定义端口上运行且不打开浏览器
python copilot_web_visualizer.py results.json --port 8080 --no-browser
Web可视化器提供了四个主要视图:
点击任意问题ID以查看详细分析:
.env文件中的ANTHROPIC_API_KEYpip install -r requirements.txt
flask>=2.3.0 - 视觉化的Web服务器plotly>=5.15.0 - 交互式图表python-dotenv>=1.0.0 - 环境变量管理aiohttp>=3.9.0 - 异步HTTP操作markdown>=3.4.0 - Markdown渲染datasets/copilot/中创建或修改问题copilot_evaluator.pycopilot_web_visualizer.py查看和分析结果确保您的MCP配置文件(通常是conf/.mcp.json)已正确设置:
创建一个.env文件:
ANTHROPIC_API_KEY=your_api_key_here