我的 AI 代理一夜之间花了我 400 美元,于是我为代理构建了 pytest 并开源了它
Source: Dev.to
背景
凌晨 2 点,我盯着 OpenAI 仪表盘,疑惑为什么我的账单在一天之内从 80 美元 跃升到 400 美元。在生产环境中运行自定义 AI 代理六个月后,我痛苦地领悟到:在本地机器上完美运行的代理,到了生产环境可能会背叛你。
介绍 EvalView
我需要一个极其简单的工具:写下代理应该做的事,运行它,如果它做了蠢事就让构建失败。思路非常直接——在 YAML 文件中描述期望行为,让测试框架来强制执行。
示例测试
name: order lookup
input:
query: "What's the status of order 12345?"
expected:
tools:
- get_order_status
thresholds:
max_cost: 0.10
- 如果代理在没有调用
get_order_status的情况下直接回答,测试失败。 - 如果费用超过 10 美分,测试失败。
CI 中的红色错误会中断构建,阻止部署。
入门指南
pip install evalview
快速开始
evalview quickstart
quickstart 会启动一个小型演示代理并对其运行一些测试,耗时约十五秒。
evalview run
将该命令加入 CI 流水线,即可自动强制守护线。
为什么重要
在使用 EvalView 之前,我每次部署平均会收到两三条愤怒的用户反馈。边缘案例的失败会占用我的夜晚去调试生产环境。EvalView 能与 LangGraph、CrewAI、OpenAI、Anthropic 以及基本上所有可通过 HTTP 访问的服务配合使用。
其他特性
- LLM 作为评审 – 在输出质量上进行检查,超越单纯的字符串匹配。
- 从生产日志生成测试 – 自动将真实的失败转化为回归测试(计划中)。
- 对比模式 – 并排测试不同的代理版本或配置,看看哪个表现更好(计划中)。
仓库
源码可在以下地址获取:
如果你曾因生产环境的代理而尴尬,或因云账单而感到身体疼痛,试试 EvalView。即使只省下一次深夜调试,也值得给它点个星。
征求反馈
我很好奇大家是如何进行代理评估的。你有完善的评估体系吗?在评论区分享你的想法——我仍在边做边学。