docs(domain): add domain glossary CONTEXT.md and first ADRs
Some checks failed
CI / test (push) Failing after 51s

拷问会话产出:14 条核心术语定义(评测对象/场景/用例/轮次/通过率/模型能力·用途等),
以及两项决策记录——场景版本化的可比性语义(ADR-0001)、通过率含执行失败的口径(ADR-0002)。
This commit is contained in:
sinohqb 2026-07-28 21:45:58 +08:00
parent c2bc56effd
commit e33922c3fe
3 changed files with 93 additions and 0 deletions

67
CONTEXT.md Normal file
View File

@ -0,0 +1,67 @@
# 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_: 成功率、达标率
## 模型配置
**模型能力Capability**:
供给侧属性:一个已接入模型本身能干什么(对话 / 向量 / 审核)。描述模型,不描述评测流程。
_Avoid_: 功能、类型
**模型用途Purpose**:
需求侧属性:评测流程中的角色岗位(出题 generator / 判卷 judge / 向量 embedding / 审核 moderation。场景通过模型绑定为每个岗位指派一个具备相应能力的模型一个对话能力模型可同时胜任出题与判卷两个岗位。
_Avoid_: 能力、角色role 留给对话消息的 role 字段)

View File

@ -0,0 +1,14 @@
# 场景版本化:对比报告的可比性以场景版本为准
场景可编辑,导致同一 scenario_id 的两次运行可能基于不同"考纲"用例集、规则、模型绑定v0.4 的"同场景即可对比"约束不够严格。决定引入场景版本仅考纲字段cases / model_bindings / llm_config变更时递增版本号名称、描述、标签等元数据编辑不升版对比报告要求同场景且同版本才严格可比。
## Considered Options
- 任何编辑都升版 — 被否:改描述错字也会断开可比性,过于粗暴
- Run 快照考纲指纹比对(无版本号字段)— 被否:无显式版本号,用户无法在 UI 上直观选择"同一版"的运行
- 交集对齐 + 单边标注 — 被否:掩盖考纲漂移,对比结论可信度存疑
## Consequences
- 数据模型需加 scenario version 字段Run 需记录所用版本v0.5 实施项,尚未实现)
- 动态用例每次运行题目不同不影响可比性——可比性单位是"同考纲"(同场景同版本),不是"同考卷"

View File

@ -0,0 +1,12 @@
# 通过率含执行失败:故障也是质量问题
用例失败有两类原因:智能体回答不达标(规则判负)和通道故障/超时(执行失败)。决定通过率分母不剔除执行失败——评测采用最终用户视角,"没收到回复"与"回复不合格"同样是服务质量不达标。
## Considered Options
- 分母排除执行失败、单独计执行失败率 — 被否:会让基础设施故障期间的报告显得"质量正常",掩盖用户实际感受到的不可用
- 报告仅做拆分提示、分母不变 — 部分吸收:报告可以展示失败原因拆分,但通过率口径不变
## Consequences
- 网络抖动会拉低通过率——这是刻意的,不要"修复";排查时看报告中的错误明细区分原因