Skip to main content
让您的编程 Agent 既负责决策又负责构建,从*「我觉得我们的 Agent 有时表现很差」直接走向部署完毕的评分服务。Failproof AI 可观测性评估器技能agenteye-evaluator)是一种 Agent Skill:一个小型指令文件夹,供 Claude Code 或 Codex 等编程 Agent 按需加载。它能引导 Agent 确定哪些质量维度值得为您的* Agent 跟踪,然后编写、测试并部署对这些维度进行评分的评估器服务 不是一个托管评分器、一个您上传到的注册表,也不是插件系统。您的评估器始终是运行在您自己基础设施上的 HTTP 服务,与评估套件指南中所描述的完全一致。该技能只是教您的 Agent 如何把它构建好——它所做的一切,您完全可以自己动手写同样的代码来实现。

难点在于决定评分什么

SDK 接口很简洁——一个装饰器和两个模型——Agent 仅凭契约就能把代码写出来。评估器真正的失败之处不在这里。它们失败是因为评错了东西,而评错对象的评估器比没有还糟:它产出的仪表盘会让所有人习惯性地无视。 因此,该技能的大部分工作发生在任何代码存在之前。它让 Agent 对您进行访谈(「描述一次进展顺利的运行;再描述一次进展糟糕的」),然后通过 agenteye CLI 提取您的真实会话并从头到尾阅读。这两部分通常会出现分歧,而这个差距正是关键所在:您打算衡量什么,与您的对话记录实际上能支撑什么,往往并不一致。一个维度只有在可从事件中计算具有区分度时才能保留——如果它在您的好运行和差运行上都打出 0.9 分,那什么也说明不了,直接剔除。 最终返回的是一份包含 2-4 个维度的提案,附带推理说明,供您在写下任何一行代码之前确认。

与其他评估组件的关系

共有四份文档涵盖评分相关内容,它们按顺序相互衔接:

与 CLI 技能的区别:构建 vs. 读取

这两个技能在职责上刻意不重叠,同时安装两者是常规配置——Agent 会根据您的提问在二者之间切换:
  • agenteye-evaluator(本文档)构建产生评分的东西。它的任务在评分首次出现时结束。
  • agenteye-cli 读取已存在的评分(agenteye evals)。「本周质量下降了吗?」是它回答的问题,不是本技能的职责。

前提条件

  1. 已安装并登录 agenteye CLIpipx install agenteye,然后 agenteye login)。该技能会用到它两次:拉取真实会话用于设计,以及在最后确认评分是否落地。您的登录账户需要 events:read 权限,以及用于最终检查的 evaluations:read 权限。与 CLI 技能一样,它无法替您完成邮件一次性验证码登录。
  2. 一个放置评估器的地方。 评估器会被构建成镜像并作为长期运行的服务运行,因此它需要一个真实的代码仓库,而不是临时文件。评估器通常独立存在于自己的仓库中,与被评分的 Agent 分开——该技能会寻找现有仓库,并在搭建新仓库之前征询您的意见。
  3. agenteye-evaluator SDK wheel——在让您的 Agent 开始输入 pip 命令之前,请先阅读下一节。

获取方式

该技能发布于 Failproof AI 的公共技能集合中: github.com/FailproofAI/skillsskills/agenteye-evaluator/ 该仓库是公开的,技能本身不需要任何凭据——它只是用登录时的会话驱动 agenteye CLI,并在您的仓库中写代码。请注意,它以独立文件夹的形式发布,不在 pipx install agenteye 包内,请勿在那里寻找它。

安装技能

最快的方式是使用 skills CLI,它会拉取文件夹并放到您的 Agent 查找的位置:
然后像管理其他技能一样管理它:
喜欢手动安装?Agent Skill 只是一个包含 SKILL.md(以及可选引用文件)的文件夹,直接复制也可以:
  • Claude Code:将 agenteye-evaluator/ 文件夹放入 ~/.claude/skills/(所有项目)或 <your-repo>/.claude/skills/(仅该仓库)。Claude Code 会自动发现它——通过 /skills 列表验证,或者直接询问评估相关问题即可。
  • Codex(OpenAI):Codex 读取同一个 SKILL.md。捆绑的 agents/openai.yaml 设置了 allow_implicit_invocation: true,因此当任务匹配时 Codex 会自动选择该技能;否则可以通过 $agenteye-evaluator 显式调用它。

SDK 不在公共 PyPI 上

警告: 在让 Agent 安装 SDK 之前,请先阅读本节。
该技能是公开的;它所驱动的 SDK 则不是。agenteye-evaluator 仅作为私有发布产物发布,且与 agenteye 不同,该名称在公共 PyPI 上尚未被注册——因此直接执行 pip install agenteye-evaluator 可能会将陌生人的包安装到读取您生产对话记录的服务中。这是一个供应链问题,而不是笔误。 该技能了解这一点,因此会按照安装梯队依次尝试,在第一个适用的环节停下:如果您在 AgentEye 仓库内,则使用 monorepo 源码;否则使用 GitHub Releases 上的私有发布 wheel(需要访问权限);如果两者都无法访问,它会停止并告诉您联系 Failproof AI 联系人获取 wheel,而不是自行发挥。 因此,如果您的 Agent 提议从公共 PyPI 直接执行 pip install agenteye-evaluator,这就说明该技能根本没有加载。请立即停止并检查技能是否已安装。

可以问它什么

一次真实的完整流程从模糊的需求开始,以一个经过确认的设计方案结束,而不是直接以代码开始:
之后,它会先编写基于规则的维度(免费、即时、确定性),针对真实捕获的会话(包括那些会让朴素评估器崩溃的空会话和未完成会话)进行测试,只在主观维度上才会使用 LLM 评判器。它了解调度器的限制——30 秒请求超时和全局 8 个并发调用——因此如果评判器不能可靠地在时限内完成,它会使用 JobPending 异步处理,而不是让您的评判器被取消并以五倍成本重试五次。 然后它进行部署,设置两个服务器环境变量,并通过 agenteye --json evals --session-id <id> 确认评分确实落地。评分落地是唯一的证明。

需要注意的事项

  • 维度名称几乎是永久性的。 评分键是任意字符串,平台会对您发送的任何内容进行趋势分析,这意味着下游没有任何东西能纠正一个错误的选择。之后重命名会导致历史记录断裂:旧会话保留旧键,趋势就此中断。这就是为什么该技能在写代码之前要明确征得您的同意——请认真对待那个提示。
  • 测试夹具是真实的生产对话记录。 针对真实会话进行设计意味着要将它们拉取到磁盘上,而它们可能包含客户数据。该技能会在将其提交到 git 之前征询您的意见;如有疑虑,请将 fixtures/ 排除在仓库之外,让每位开发者自行拉取。
  • Agent 会编写并部署一个读取所有对话记录的服务。 它以您的身份行事,受您的 CLI 登录权限约束,但请像审查其他接触生产数据的代码一样审查评估器。

后续步骤