质量检查
Quality Assurance
生成内容的多维自动评估、Generator-Critic 迭代循环。确保 Agent 输出质量。
子问题
1.事实核查:生成内容是否与源材料一致
2.格式检查:输出是否符合预期格式
3.一致性检查:多次生成的结果是否一致
4.评分机制:自动化质量评分
5.迭代改进:Generator-Critic 循环直到质量达标
6.分布式评估负载均衡:Ray Actor 自动负载均衡,max_concurrency 限制单 Actor 并发数
7.评估结果聚合:多次重复评估的结果如何聚合(均值、中位数、最大值)
8.基准数据版本管理:ACEBenchmark 数据集更新时如何自动检测和下载
9.评估成本预估:评估前根据任务数、重复次数、Metric 复杂度预估 API 成本
10.Actor 预热开销:Ray Actor 首次启动有延迟,如何复用 Actor 减少开销
11.跨机器评估:Ray 支持跨机器分布式,但需要共享存储(如 NFS)同步评估结果
12.Metric 依赖管理:某些 Metric 依赖其他 Metric 的结果(如先评估准确率再评估置信度)
13.评估超时控制:单个任务执行时间过长时如何超时终止并标记失败
14.职业分类 rubric 自动生成:用 LLM 为大量任务类别批量生成评估标准
15.评估模型隔离:评估用 LLM 与工作用 LLM 的 API key/模型/配额分离
16.多模态产物 token 优化:PDF 4 页合并 2×2 网格减少 vision API token 消耗
17.评分-支付硬阈值:低于阈值零支付而非线性衰减,防止低质量产物消耗经济资源
18.Critical Override 规则:缺少必需文件时强制 0-2 分,不可被其他维度高分弥补
19.YAML/结构化输出截断检测:LLM 输出被 token 限制截断后的自动识别
20.实现完成度追踪:代码生成阶段逐文件追踪实现进度直到全部完成
21.多基准 Judge Prompt 适配:不同基准的正确性标准差异大,需要专用 prompt
22.多轮推理聚合策略:Pass@K 指标族设计与轨迹压缩交叉验证
23.Judge 输出格式归一化:不同模型返回 Correct/A/yes 等多种格式需统一处理
24.评估统计维度设计:工具调用模式、token 消耗、终止原因等诊断信号采集
25.引用完整性:生成文本中的引用 ID 是否真实存在于引用库中
26.输入安全验证:上传文件的类型、大小、MIME 是否合规
27.消息历史悬空修补:AIMessage 的 tool_calls 缺少对应 ToolMessage 时的自动修复
28.并发硬截断:LLM 生成超限并行工具调用时的非 prompt 级强制限制
29.条件激活开销控制:质量检查中间件按运行时配置选择性启用避免不必要开销
30.工具完成验证:多工具调用场景下验证所有调用均已完成后再进入下一阶段
31.社区互动信号融合:将 upvotes/comments/retweets 等多平台互动指标注入 LLM 评分上下文
32.概念提取前置搜索:富化前先识别读者可能不懂的技术概念再针对性搜索
33.双语结构化输出:同一内容同时生成中英文多字段分析,字段级双语而非全文翻译
34.引用白名单验证:用搜索结果 URL 集合过滤 LLM 输出的 sources 防止幻觉引用
35.ID 去幻觉:LLM 生成的记忆 ID 大小写错误或字符偏移的自动修正
36.变更比例分段阈值:短文本与长文本需要不同的修改容忍度
37.批量 UPDATE 触发条件:少量更新直接放行 vs 批量更新需要额外验证的阈值设计
38.UPDATE 与 ADD 互斥:同一反馈中存在 UPDATE 时应丢弃 ADD 防止重复
39.LLM 驱动的错误归因:测试失败后自动判定 bug 在业务代码还是测试代码中
40.审查模式切换:同一审查流程支持全自动、人工审查+自动修正、全人工三种模式
41.全局代码摘要审查:在逐文件审查前先做跨文件的全局 bug 扫描和调用链分析
42.Pairwise 对比评估:绝对分数跨模型不可比时用相对排名消除评分标准差异
43.评估器 prompt 缓存:Anthropic 模型评估时用 cache_control ephemeral 减少重复 prompt 开销
44.Supervisor 并行度验证:验证编排 Agent 是否正确并行化了子任务数量
45.记忆语义去重:新记忆与已有记忆的语义重复/矛盾/互补判断
46.去重决策归一化:LLM 输出的决策-操作组合可能不一致,需要规则修正
47.IO 录制回放:存储层操作的录制与跨后端回放对比验证
48.向量预过滤阈值:相似度阈值过高漏检、过低增加 LLM 调用成本的平衡
49.视觉状态验证:Agent 操作后的页面视觉状态是否符合预期,无法用 DOM 断言覆盖
50.多截图轨迹评估:多步骤任务需要分析截图序列的完整执行轨迹而非仅看最终状态
51.评估模型选择偏差:不同评估 LLM 对同一截图可能给出不同判定,需要校准
52.批量评估效率:多个检查点共享同一截图时,合并为单次 LLM 调用减少开销
53.学术基准对齐:Agent 能力需要与 GAIA/WebVoyager 等标准基准对齐以量化进步
54.辩论收敛性:多轮辩论可能陷入重复论点而非深化分析,需要检测论点新颖度
55.裁判偏见:裁判 LLM 可能系统性偏向某一方(如总是偏保守),需要校准机制
56.辩论历史膨胀:多轮辩论的 history 字符串线性增长,高轮次时可能超出上下文窗口
57.检索质量独立评估:答案正确但检索文档错误时需要区分'猜对'和'真懂'
58.RL 奖励信号稳定性:单一指标的奖励信号噪声大,多维加权提供更平滑的梯度
59.条件触发评估成本控制:低质量样本跳过昂贵的 LLM 评估减少 API 开销
60.训练/验证评估模式分离:训练用加权奖励鼓励检索改进,验证用纯正确率衡量真实能力
61.多后端检查适配:同一检查在 SQLite 和 Dolt 后端的不同实现策略
62.检查顺序依赖:Lock Health 必须在 DB 打开前执行,否则产生假阳性
63.修复安全防护:validateWorkspace + safeWorkspacePath 防止路径遍历攻击
64.修复后验证闭环:--fix 执行后自动重新运行诊断,确认修复生效
65.AI 写作痕迹检测:识别 LLM 生成文本中的固定句式、AI 词汇、公式化结构等模式
66.风格保护冲突:去痕处理可能误杀刻意的写作风格特征,需要风格感知的检测策略
67.处理强度校准:不同 AI 味浓度的文本需要不同力度的处理,过度修改反而不自然
68.JSON截断自动修复:AI输出被token限制截断后的部分恢复与结构补全
69.ID类型漂移:AI返回数值型ID与系统字符串型ID的自动归一化
70.多字段输出拆分:单次AI调用无法输出30+字段时的阶段拆分与累积合并
71.校准稳定性:重复校准时防止已识别数据丢失的历史合并机制
72.模型限制自学习:从API错误中自动解析真实token限制并缓存
73.随机基线归一化:不同基准的随机猜测准确率不同,直接平均不公平
74.Tokenizer 无关评估:BPB 按 UTF-8 字节归一化,消除 vocab size 对 perplexity 的影响
75.选择题 logits 聚焦:只看选项字母对应的 logits 而非自由生成,降低评估噪声
76.ICL Prompt 对齐:多选/Schema/LM 三种任务类型的 token 序列对齐与 continuation 定位
77.RL 奖励复用:evaluate 函数同时服务评估和 RL 训练的 reward 信号
78.多后端语法编译性能差异:不同后端对同一 schema 的编译耗时差异大,需要缓存和异步编译
79.推测解码与结构化输出兼容:speculative tokens 需要多位置 bitmask + FSM rollback
80.推理模式与约束模式切换:thinking 阶段不约束、推理结束后启用约束的状态检测
81.后端特性矩阵不对齐:xgrammar 不支持 patternProperties,guidance 不支持 Mistral tokenizer,outlines 不支持 CFG
82.bitmask 批量填充并行化:大批量请求时 CPU 端 bitmask 填充成为瓶颈,需要线程池并行
83.骨架模式审核:全文过长时提取结构骨架供 LLM 判断,避免 token 浪费和误判
84.Verbatim 预检:Python 侧预过滤已存在的数据项,减少 LLM 误报
85.占位符完整性:改写过程中引用占位符丢失的检测与回退保护
86.改写后重评分:Humanizer 改写后重新评分,未达标则重试改写
87.配置驱动质量等级:StyleProfile 预设套餐统一控制所有检查的开关和参数
各项目的解法25 solutions
横向对比
| 维度 | DeerFlow | VibeBlog | AgentScope | ClawWork | DeepCode | DeepResearch | DeepTutor | GPT-Researcher | Horizon | LightRAG | MemOS | MetaGPT | OpenDeepResearch | OpenViking | PageIndex | Stagehand | TradingAgents | VRAG | beads | md2wechat-skill | moyin-creator | nanochat | vLLM | vibe-blog |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 检查方式 | 三层容错隔离 + 故障隔离矩阵 | — | 可插拔 MetricBase,支持 CATEGORY 和 NUMERICAL 两种类型 | LLM 评估 + 职业分类专属 meta-prompt rubric,无启发式 fallback | 规则式四维加权评分(section存在性+结构完整性+截断检测+长度验证) | LLM-as-Judge 多模型评判,按基准路由到 GPT-4o/Gemini/Qwen | 四层递进:Pydantic 结构验证 → 引用完整性 → 语义分类 → 精确化决策 | — | 两阶段 AI 管线:Analyzer 评分筛选 → Enricher 搜索增强富化 | — | 三级管道:规则去幻觉 → 变更比例硬阈值 → LLM 实体安全审判 | 三层体系:ActionNode 节点级 + WriteCodeReview 文件级 + QaEngineer 角色级 | LLM-as-Judge 六维独立评估 + Section-Grader pass/fail 迭代 | RAGAS 四维指标 + LLM 语义去重双轨并行 | LLM-as-Judge 模糊匹配 + 确定性边界校验双层验证 | 独立 LLM 视觉评估(截图 + Zod 结构化 YES/NO) | 双层对抗辩论:Bull/Bear 投资辩论 + Aggressive/Conservative/Neutral 风险辩论 | 三阶段:格式标签门控 → ANLS 文本相似度 → LLM-as-Judge 语义判断 | 三级深度:check-health(轻量)→ doctor(标准36+项)→ deep(图遍历) | Prompt-as-Checker:24 种 AI 模式硬编码在 LLM 提示词中,LLM 自身执行检测 | 四级校准器管线:JSON清洗→角色/场景/分镜/组级校准 | 双模式评估循环:categorical 批量 logits + generative 逐题采样 | logits bitmask 前置约束,生成时逐 token 强制合规 | 6 层分角色管线:段落评估→一致性→结构审核→事实核查→正则清理→AI去痕 |
| 评估维度 | 5 状态机(PENDING/RUNNING/COMPLETED/FAILED/TIMED_OUT) | — | 多指标并行评估,每个 Task 可配置多个 Metric | completeness(40%)+correctness(30%)+quality(20%)+domain(10%) | 4维:section存在性50%、YAML结构20%、末行截断15%、最小长度15% | 答案等价性 + 置信度评分 + 终止原因分类 | 结构正确性 + 引用存在性 + 语义相关性(high/partial) | — | 技术深度+新颖性+影响力+社区互动信号融合评分 | — | 实体一致性 + 语义相关性 + 上下文保留三维检查 | 6 维 checklist(需求一致/逻辑正确/接口遵循/函数完整/依赖导入/方法复用) | 6 维:overall_quality(含 6 子维度)/relevance/structure/correctness/groundedness/completeness | Faithfulness/AnswerRelevancy/ContextPrecision/ContextRecall | 标题-页面对应准确率(accuracy 量化打分) | 二元判定(YES/NO)+ 自由文本 reasoning | 投资方向(Buy/Sell/Hold)+ 风险水平(激进/保守/中立三角评估) | 三维加权:语义正确性(0.7) + 文本相似度(0.1) + 检索质量NDCG(0.2) | 9 大分类:Core/Data/Git/Runtime/Performance/Integration/Federation/Metadata/Maintenance | 5 维度:直接性/节奏/信任度/真实性/精炼度,满分 50 | 角色分级(4级) + 场景重要性(3级) + 分镜37字段 | 6 任务 + BPB + CORE/ChatCORE 综合指标 | 格式合规性单维度(JSON Schema/正则/CFG/选择列表) | 4 维段落评分 + 6 维叙事一致 + 6 维语气统一 + 结构/Verbatim/学习目标 |
| 评估粒度 | 节点级(核心/增强/循环差异化) | — | Task 级,支持 n_repeat 重复评估 | 任务级:每个 task 一次完整评估,44 个职业分类独立 rubric | 整体YAML计划级评分 + 文件级实现完成度追踪 | 单问题级,3 轮独立推理后 Pass@K 聚合 | 每个 Agent 输出独立验证,5 种 Pydantic 模型覆盖全流程 | — | 单条内容级,每条独立评分+富化 | — | 逐条 UPDATE 操作独立评估 | 文件级(WriteCodeReview)+ 字段级(ActionNode key-by-key 对比) | 双粒度:section 级实时门控 + report 级全面评估 | 单 sample 级评分 + dataset 级 mean_scores 聚合 | — | 单问题 ask + 批量 batchAsk + 多截图序列 | 决策级:每次交易决策经过两轮辩论审查 | 单样本级,按 data_source 路由到不同评分函数 | 单项检查粒度,每项独立返回 DoctorCheck 结构体 | 文本级:整篇文章一次性检测,非逐句 | 单角色/单场景/单分镜粒度,逐项校准 | 单题级评估 + 任务级 accuracy + 全局 centered mean | token 级,每个 token 生成前检查 FSM 状态 | 段落级(evaluate_section)+ 跨章节级(ThreadChecker)+ 全文级(FactCheck) |
| 迭代机制 | 节点重试 + recursion_limit | — | 无内置迭代,评估结果可通过 tuner 模块接入 RL 训练 | 无迭代:一次性评估出分,不支持 Generator-Critic 循环 | 3次自适应重试(token递减×0.9/0.8 + temperature递减0.15/次) | 无 Generator-Critic 循环,纯后评估 | tenacity 指数退避重试(默认 2 次),无 Generator-Critic 循环 | — | 无迭代,单次评分即终态,靠阈值硬过滤 | — | 无迭代,单次三级管道过滤 | LGTM/LBTM 二值判定循环,code_validate_k_times 可配置(默认 2) | section_grader fail 时生成 follow-up queries 触发新搜索轮次 | 无迭代循环,单次评估出分 | — | Braintrust trialCount 多次试验取结果 | 可配置轮次的多轮辩论,count 计数器控制终止 | 无迭代,单次评估直接出分(RL 训练循环本身是迭代) | 修复后自动重新运行诊断,验证修复生效 | 无内置迭代,单次处理后输出评分供人工判断 | 无 Generator-Critic 循环,单次校准+容错降级 | 无迭代,单次评估出结果 | 无需迭代,单次生成即 100% 合规 | 双循环:段落 Critic Loop(max 2轮+收敛检测) + 审核-修订 Loop(max 1~5轮) |
| 并发策略 | SubagentLimitMiddleware 硬截断,钳位 [2,4] | — | Ray Actor 模型,max_concurrency 限制并发数 | 串行评估:每个 task 独立调用 GPT-4o,无批量合并 | 单次串行评估,无并行质量检查 | ThreadPoolExecutor(100) + threading.local 线程安全 Client | Research CitationManager 用 asyncio.Lock 保护并行 ID 分配 | — | 批内串行逐条分析,批间无并发 | — | 三层 ThreadPoolExecutor 并行(3/10/10) | 串行逐文件审查,QaEngineer 逐文件写测试+运行 | LangSmith evaluate max_concurrency=10 并行评估 | RAGAS max_workers=16 + batch_size=10 并行评估 | asyncio.gather 并发验证与并发修复,任务间完全独立 | Braintrust maxConcurrency 控制并行数 | 辩论层串行轮转,数据分析师层可并行 | ThreadPoolExecutor 10 线程并行调用 Judge API | 独立检查可并行,但 Lock Health 必须在 DB 打开前执行(顺序依赖) | — | runStaggered并发+用户可配置concurrency | torchrun stride 分配 + all_reduce 聚合 | ThreadPoolExecutor 异步编译 + 大批量并行 bitmask 填充 | ThreadChecker+VoiceChecker 并行;Humanizer 多线程并行处理各章节 |
| 基准集成 | — | — | 内置 ACEBenchmark,支持多步骤工具调用任务 | gdpval 数据集:44 职业 × 5 任务 = 220 个标准化评估任务 | — | GAIA/BrowseComp/WebWalker/XBench/HLE 五基准全覆盖 | — | — | — | — | — | — | Deep Research Bench 自建基准 + LangSmith 实验追踪 + JSONL 导出 | 直接集成 RAGAS 学术框架,指标可与论文对比 | — | GAIA/WebVoyager/Mind2Web/WebTailBench 四大学术基准 | — | 支持 slidevqa_test/mmlongdoc/vidoseek 等多基准数据源路由 | — | — | — | DCLM CORE + ARC/MMLU/GSM8K/HumanEval/SpellingBee | — | — |
| 反馈机制 | logger.warning 日志 + 合成 error ToolMessage | — | 评估结果 → Trinity-RFT → RL 奖励信号 | 结构化反馈:维度分数 + KEY FINDINGS + TOP IMPROVEMENTS | PlanReviewPlugin人工审查3轮修改 + 超时自动通过 | 无实时反馈,评估结果写入 scored.jsonl 供离线分析 | Pydantic ValidationError 格式化为可读错误信息,驱动重试 | — | score+reason+summary+tags 四字段结构化反馈 | — | UPDATE_APPROVED / INVALID / NONE 三态判定 | 结构化 Actions 列表 + 具体修复代码片段,LBTM 时自动触发重写 | 结构化 Feedback(grade + follow_up_queries) + 评估器 reasoning 字段 | EvalResult.feedback 字段 + 控制台报告 + JSON 导出 | accuracy 阈值分级决策:1.0 通过 / >0.6 修复 / ≤0.6 降级重生成 | reasoning 字段提供评估理由 | 辩论者 prompt 注入对方最新论点,强制直接回应 | 二值 Judge(True/False),无结构化改进建议 | 三态结果(ok/warning/error)+ Detail + Fix 字段 | 结构化修改记录 Change[],含类型/原文/修改后/原因 | 无结构化反馈,校准失败返回统计降级结果 | Report 分段日志 + CSV 输出 + 最终 Markdown 汇总 | 无反馈循环,约束在 logits 层面直接执行 | 结构化 JSON:specific_issues + improvement_suggestions + severity 分级 |
| 配置驱动 | is_plan_mode/subagent_enabled/supports_vision 三开关条件激活 | — | Metric 通过 Task.metrics 列表配置,支持任务级定制 | JSON rubric 驱动:44 个独立 JSON 文件,GPT-5.2 自动生成 | — | dataset 参数驱动 judge_model + judge_prompt 自动路由 | — | — | FilteringConfig 控制 ai_score_threshold 和 time_window_hours | — | MemFeedbackConfig Pydantic 模型驱动 LLM/Embedder/GraphDB | — | — | RagasConfig 环境变量 + dedup_decision.yaml Prompt 模板 | — | evals.config.json 定义任务+类别,CLI 参数覆盖 | — | YAML 配置 Judge URL/Key/模型名/并发数,支持切换本地模型 | — | — | feature-router按功能类型路由模型+model-registry查表 | YAML 任务配置 + CSV 随机基线 + CLI 参数 | StructuredOutputsConfig 统一配置后端/whitespace/additionalProperties | StyleProfile 统一管理 + 环境变量双开关,mini/short/medium/long 4 档预设 |
| 多后端支持 | — | — | 存储层抽象 EvaluatorStorageBase,支持文件/数据库等后端 | 单后端:仅 OpenAI API(支持独立 EVALUATION_API_KEY 隔离) | — | litellm + OpenAI SDK 双后端,支持 Qwen/GPT-4o/Gemini | — | — | 4 提供商工厂模式(Anthropic/OpenAI/Gemini/Doubao) | — | — | — | — | — | — | 14+ LLM 供应商通过 LLMProvider 统一适配 | — | — | SQLite/Dolt 双后端检查,部分检查仅适用于 Dolt(如深度验证) | Prompt 驱动,适配任何 LLM 后端 | 多模型轮询+API Key轮转+Error-Driven Discovery自学习 | HuggingFace + nanochat 原生双模型加载 | 4 后端策略模式(xgrammar/guidance/outlines/lm-format-enforcer) | — |
| 断点续传 | — | — | 双重缓存检查(任务结果 + 评估结果),自动跳过已完成任务 | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
| 可观测性集成 | — | — | OpenTelemetry trace + baggage 传递 task_id,自动关联分布式调用 | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
| 统计信息收集 | — | — | _InMemoryExporter 收集 token 消耗和调用次数,存入 solution_stats | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
| Actor 生命周期 | — | — | RaySolutionActor 持久化,RayEvaluationActor 按需创建 | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
| 评估与执行分离 | — | — | RaySolutionActor 执行任务,RayEvaluationActor 异步评估 | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
| 基准数据管理 | — | — | ACEBenchmark 自动下载数据集,支持 ground_truth 和 mile_stone | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
| 工具隔离 | — | — | Task.metadata['tools'] 传递任务级工具函数,避免全局污染 | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
| 自动修复 | DanglingToolCallMiddleware 自动注入合成 ToolMessage 修补历史 | — | — | 无自动修复:评估结果仅用于支付决策,不触发重做 | 无自动修复,仅通过参数调整引导LLM重新生成 | — | fix_invalid_citations() 自动移除无效引用 ID | — | — | — | difflib 自动修正幻觉 ID(cutoff=0.8) | 三级自动修复:ActionNode auto_revise + WriteCodeReview rewrite + DebugError 重写测试 | fail 时自动补充搜索并重写 section,非直接修改 | 无自动修复,去重决策直接执行 merge/delete | 范围缩窄定向修复 + 修复后即验证,最多 3 轮重试 | 无自动修复,selfHeal 仅在 Agent 执行层 | 无自动修复,裁判做最终裁决而非要求辩论者修改 | — | 四种模式:--fix(自动)/ -i(逐项确认)/ --dry-run(预览)/ --yes(无确认) | 检测与修复一体:LLM 同时识别问题并重写 | JSON截断自动修复 + ID类型归一化 + transitions长度修正 | — | 预防式,不存在修复概念——不合规 token 概率被置零 | FactCheck string.replace 修复矛盾 Claim + Humanizer diff 替换 AI 痕迹 |
| 覆盖范围 | 消息格式完整性 + 子代理并发 + Plan 模式任务追踪 | — | — | 44 个职业类别全覆盖,每类含 checklist + failure modes | 计划生成阶段(YAML完整性)+ 实现阶段(文件完成度) | — | Investigate/Note/Reflect/Plan/Solve 五类输出 + 引用 + 配置 + 文件上传 | — | 5 源全量内容(GitHub/HN/RSS/Reddit/Telegram) | — | 仅覆盖记忆 UPDATE 操作,ADD 不做二次审判 | 全生命周期:PRD 审查 → API 设计审查 → 代码审查 → 测试生成 → 测试执行 → Debug | 研究深度/源质量/分析严谨性/实用价值/平衡客观/写作质量/相关性/结构/正确性/事实依据/完整性 | RAG 检索质量 + 记忆库去重 + IO 层回放验证 | TOC 提取完整性 + 转换完整性 + 页码映射准确性 + 物理边界合法性 | 130+ 任务 × 11 类别 × 多模型矩阵 | 交易决策全流程:数据采集→投资辩论→交易方案→风险辩论→最终审批 | — | 36+ 项检查,覆盖安装/版本/Schema/依赖/重复/污染/Git/联邦/性能 | AI 写作痕迹专项:5 大类 24 种模式 | 角色+场景+分镜+组级叙事,全链路校准 | — | 仅覆盖输出格式,不检查语义正确性 | 结构完整性+Verbatim+学习目标+事实+叙事一致+语气统一+AI痕迹+正则格式 |
| 降级路径 | 截断多余调用而非拒绝整个响应 | — | — | 无降级:LLM 评估失败直接 raise,明确移除 heuristic fallback | 3次重试失败后使用最后结果,超时自动批准计划 | Judge 调用失败返回 Error 标记,不影响其他条目评估 | RelevanceAnalyzer 失败返回默认 partial;safe_parse 返回默认值 | — | 分析失败自动赋 score=0 + reason='Analysis failed' | — | 嵌入失败降级全零向量,JSON 解析失败用正则兜底 | k 次迭代耗尽后返回最后一版代码,test_round 超限后强制停止返回当前测试文件 | 迭代达 max_search_depth 时强制通过,with_retry 3 次结构化输出 | LLM 不可用时去重默认 CREATE,RAGAS 缺包时 ImportError | 三级渐进降级:有页码TOC → 无页码TOC → 无TOC全文扫描 | LLM 解析失败返回 INVALID 而非抛异常 | 无显式降级,辩论轮次可配置为 0 跳过辩论 | 格式不通过→0分跳过;ANLS=0→跳过LLM;重试20次耗尽→0分 | 检查失败不阻塞后续检查,最终聚合 OverallOK 状态 | 三层降级:结构化解析→纯文本提取→返回原文 | AI失败→统计降级(角色按出场分级/场景按频次排序) | — | auto 模式三级降级:xgrammar → guidance → outlines | 每个 Agent 异常返回默认通过,增强节点失败不阻塞核心流程 |
| 人机协作 | TodoListMiddleware 提供任务可见性,ClarificationMiddleware 拦截澄清 | — | — | 全自动:无人工审查环节,评分直接决定支付 | — | — | — | — | — | — | — | ReviewMode(HUMAN/AUTO) + ReviseMode(HUMAN/HUMAN_REVIEW/AUTO) 三种模式灵活切换 | — | — | — | — | 无人工介入点,全自动辩论裁决 | — | 检查只读,修复需确认(除非 --yes),修复后自动验证 | 三级强度可调(gentle/medium/aggressive),人工选择处理力度 | — | — | — | 自定义审核标准注入(guidelines);StyleProfile 预设套餐按需选择 |
| 视觉验证 | — | — | — | 多模态原生:图片 base64 + PPTX/PDF 转 PNG + vision API 评估 | — | — | — | — | — | — | — | — | — | — | — | 截图 Base64 编码 + LLM 多模态理解 | — | — | — | — | — | — | — | — |
| 安全防护 | _clamp_subagent_limit 参数钳位防止极端配置值 | — | — | 文件大小限制 2MB + 空文件拒绝 + 二进制文件类型检查 | — | — | — | — | — | — | — | — | — | — | — | — | 防幻觉指令:无对方论点时不要编造 | — | fix 包的 validateWorkspace + safeWorkspacePath 防止路径遍历和误操作 | — | — | 进程隔离 + reliability_guard 禁用危险函数 | 参数互斥校验 + JSON Schema 特性兼容性预检 + 正则语法预验证 | — |
| 经济支付耦合 | — | — | — | 评分 ≥ 0.6 才支付,低于阈值零支付,四级生存状态追踪 | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
| 评估模型隔离 | — | — | — | 独立 API key/base URL/model,评估与工作 LLM 完全分离 | — | Judge 模型与 Worker 模型完全独立,API key 分离 | — | — | 无隔离,评分和富化共用同一 AI 客户端实例 | — | — | — | 评估固定 GPT-4.1,裁判用 Claude Opus 4,与生成模型完全分离 | RAGAS_LLM_* 独立环境变量与工作 LLM 分离 | — | — | — | qwen-max(DashScope API)做 Judge,与训练模型完全分离 | — | — | — | 无隔离,评估用同一模型 | — | — |
| 决策归一化 | — | — | — | — | — | is_correct_judgement 统一处理 Correct/A/yes 等多种格式 | — | — | — | — | UPDATE 优先于 ADD,同一反馈中两者互斥 | — | 分数统一归一化到 0-1(原始 1-5 分 / 5),groundedness 用 ratio | 6 条硬约束规则防止 LLM 输出不一致 | — | — | — | — | — | — | — | centered accuracy 消除随机基线差异 | — | — |
| 引用完整性 | — | — | — | — | — | — | — | — | available_urls 白名单验证,过滤 LLM 幻觉引用 | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
| 社区信号融合 | — | — | — | — | — | — | — | — | engagement_items 收集 8 类互动指标注入评分 prompt | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
| 双语输出 | — | — | — | — | — | — | — | — | 富化阶段 6 字段均生成 _en/_zh 双语版本 | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
| 概念提取前置 | — | — | — | — | — | — | — | — | 富化前先用 LLM 识别需解释的技术概念再搜索 | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
| 记忆驱动改进 | — | — | — | — | — | — | — | — | — | — | 用户反馈直接驱动记忆 ADD/UPDATE/ARCHIVE 闭环 | — | — | 去重决策反哺记忆库质量,merge 保留非冲突信息 | — | — | BM25 检索历史相似情境教训,注入辩论者和裁判 prompt | — | — | — | — | — | — | — |
| 记忆语义去重 | — | — | — | — | — | — | — | — | — | — | ADD 操作文本去重 + 向量检索阈值 0.2 预过滤 | — | — | — | — | — | — | — | — | — | — | — | — | — |
| 错误归因 | — | — | — | — | — | — | — | — | — | — | — | RunCode 用 LLM 判定 bug 归属(Engineer/QaEngineer),自动路由给对应角色 | — | — | — | — | 事后反思机制:Reflector 分析每个角色的决策正确性并归因 | — | 每个 DoctorCheck 包含 Detail 字段,精确定位问题(如 bd-1→bd-999 孤儿依赖) | — | — | — | — | — |
| 检索质量评估 | — | — | — | — | — | — | — | — | — | — | — | — | groundedness 评估器逐条提取 claims 对比 raw_notes 搜索笔记 | — | — | — | — | NDCG 独立评估检索文档排序质量,区分'猜对'和'真懂' | — | — | — | — | — | — |
| 录制回放验证 | — | — | — | — | — | — | — | — | — | — | — | — | — | IORecorder JSONL 录制 + IOPlayback 跨后端回放对比 | — | — | — | — | — | — | — | — | — | — |
| 风格保护 | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | PreserveStyle 标志 + 风格名注入,避免去痕破坏刻意风格 | — | — | — | Humanizer 占位符完整性验证 + 字数变化 ±10% 告警 + 改写后重评分重试 |
| 阶段拆分防截断 | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | 30+字段拆为5阶段独立AI调用,累积合并 | — | — | — |
| 双重token约束 | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | input budget + output budget同时限制,60K Hard Cap | — | — | — |
| 历史合并防丢失 | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | previousCharacters参数合并上次校准丢失的角色 | — | — | — |
| 约束类型丰富度 | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | 6 种约束类型:JSON Schema/JSON Object/正则/CFG/选择列表/Structural Tag | — |
| 推测解码兼容 | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | bitmask 支持多 speculative token 位置 + FSM rollback | — |
| 推理模式感知 | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | ReasoningParser 检测 thinking 阶段,推理中跳过约束 | — |
最佳实践
1.Generator 和 Critic 必须分离:同一 Agent 自评效果差,对抗性协作才能提升质量
2.多维评估优于单一分数:accuracy/expression/professionalism 分维度评分,定位问题更精准
3.三重终止条件防浪费:分数达标 OR 改进收敛 OR 轮次上限,任一满足即停止
4.结构化反馈可执行:specific_issues + improvement_suggestions,不是模糊的"改好一点"
5.故障隔离矩阵:核心节点重试、增强节点跳过,按重要性差异化处理
6.段落级粒度优于全文级:逐段评估和改进比全文一个分数更精准
7.评估与执行分离:RaySolutionActor 和 RayEvaluationActor 分离,评估不阻塞任务执行
8.双重缓存检查:任务结果和评估结果分别缓存,最大化断点续传效率
9.OpenTelemetry baggage 传递上下文:用 baggage 传递 task_id/repeat_id,自动关联分布式 trace
10.Metric 类型枚举:CATEGORY/NUMERICAL 枚举强制类型检查,前端可根据类型选择可视化方式
11.基准数据自动下载:ACEBenchmark 首次使用时自动下载数据集,无需手动准备
12.任务级工具隔离:Task.metadata['tools'] 传递任务级工具函数,避免全局工具注册表污染
13.Actor 持久化复用:RaySolutionActor 持久化,多个任务复用同一 Actor 减少启动开销
14.评估 API 与工作 API 隔离:独立 key/base URL/model 防止配额竞争和自评偏差
15.宁可失败也不误判:移除所有 heuristic fallback,LLM 评估失败直接报错而非给默认分
16.用 LLM 生成 LLM 评估标准:GPT-5.2 批量生成 44 个职业 rubric,比人工编写更一致
17.多模态产物合并传输:PDF 4 页拼 2×2 网格,PPTX 逐页转 PNG,平衡评估精度与 token 成本
18.Token 减少优于增加:重试时减少 output token 为 input 留空间,而非盲目增加导致溢出
19.渐进式参数衰减:token 和 temperature 逐步收紧(×0.9→×0.8,-0.15/次),避免一步到位的剧烈变化
20.JSON Schema strict mode 约束 Judge 输出:消除格式解析失败,比正则提取可靠
21.threading.local 线程安全 Client:高并发评估时避免连接池冲突
22.轨迹压缩后再聚合优于直接投票:ParallelMuse 先压缩为报告再交叉验证,比简单多数投票更可靠
23.评估统计应区分正确/错误回答的行为差异:工具调用模式差异是重要的诊断信号
24.Pydantic 模型验证优于手动 dict 检查:类型安全、错误信息自动格式化、支持嵌套验证
25.分类优于拒绝:RelevanceAnalyzer 标注 high/partial 而非 pass/fail,保留所有内容价值
26.两阶段精确化节省资源:先判断是否需要精确回答,避免对所有问题统一精确化
27.中间件位置即语义:before_model 修补输入质量,after_model 约束输出质量,钩子选择决定检查时机
28.参数钳位防御极端值:并发限制等数值参数用 clamp 函数限制在安全范围,不信任调用方
29.修补优于拒绝:损坏的消息历史注入合成错误响应而非截断,保留上下文连续性
30.幂等性保证:修补逻辑通过 Set 追踪已处理 ID,重复执行不产生副作用
31.评分与富化资源分级投入:低分内容只花评分成本,高分内容才投入搜索+二次 LLM 调用
32.JSON 解析 fallback 链:直接解析 → markdown 代码块提取 → 通用代码块提取,三级容错
33.评分 rubric 写入 system prompt:5 级标准+考量维度固化在 prompt 中减少评分漂移
34.规则检查前置 LLM 审判后置:difflib + Jaccard 零成本过滤后再调用 LLM,节省 API 开销
35.三级 ID 匹配递进:精确→大小写→模糊,cutoff=0.8 平衡召回与精度
36.批量阈值触发:UPDATE < 5 条直接放行,≥5 条才启动 LLM 审判,避免小批量过度验证
37.LGTM/LBTM 二值判定优于模糊评分:强制 LLM 做出明确的通过/不通过决策,避免中间态
38.审查时注入设计文档作为对照基准:不是孤立看代码,而是对照 System Design + Task 检查一致性
39.将审查流程工具化注册:通过 @register_tool 让其他 Agent 可按需调用审查能力,实现审查即服务
40.评估模型固定版本:评估模型锁定具体版本(如 gpt-4.1)保证跨实验一致性,不随生成模型变化
41.Pairwise 随机顺序消除位置偏差:evaluate_comparative 设置 randomize_order=True 防止裁判偏向先出现的答案
42.Groundedness 用 claim-level ratio 而非整体分数:逐条提取声明并判断有据性,比整体 1-5 分更精准可解释
43.向量预过滤+LLM精判两阶段:先低成本筛选候选再高精度判断,平衡成本与准确度
44.非破坏性默认策略:LLM 失败或冲突时默认保留数据(CREATE),宁可多存不误删
45.决策归一化硬规则:用代码规则修正 LLM 输出的逻辑不一致,不完全信任 LLM 结构化输出
46.评估 LLM 配置独立:RAGAS 评估用独立的 API key/model 配置,避免与工作 LLM 互相影响
47.评估 LLM 与 Agent LLM 必须不同供应商:Stagehand 默认用 Gemini 评估其他模型的 Agent,避免同族偏差
48.截图延迟保护:评估前等待 250ms 确保页面渲染完成,避免评估中间状态
49.INVALID 降级而非异常:LLM 结构化输出解析失败时返回 INVALID 状态而非抛异常,保证评估流程不中断
50.矩阵式覆盖验证一致性:task × model × trial 三维组合暴露跨模型行为差异
51.三角对抗打破僵局:二元对立容易陷入拉锯,引入第三方中立视角可打破平衡
52.裁判用强模型、辩论者用快模型:质量关键点投入更多推理资源,辩论产出用轻量模型控制成本
53.事后反思闭环:交易结果出来后对每个角色独立反思,教训写入记忆供未来检索,形成持续改进循环
54.格式门控前置于语义评估:先检查输出格式合规再做昂贵的 LLM 调用,不合格直接零分
55.检索质量纳入奖励信号:NDCG 独立评估检索排序,防止模型学会绕过检索直接猜答案
56.条件触发 LLM 评估:本地评分为零的样本跳过远程 Judge,节省 70%+ API 调用
57.训练与验证用不同评估策略:训练用多维加权引导行为,验证用纯正确率衡量效果
58.检查-修复分离:检查是只读的(doctor/ 包),修复是写操作(doctor/fix/ 包),权限模型清晰
59.三态结果模型:ok/warning/error 三级状态,warning 不阻塞但需关注,error 必须修复
60.分类聚合展示:36+ 项检查按 9 大分类展示,避免信息过载
61.SQL 层聚合优化:重复检测用 GROUP BY HAVING COUNT(*) > 1 在 SQL 层聚合,避免 O(n²) 内存比较
62.修复事务原子性:fix 函数使用显式事务(tx.Begin/Commit),确保修复操作原子性
63.Prompt-as-Checker 模式:将检测规则编码在提示词中,利用 LLM 自身的语言理解能力做模式识别,比规则引擎覆盖率高
64.检测与修复一体化:同一次 LLM 调用同时完成识别和重写,避免两次调用的上下文割裂
65.三层降级解析保底:结构化→纯文本→原文,确保任何情况下不丢失用户内容
66.校准器只丰富属性不改变结构:补充美术设计但不增删合并场景,保护上下游ID关联
67.双重token约束分批:同时限制input和output budget,防止output截断这一隐蔽问题
68.60K Hard Cap防Lost-in-the-Middle:无论模型声称多大上下文,单批不超60K token
69.截断JSON部分恢复:找到最后一个完整对象边界,补全结构后解析部分结果
70.Centered accuracy 归一化后再平均:消除选择题高基线对综合指标的稀释
71.评估模式由 Task 声明而非外部指定:eval_type 属性让评估循环自动路由
72.字母 token 缓存避免重复 tokenize:高频操作的微优化在大规模评估中显著
73.确定性 shuffle 保证可复现:固定种子 Random(1337) 确保子采样结果一致
74.约束前移优于后验校验:在 logits 层面强制合规比生成后重试更高效且保证收敛
75.后端自动降级链:auto 模式按能力递减顺序尝试,用户无需了解后端差异
76.语法编译异步化:ThreadPoolExecutor 异步编译不阻塞调度器,Future 轮询超时 100μs
77.延迟初始化后端:首次结构化输出请求时才创建后端实例,不使用时零开销
78.骨架模式审核节省 token:提取子标题+字数而非全文传给 Reviewer LLM
79.Python 侧预检减少 LLM 误报:Verbatim 数据先在代码层过滤已存在项
80.diff 替换优于全文重写:Humanizer 输出 old→new 替换列表而非重写全文,保持上下文稳定
81.占位符完整性验证:改写后检查 {source_NNN} 是否丢失,丢失则回退原文
82.环境变量 AND StyleProfile 双开关:运维全局控制 + 产品按套餐控制,两者 AND 才启用