日历代理评估框架
测试评估工具 基于MCP的人工智能代理 使用合成用户场景、对话日志和Phoenix跟踪。
该框架用于对工具调用代理运行可重复的多回合对话,并检查它在现实和对抗条件下的行为。
______________________________________________________________________
范围
此存储库侧重于 代理人评估,而不是代理功能。
它提供:
- 具有终止处理的多圈执行循环
- 场景驱动的合成用户
- 结构化记录和跟踪检查
它不提供:
- 面向用户的应用程序
- 生产部署
- 仅提示实验
______________________________________________________________________
评估方法
对话由CSV定义的场景和基于LLM的合成用户驱动。\ 每次运行都会执行,直到完成、失败或达到最大转弯限制。
每次运行的输出包括:
- 带有时间戳的纯文本记录
- 终止时明确的停止原因
- Phoenix轨迹显示每转推理和工具跨度
这些人工制品用于检查和调试,而不是评分。
______________________________________________________________________
观察到的故障案例
在评估运行期间观察到以下行为:
- 不支持的功能声明\
代理建议了无法通过其工具获得的操作(例如提醒)。
- 范围外持久性\
当被问及无关的话题(天气、Wi-Fi)时,客服人员继续进行对话,而不是拒绝和停止。
- 不一致的对话\
模糊的场景导致反复来回,直到达到最大转弯限制。
- 最终转弯处理错误(已修复)\
早期版本在处理最终用户消息之前终止,丢弃最后一个代理响应。
- 未提示的工具升级\
只读请求偶尔会导致代理在没有明确用户意图的情况下提出创建/更新操作。
通过检查重复运行的记录和Phoenix痕迹,发现了这些问题。
______________________________________________________________________
高级结构
- 代理:谷歌日历MCP代理(OpenAI代理SDK)
- 控制器:带停止条件的多转弯回路
- 合成用户:场景感知LLM模拟器
- 追踪:Phoenix/OpenTelemetry
- 存储:SQLite会话内存和文件系统日志
代理实现有意地次于评估逻辑。
______________________________________________________________________
与Google日历MCP代理的关系
该框架使用 谷歌日历MCP代理 作为其测试对象。
代理存储库包含:
- MCP服务器集成和谷歌日历工具
- 完整的代理说明和工具定义
- 设置和使用文档
这个存储库假设有这种背景,只关注评估行为。
______________________________________________________________________
如何跑步
- 克隆此存储库
- 设置所需的环境变量:
- OpenAI API密钥 - Phoenix配置(如果启用了跟踪)
- 在中定义评估场景
scenarios.csv.
- 针对特定场景运行评估循环。\
例如,要运行名为 off_scope_wifi:
$env:SCENARIO_NAME="off_scope_wifi"; python mcp_calendar_agent.py- 检查输出:
- 对话登录 conversation_logs/ - Phoenix UI中的痕迹
未提供用户界面;通过日志和跟踪进行评估。
______________________________________________________________________
状态
用于代理行为迭代测试和调试的探索性评估框架。
