AI代理评估框架

用于测试基于MCP的AI代理的评估框架,通过合成用户场景、对话日志和Phoenix跟踪进行多轮对话测试。

  • by david-revell
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 david-revell/calendar-agent-controller

使用说明

日历代理评估框架

测试评估工具 基于MCP的人工智能代理 使用合成用户场景、对话日志和Phoenix跟踪。

该框架用于对工具调用代理运行可重复的多回合对话,并检查它在现实和对抗条件下的行为。


范围

此存储库侧重于 代理人评估,而不是代理功能。

它提供:

  • 具有终止处理的多圈执行循环
  • 场景驱动的合成用户
  • 结构化记录和跟踪检查

它不提供:

  • 面向用户的应用程序
  • 生产部署
  • 仅提示实验

评估方法

对话由CSV定义的场景和基于LLM的合成用户驱动。
每次运行都会执行,直到完成、失败或达到最大转弯限制。

每次运行的输出包括:

  • 带有时间戳的纯文本记录
  • 终止时明确的停止原因
  • Phoenix轨迹显示每转推理和工具跨度

这些人工制品用于检查和调试,而不是评分。


观察到的故障案例

在评估运行期间观察到以下行为:

  • 不支持的功能声明
    代理建议了无法通过其工具获得的操作(例如提醒)。

  • 范围外持久性
    当被问及无关的话题(天气、Wi-Fi)时,客服人员继续进行对话,而不是拒绝和停止。

  • 不一致的对话
    模糊的场景导致反复来回,直到达到最大转弯限制。

  • 最终转弯处理错误(已修复)
    早期版本在处理最终用户消息之前终止,丢弃最后一个代理响应。

  • 未提示的工具升级
    只读请求偶尔会导致代理在没有明确用户意图的情况下提出创建/更新操作。

通过检查重复运行的记录和Phoenix痕迹,发现了这些问题。


高级结构

  • 代理:谷歌日历MCP代理(OpenAI代理SDK)
  • 控制器:带停止条件的多转弯回路
  • 合成用户:场景感知LLM模拟器
  • 追踪:Phoenix/OpenTelemetry
  • 存储:SQLite会话内存和文件系统日志

代理实现有意地次于评估逻辑。


与Google日历MCP代理的关系

该框架使用 谷歌日历MCP代理 作为其测试对象。

代理存储库包含:

  • MCP服务器集成和谷歌日历工具
  • 完整的代理说明和工具定义
  • 设置和使用文档

这个存储库假设有这种背景,只关注评估行为。

📁 GitHub仓库


如何跑步

  1. 克隆此存储库

  2. 设置所需的环境变量:

    • OpenAI API密钥
    • Phoenix配置(如果启用了跟踪)
  3. 在中定义评估场景 scenarios.csv.

  4. 针对特定场景运行评估循环。
    例如,要运行名为 off_scope_wifi:

    $env:SCENARIO_NAME="off_scope_wifi"; python mcp_calendar_agent.py
    
  5. 检查输出:

    • 对话登录 conversation_logs/
    • Phoenix UI中的痕迹

未提供用户界面;通过日志和跟踪进行评估。


状态

用于代理行为迭代测试和调试的探索性评估框架。