AgentEvalTool/CONTEXT.md
sinohqb eb4944a8bd feat(intelligent-eval): terminal-state discipline watchdogs (ADR-0011)
常见故障自愈有上限,超限收敛终态且可见:任务 attempts 上限、会话过期、
planning 双闸、executing 超窗兜底、触发失败计数判死、孤儿 agent 双管、
fire-and-forget 触发;open_session 预算硬闸门、settle 按终态区分、报告
scores 归一化;cron 池遗留面全删。
2026-08-20 14:34:17 +08:00

170 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AgentEvalTool
智能体质量评估平台的领域词汇表。评估 AI 数字员工 / AI 助手的服务质量:向被评智能体发送消息、收集回复、按规则打分并生成报告。
## Language
**评测对象Target / EvalTarget**:
被评估的智能体本身。每个被评智能体只有一个可访问地址,评测对象与其通道连接信息一一对应(不区分测试/生产等多环境部署)。
_Avoid_: 被测系统、机器人、环境
**平台类型Platform**:
被评智能体的产品形态分类AI 数字员工 / AI 助手),意图是未来据此选择评测策略;目前仅作分类标签,不参与任何评测逻辑。
_Avoid_: 产品线、渠道
**通道Channel**:
向评测对象收发消息的技术接入协议tutu-api / openclaw / http。通道决定"怎么连",与平台类型("是什么形态")相互独立。
_Avoid_: 接口、连接器
**期望Expectation**:
用例层面的业务意图描述:智能体应当如何回应(意图、必含/禁含关键词、时延上限)。表达"想要什么",与评估规则("怎么判定")叠加生效,不是规则的替代品。
_Avoid_: 断言、预期结果
**评估规则EvalRule**:
对单轮回复的可执行判定标准keyword_match / response_time / llm_score产出通过与否和得分。用例的唯一正式判定机制。
_Avoid_: 校验器、断言
**连通用例Connectivity Case**:
不配置任何规则与期望的用例,仅验证消息能发出且收到回复,收到即通过。合法用法,但报告中应与判定型用例区分标注,避免稀释通过率。
_Avoid_: 空用例、无效用例
**场景Scenario**:
一组评测用例的集合,定义一次评测的"考纲"——考察哪些能力维度。场景是对比报告的可比性单位:同场景的两次运行即可比,无论具体对话内容是否相同。
_Avoid_: 测试集、题库
**用例Case**:
场景内的单个考察项分单轮single、多轮multi_turn、动态dynamic三类。静态用例题目固定动态用例只固定考察意图prompt每次运行由 AI 现场生成对话消息。
_Avoid_: 测试点、题目
**对比报告Compare Report**:
同一场景(同版本考纲)下两次运行的逐项对照。可比性来自"同考纲"而非"同考卷"——动态用例题目不同不影响可比。跨场景对比无意义,系统拒绝。
_Avoid_: 差异报告
**场景版本Scenario Version**:
场景考纲的版本标识。仅考纲字段用例集、模型绑定、LLM 配置)变更时递增;名称、描述、标签等元数据编辑不升版。(决策见 ADR-0001
_Avoid_: 修订号
**评测运行Run / EvalRun**:
一次"评测对象 × 场景"的完整执行记录,含触发来源(手动 / AI 助手 / CLI、逐轮对话与全部判定结果。
_Avoid_: 任务、作业、测试
**轮次Turn**:
一次完整的问答往返:向评测对象发出一条消息并收到其回复。不是单方向的一条消息——`turns: 3` 表示 3 个问答对。
_Avoid_: 消息、回合round 仅作代码内索引名)
**通过率Pass Rate**:
通过用例数 ÷ 全部用例数。刻意采用服务视角:通道故障、超时等执行失败同样计为不通过——用户视角里"没回复"就是质量问题,不从分母中剔除。(决策见 ADR-0002
_Avoid_: 成功率、达标率
## 周期评估
**评估活动Campaign**:
针对**单个评测对象**、跨一个服务周期窗口的评估聚合,模拟该智能体在完整服务周期内面对的真实用户行为。活动是 Run 之上的聚合:按计划在窗口内派生多个普通 Run每个 Run 仍是"一个对象 × 一个场景"的单次执行),最终聚合成周期评估报告(时间趋势 + 能力汇总双主轴)。活动状态入库、抗重启。多对象通过并行多个活动 + 跨活动对比实现。
_Avoid_: 批量任务、计划任务、24小时任务窗口长度可配不特指 24h
**服务周期窗口Service-Cycle Window**:
活动的时间跨度,模拟被评智能体一个完整的持续服务周期。长度可自定义(如 6 / 12 / 24 / 48 / 72 小时24 小时为"一天"的默认代表。
_Avoid_: 时长、周期(周期单指这个窗口)
**活动计划Campaign Plan**:
活动在窗口内"何时、对哪个对象、跑哪个场景、多大强度、以何种用户人设"的时间编排。由 OpenClaw 作为"虚拟用户大脑"在活动层生成,并在窗口内的决策点依据已完成时段的结果**自适应调整**后续编排;平台调度器负责耐久执行(派生 Run、重启后续跑、决策点唤醒 OpenClaw。计划编排已有场景时段内的具体对话仍由动态用例生成器产出。
_Avoid_: 排程、日程表
**可用性Availability**:
活动周期报告中的一个维度:某时段(或整窗)内**正常完成**的子 Run 占比completed / 已派生)。与通过率正交——通过率反映"回答质量"用例级、含故障判不通过ADR-0002可用性反映"服务是否可达/执行是否成功"。通道故障导致的失败子 Run 拉低可用性。
_Avoid_: 在线率、健康度
**周期对比Period Comparison**:
同一活动串(同评测对象 + 同计划指纹:场景集合、偏移、次数、窗口完全一致)中,相邻两期正式线活动的对照,回答"这一期比上一期好了还是坏了"。自动按完成时间取前一个已有 completed 分析的活动为基线;计划指纹不一致即无自动基线,可手动另选。区别于"跨活动对比"(多对象并行活动的横切对照)与"对比报告"Run 级逐项对照)。
_Avoid_: 环比(暗示固定自然周期,活动窗口可任意长)
**正式线 / 加速调试线Production-line / Accelerated-line**:
活动的两种运行档位,由时间倍速区分:`time_scale == 1` 为正式线(窗口按真实时长走完,代表真实服务周期,享受自动分析、自动周期对比等全链自动化);`time_scale > 1` 为加速调试线(压缩窗口用于快速验证流程,自动化能力默认关闭,仅手动按需触发)。
_Avoid_: 真实线、快速模式
## 探索式评测
**虚拟用户Virtual User**:
OpenClaw 在探索式评测中扮演的角色:按人设与探索目标模拟拟真用户行为、与被评对象自主对话的智能体。是"行动者"而非"台词生成器"——对话节奏、追问、放弃均由其自主决定。
_Avoid_: 测试员、脚本机器人、模拟器
**探索式评测Exploratory Evaluation**:
与固定场景并行的第二种评测模式:不预设考纲,由虚拟用户按种子自由行动,产出"发现的问题"而非"通过率"。固定场景保留为回归基线(可比性、周期对比建在其上),两模式共用活动/窗口/报告外壳,可在同一活动内混编。(决策见 ADR-0003 v2 修订)
_Avoid_: 自由测试、压力测试、探索测试
**探索会话Exploration Session**:
虚拟用户以"人设 × 目标"组合执行的一段完整对话过程,独立实体存储(`exploration_sessions`不并入评测运行——Run 绑定场景与规则判定,探索会话两者皆无)。平台提供会话对象、护栏与留痕,对话由 OpenClaw 驱动。
_Avoid_: 运行、用例、测试会话
**种子集Seed Set**:
活动级配置的种子人设(背景、性格、耐心度)与种子目标(如"完成退货")集合,是探索式评测的可比性单位(对应固定场景的"考纲",与 `plan` 同构)。虚拟用户可在预算约束内从种子衍生有限变体(换表达、换追问策略),全部留痕。
_Avoid_: 题库、人设库、剧本
**体验记录Experience Record**:
探索会话结束时虚拟用户产出的结构化自报:目标是否达成、卡点、被误导处、情绪变化。探索式评测的第一手证据——意图-结果闭环只有行动者自己能给judge 岗位对抽样对话独立复核补充质量维度,两条证据链在分析层汇合。
_Avoid_: 评测结果、断言、日志
**巡检Patrol**:
常驻代理的周期性自主行动:经 OpenClaw heartbeat/cron 唤醒,调平台巡检 API 查看进行中活动的新结果与预算余量,自主决定"继续观察 / 派探索会话"。全局一个常驻巡检作业无状态地巡检所有活动OpenClaw 停摆只暂停探索,固定计划照常。
_Avoid_: 轮询、心跳heartbeat 是 OpenClaw 机制名,巡检是平台侧行为)
## 智能评估
**静态评估Static Evaluation**:
v0.8 已完整的评测体系:考纲驱动、平台执行、规则判定。预设场景(用例+规则)、平台调度器派生 Run、统计通过率。回答"考纲过了多少"。
_Avoid_: 固定评估、传统评估
**智能评估Intelligent Evaluation**:
与静态评估并列的独立评测体系目标驱动、OpenClaw 规划执行、AI 判定。用户只给方向(目标+种子+意图+角色OpenClaw 全权规划与执行产出可驱动被评对象改善的结构化报告。独立实体IntelligentEval与 Campaign 平级,不共享数据表与状态机。
_Avoid_: 动态评估、自动评估
**粗计划Coarse Plan**:
OpenClaw 在智能评估中产出的评估规划:评估维度、虚拟用户列表、时间分布编排、预算、完成标准。入库可见,用户审批后才执行。"粗"在于只定方向不定细节——具体对话策略、追问节奏、何时放弃由执行时动态决定。
_Avoid_: 计划、方案(太泛)
**智能评估会话IntelligentEvalSession**:
OpenClaw 以虚拟用户身份与被评对象的一段完整对话,全新实体(不复用 exploration_sessions。归属智能评估、含人设/目标/维度、会话级评估verdict。终态有两个completedworker 正常关闭)与 expired60 分钟无新轮次由平台判定过期提交结构化报告要求全部会话到达终态expired 会话在报告中标注为不完整证据。(决策见 ADR-0011
_Avoid_: 探索会话(那是静态评估增强层的概念)、运行
**结构化报告Structured Report**:
智能评估的最终产出:发现清单(问题+证据+严重程度+改善建议)+ 亮点 + 优先级建议。消费者有两个:人(看问题)和 AI拿报告去改被评对象的提示词/SOP驱动其进化
_Avoid_: 评估报告(与静态评估的报告混淆)、分析(与 Analysis 岗位混淆)
**评估角色Evaluation Role**:
OpenClaw 在智能评估中按职责拆分的三个角色规划师planner产出粗计划、评估者evaluator执行对话、分析师analyst汇总报告。每个角色可配置不同大模型对应三个独立技能文件。
_Avoid_: 岗位(与模型用途的"岗位"概念冲突)
**时间窗口Time Window**:
智能评估的模拟约束:模拟一个完整服务周期(如 24h内的用户交互分布。OpenClaw 规划时考虑交互时机(早高峰、午间冷清、晚间投诉多),执行时机由平台扫描判断时段到期后经触发式执行保证。是模拟约束而非硬截止。
_Avoid_: 窗口(与静态评估的"服务周期窗口"混淆时需加前缀)
**触发式执行Trigger-driven Execution**:
智能评估的执行机制:**平台掌控节奏**——每 60s 扫描 executing 评估,判断时段到期/欠账后入队;**有任务时触发一个无状态 OpenClaw agent**headless执行 worker skill 后即退)从任务队列取任务执行。执行单元自主决策(执行会话/等待/开始分析平台负责节奏与兜底assigned 超时重入队、决策日志补录)。**时段约束**每次触发只执行当前到期时段time_distribution 中当前 offset 所在时段)内欠账的会话,绝不创建未来时段会话——由平台每 60s 持续触发推进后续时段,保证时间窗口内的交互按时段分布而非一次建完。**独立会话**:每次触发用独立 OpenClaw session避免复用 main 持久会话导致上下文缓存污染、agent 幻觉不执行)。取代旧"常驻 cron 每分钟自唤醒"机制ADR-0007已被 ADR-0009 取代,遗留代码按 ADR-0011 决策清除)。(决策见 ADR-0009、ADR-0010
_Avoid_: 轮询、调度(与静态评估活动调度混淆)
**任务队列Task Queue**:
平台侧的待处理评估队列,持久化在 DB。每分钟扫描所有 executing 评估,判断哪些需要立即处理(时段到期、有欠账),按优先级排序(时段到期 > 欠账多 > 等待时间长)。触发式执行中被触发的 agent 从队列取任务。
_Avoid_: 消息队列(与 MQ 混淆)、任务列表
**配置快照Config Snapshot**:
智能评估配置的历史版本(四件套、粗计划、时间窗口)。创建评估、提交计划、修改配置时自动保存,支持对比和回滚。用于追溯配置变更历史。
_Avoid_: 版本(与场景版本混淆)、备份
**决策日志Decision Log**:
执行单元每次唤醒/触发时的决策记录(执行会话/等待/开始分析 + 原因 + 上下文)。持久化在 DB用于调试和审计 OpenClaw 的自主决策过程。agent 未上报时由平台兜底补录(`cron_id=platform`)。
_Avoid_: 日志(太泛)、审计日志(与安全审计混淆)
## 模型配置
**模型能力Capability**:
供给侧属性:一个已接入模型本身能干什么(对话 / 向量 / 审核)。描述模型,不描述评测流程。
_Avoid_: 功能、类型
**模型用途Purpose**:
需求侧属性:评测流程中的角色岗位(出题 generator / 判卷 judge / 向量 embedding / 审核 moderation / 分析 analysis。场景通过模型绑定为每个岗位指派一个具备相应能力的模型一个对话能力模型可同时胜任出题、判卷、分析等岗位。
_Avoid_: 能力、角色role 留给对话消息的 role 字段)
**分析Analysis岗位**:
模型用途的一种对一整次评估活动Campaign的聚合结果做复杂诊断产出结构化的问题分析与服务质量改善建议。区别于判卷judge 只裁单轮回复),分析是活动级、跨场景的叙述性研判。因活动跨场景,分析模型不按场景绑定,而是全局默认指派、活动创建时可覆盖。
_Avoid_: 判卷、总结