Add generate_campaign_report: a pure aggregator over a campaign's child Runs
producing a time-trend axis (Runs bucketed by service-window position) and a
capability-summary axis (grouped by scenario), each carrying pass_rate /
availability / latency. pass_rate keeps the single-Run case-level meaning and
counts execution failures as 0.0 (ADR-0002); time_scale only places Runs into
window-time buckets and never alters any figure. Engine summary now records
avg_latency_ms to feed the latency axis.
Expose GET /api/campaigns/{id}/report (structured) and .../report/markdown
(reusing the existing Markdown export path). Adds "可用性/Availability" to the
domain glossary.
5.8 KiB
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: 在线率、健康度
模型配置
模型能力(Capability): 供给侧属性:一个已接入模型本身能干什么(对话 / 向量 / 审核)。描述模型,不描述评测流程。 Avoid: 功能、类型
模型用途(Purpose): 需求侧属性:评测流程中的角色岗位(出题 generator / 判卷 judge / 向量 embedding / 审核 moderation)。场景通过模型绑定为每个岗位指派一个具备相应能力的模型;一个对话能力模型可同时胜任出题与判卷两个岗位。 Avoid: 能力、角色(role 留给对话消息的 role 字段)