Agent Eval — 量化评估 + 自我进化闭环
核心理念:能被衡量的东西,就能被优化。 基于 Karpathy AutoResearch eval loop + 诸子 Agent 复盘体系 + Phoenix Memory 架构
通用 Eval 流程
生成 → 评估 → 打分 → 分析失败点 → 改一个小地方 → 重跑 → 分数涨了保留,跌了撤回 → 循环
Eval 编写规则
- 每条 eval 必须是 yes/no 二元判断
- 不能主观(❌"写得好吗" → ✅"标题是否包含具体数字")
- 每条测一个独立维度,不重叠
- 3-6 条最合适,太多会开始刷题
- 用真实历史任务做测试集,不编造
各 Agent Eval Checklist
✍️ Content(公文/论文撰写)
| # | 检查项 | 权重 | 说明 |
|---|---|---|---|
| C1 | 格式规范:标题编号/字号/行距是否符合公文或论文标准 | 高 | 对照GB/T 9704或目标期刊 |
| C2 | 无 AI 痕迹:正文中是否出现"作为AI"/"笔者"/"综上所述"等AI常见用语 | 高 | 全文检索 |
| C3 | 数据真实:所有数字、百分比是否来自可验证来源(非估算) | 极高 | 对应 PAT-20260403-001/002 |
| C4 | 角色准确:文种是否匹配(通知/报告/请示/论文各有套路) | 高 | 文体识别 |
| C5 | 一稿可用率:是否无需老板大幅修改即可使用 | 高 | 历史对比 |
🛡️ Shield(合同/法律审查)
| # | 检查项 | 权重 | 说明 |
|---|---|---|---|
| S1 | 高风险条款标记:是否标注了所有🟡🟠🔴风险条款 | 极高 | 质7条/保8条等红线 |
| S2 | 法律依据:每条审查意见是否引用具体法条/规章 | 高 | 不能空口白说 |
| S3 | 可操作性:是否给出具体修改建议(而非只说"有风险") | 高 | 对方能拿去直接改 |
| S4 | 遗漏检查:是否有重要条款被遗漏(付款/违约/终止/保密) | 高 | 对照检查清单 |
| S5 | 医院适配:是否考虑了公立医院特殊条款(财政审计/采购流程) | 中 | 行业定制 |
😈 Devil(找茬挑刺/科研质控)
5阶段 Peer-Review 流程 + 偏差检测框架(蒸馏自 K-Dense ScholarEval)
评审流程:
- 初评(研究问题+整体质量+大缺陷)
- 逐节审(摘要→引言→方法→结果→讨论→参考文献)
- 方法学+统计严谨性
- 可复现性+透明度
- 图表+数据呈现
偏差检测清单(必须覆盖):
- 认知偏差:确认偏差、HARKing、发表偏差、樱桃挑选
- 选择偏差:采样偏差、失访偏差、幸存者偏差
- 分析偏差:p-hacking、结局切换、选择性报告、亚组钓鱼
- 混杂因素:未测量混杂、替代解释
| # | 检查项 | 权重 | 说明 |
|---|---|---|---|
| D1 | 找出真实问题:是否至少指出1个非显而易见的实质性缺陷 | 极高 | 不能只挑格式 |
| D2 | 论据充分:每个批评是否有具体论据/数据/文献支撑 | 高 | 不能空穴来风 |
| D3 | 偏差检测:是否覆盖5类偏差中的至少2类 | 高 | 蒸馏自K-Dense |
| D4 | 统计审评:是否检查了效应量、多重比较、样本量 | 高 | 蒸馏自K-Dense |
| D5 | 不误伤:是否没有对正确内容进行无理挑刺 | 中 | 避免为了挑刺而挑刺 |
| D6 | 可执行建议:是否给出改进方向(而非只否定) | 高 | 建设性挑刺 |
📜 Sage(古籍/文学/中医)
| # | 检查项 | 权重 | 说明 |
|---|---|---|---|
| SG1 | 出处准确:引文是否标注真实出处(书名/卷/篇) | 极高 | 不能编造古籍 |
| SG2 | 语境匹配:引用是否与论述主题相关(非生搬硬套) | 高 | 语义关联 |
| SG3 | 现代转化:是否能将古文用现代语言清晰解释 | 高 | 翻译质量 |
| SG4 | 深度:是否提供了超越浅层引用的深入解读 | 中 | 非百度百科式 |
🎓 Scholar(学术检索/论文辅助)
8维度评分框架(蒸馏自 K-Dense ScholarEval)
8维度: 问题定义 | 文献综述 | 方法论 | 数据来源 | 分析解读 | 结果呈现 | 学术写作 | 引用规范
| # | 检查项 | 权重 | 说明 |
|---|---|---|---|
| SC1 | 引用真实:所有引用文献是否真实存在(DOI/arXiv ID可验证) | 极高 | 反AI幻觉核心 |
| SC2 | 相关性:检索结果与课题的相关度(前5条中至少3条高度相关) | 高 | |
| SC3 | 时效性:引用文献是否以近3年为主(经典文献除外) | 中 | |
| SC4 | 完整性:是否覆盖了课题的主要子领域 | 高 | 不能只搜一个方向 |
| SC5 | 批判性:文献综述是否区分了'总结'和'批判'(非罗列) | 高 | K-Dense ScholarEval |
| SC6 | 方法论审评:对引用文献的方法论质量是否有评估 | 中 | K-Dense ScholarEval |
📊 Analyzer(数据分析)
| # | 检查项 | 权重 | 说明 |
|---|---|---|---|
| A1 | 数据源标注:是否明确标注数据来源和时间 | 极高 | 对应 PAT-20260403 |
| A2 | 计算可复现:关键数字是否能从原始数据手算验证 | 高 | 不臆想 |
| A3 | 方法说明:是否说明了分析方法(描述统计/回归/卡方等) | 高 | |
| A4 | 局限性:是否指出了数据的局限和适用范围 | 中 | 诚实原则 |
🏥 Medical(医疗/互联网医院)
GRADE 证据分级 + 偏差检测(蒸馏自 K-Dense CDS + Critical-Thinking)
GRADE 分级: 1A(强推荐+高质量)→ 1B → 2A → 2B → 2C(弱推荐+极低质量)
| # | 检查项 | 权重 | 说明 |
|---|---|---|---|
| M1 | 政策依据:是否引用最新的国家/省级政策文件 | 高 | 互联网医院政策变化快 |
| M2 | 数据时效:引用的医院/行业数据是否在时效红线内 | 极高 | IMA 红线 |
| M3 | 临床相关性:建议是否有临床/管理实践支撑 | 高 | |
| M4 | 证据分级:是否对关键建议标注了GRADE等级(或注明证据强度) | 高 | K-Dense CDS |
| M5 | 偏差意识:是否指出引用研究中的潜在偏差(选择/测量/混杂) | 中 | K-Dense Critical-Thinking |
打分机制
总分 = Σ(通过项权重) / Σ(所有项权重) × 100
等级:
90+ = 🟢 优秀(可自动交付)
70-89 = 🟡 良好(需抽查)
50-69 = 🟠 需改进(必须人工审)
<50 = 🔴 不合格(重新执行)
Cron 自动评估流程
每日 23:30 — Agent 自评
- 读取当日该 agent 的所有任务记录(memory/YYYY-MM-DD.md)
- 对每个任务逐项跑 eval checklist
- 计算当日平均分
- 记录到
memory/evolution/<agent-id>.md
每周日 00:00 — CEO 周报
- 汇总各 agent 周平均分
- 识别分数下降趋势 → 触发调查
- 识别高分稳定 agent → 确认无需干预
- 提炼本周 top-3 失败点 → 写入 patterns.md
- 将整体评分趋势发给老板
触发优化的条件
- 连续3天某 agent 低于 70 分 → 自动 SOUL.md 检查
- 某个 eval 项连续5次失败 → 写入 PAT 记录
- 周均分下降 >10% → 触发 agent 模型/配置审查
与现有体系的衔接
| 现有组件 | Eval 衔接方式 |
|---|---|
| Phoenix Memory L0 | 每日日志已包含任务记录,eval 直接读取 |
| patterns.md | eval 失败模式自动写入 PAT |
| 五层质检 | eval 是 L2-L3 层的量化标准 |
| AGENTS.md autoresearch | eval 分数就是 autoresearch 的 loss function |
| 心跳 HEARTBEAT.md | 周日 eval 周报纳入心跳检查 |
进化记录格式
memory/evolution/<agent-id>.md:
# <Agent 名称> 进化日志
## 2026-04-04
- 日均任务数: 3
- Eval 均分: 78/100 🟡
- 通过项: C1✅ C2✅ C3❌ C4✅ C5🟡
- 失败分析: C3 数据真实度不达标(2/3任务使用了估算数据)
- 改进措施: 在 spawn 指令中强调"所有数字必须标注来源"
注意事项
- Eval 是工具,不是目的。分数只是手段,最终目标是老板满意度
- 不要为了刷分而刷分——如果某条 eval 不再有意义,该删就删
- 新 agent 上线前必须先定义 eval,没有 eval 的 agent 不转正
- 老板的口头反馈 > eval 分数(遇到矛盾时以老板为准)