SuperAPI AI 工具集

agent-self-evaluation

智能体与模型

查看项目

更新于 10-15 08:33

技能介绍

用途

Agent Self-Evaluation 是一个智能体在完成复杂任务后启用的自我评估技能。它的目的不是通过/失败的门禁,而是一个刻意的反思步骤,帮助智能体在用户发现问题之前,捕捉遗漏、标记过度自信,并暴露需要改进的地方。

何时启用

根据资料,以下情况会触发该技能:

  • 编写跨越 3 个以上文件或 50 行以上的代码后
  • 完成多步骤工作流(实现 → 测试 → 审查)后
  • 经历 3 次以上尝试的调试会话后
  • 产出设计文档、架构决策或书面分析后
  • 用户询问“刚才做得怎么样?”或“给自己打个分”时
  • 在任何会话的 Stop 钩子结束时(如果已配置,参见 references/hook-integration.md)

核心概念:五个评估轴

该技能围绕五个维度对输出进行独立评分:

评估轴 提出的问题 能捕捉的问题
准确性 事实、主张和输出是否正确? 幻觉、错误的 API 名称、错误的语法、虚假陈述
完整性 是否覆盖了用户要求的一切? 遗漏的边界情况、未处理的错误路径、被遗忘的需求、跳过的子任务
清晰度 解释是否易懂且结构良好? 令人困惑的解释、未定义的行话、缺失的上下文、冗长散乱
可操作性 用户能否立即对输出采取行动? 模糊的建议、缺失的步骤、只说“你应该 X”却不展示怎么做、没有验证路径
简洁性 是否只用了所需的最少词语/token? 冗余、过度解释、逐字重复用户的问题、填充内容

评分标准

  • 5 — 卓越:没有合理可改进的空间
  • 4 — 良好:只有小瑕疵,没有实质性缺口
  • 3 — 合格:满足请求,但至少在某个评估轴上有明显弱点
  • 2 — 薄弱:存在影响可用性或正确性的明显缺口
  • 1 — 差:从根本上未满足请求,或包含重大错误

证据规则

每个低于 5 的评分都必须引用具体证据。3 分不能只说“还可以更好”——它必须准确说明缺失或错误之处。原则是:“展示缺口,而不仅仅是命名它。”

工作流

第一步:收集原始素材

收集将要评估的内容:

  • 原始用户请求(从对话中回顾)
  • 最终响应/输出(交付物)
  • 任何验证正确性的工具输出(测试结果、退出码、lint 输出)
  • 任务期间收到的任何用户反馈(更正、“再试一次”、“这不对”)

第二步:独立为每个评估轴打分

逐一处理五个评估轴。对每一个:

  1. 阅读该评估轴的问题
  2. 在输出中寻找证据(或缺乏证据)
  3. 分配 1-5 分的评分
  4. 如果评分低于 5,写一句引用缺口的改进说明

不要先在脑中算出平均分然后再反向推导。要新鲜地为每个评估轴打分。

第三步:产出评估报告

使用 templates/evaluation-report.md 中的模板。报告必须包含:

  • 一句话摘要
  • 五轴评分卡(每个评估轴的评分 + 证据)
  • 总体评分(简单平均值,四舍五入到一位小数)
  • 1-3 项按影响排序的具体改进
  • 自检:“用户会同意这个评估吗?”

第四步:应用改进

如果有任何评估轴得分在 3 或以下:

  • 说明你会如何不同地去做
  • 如果缺口能在 30 秒内修复(缺失链接、措辞不清),现在就修复
  • 如果缺口需要返工,明确标记:“该评估轴得分为 [原因],因为 [证据]。以 [具体修复] 重新运行可能会将其提升到 [分数]。”

代码示例

示例:良好评估(4 分以上)

任务:为 HTTP 客户端添加重试逻辑

评分卡:

准确性:     5 — 所有 API 调用正确。已验证:重试使用
                指数退避。没有幻觉的方法。
完整性:     4 — 覆盖了正常路径 + 3 个错误情况。缺失:
                对挂起连接的超时处理。
清晰度:     5 — 代码注释解释了退避公式。
                PR 描述链接到促使此工作的故障事件。
可操作性:   5 — 单次合并。无后续任务。测试通过。
简洁性:     4 — 共 47 行。重试循环可以提取
                到一个辅助函数中,减少约 8 行。

总体:4.6 — 一个缺口(超时处理)。合并前修复。

示例:薄弱评估(2-3 分)

任务:为 HTTP 客户端添加重试逻辑

评分卡:

准确性:     2 — 使用了 urllib3,与我们基于 httpx 的
                代码库不匹配。错误的库。
完整性:     3 — 对 GET 有效。未处理 POST/PUT(用户
                说的是“所有 HTTP 请求”)。
清晰度:     4 — 代码可读。变量名良好。
可操作性:   2 — 提到了“添加测试”但没有创建测试文件。
                用户必须在合并前编写测试。
简洁性:     3 — 120 行。重试配置在 3 个地方
                重复,而不是一个共享的 RetryConfig 对象。

总体:2.8 — 使用了错误的库。需要 httpx 重写。
先修复准确性(切换到 httpx),然后扩展到所有
HTTP 方法,然后合并配置。

反模式

“一切都是 5 分”

失败示例:没有引用任何证据。这是自我恭维,不是评估。真正的 5 分需要证明没有可改进之处。

因范围蔓延而过度扣分

失败示例:只应根据用户实际请求的内容来评估,而不是你本可以额外构建的内容。

利用评估重新争论

失败示例:评估是关于已交付的输出,而不是重新争论已经做出的设计决策。如果方法有误,那应该在交付前就被发现。

将个人偏好与客观缺口混为一谈

失败示例:“不喜欢”不是证据。引用具体的可读性、可测试性或正确性问题,否则将评分保持在 4 分以上。

最佳实践

  • 评估输出,而不是过程。用户关心的是你交付了什么,而不是你迭代了多少次。
  • 每个薄弱评估轴一个改进项。不要为一个评估轴列出 5 件事——挑选影响最大的缺口。
  • 将改进与用户影响挂钩。“缺失错误处理意味着用户的 API 调用会静默崩溃”比“添加错误处理”更好。
  • 具体说明“修复”是什么样子。“以配置了重试的 httpx 传输重新运行”比“修复库问题”更好。
  • 使用工具输出作为证据。如果测试通过,引用它们。如果 lint 干净,引用它。不要猜测——用 grep 寻找证据。
  • 如果找不到任何缺口,再努力找找。在所有 5 个评估轴上拿到满分是罕见的。问:“如果我是用户,这个输出中什么会让我烦恼?”

相关技能

  • agent-eval — 在基准任务上对不同编码智能体进行头对头比较
  • verification-loop — 根据预期结果对输出进行系统化验证
  • security-review — 以安全为重点的代码审查清单

限制

资料未提供该技能对具体平台、模型或编程语言的依赖说明,也未说明其收费、价格或商业条款。使用方式(安装命令、配置文件路径等)在所提供的资料中暂未提供。