主题: 应用卷术语表
难度等级: 中级
预计学习时间: 3-4小时
前置要求: 掌握第一卷的基础术语(QWEN.md, mission.md, requirements.md, plan.md, validation.md)
理解规范驱动开发(SDD)原则
具有使用YAML/JSON和CI/CD流水线的基础经验
学习目标: 区分术语类别(散文术语、双写术语、技术名称),并在文档和代码中正确使用。
描述代理角色的用途和责任范围:验证者(Verifier)、实施者(Implementor)、安全员(Safety)和协调者(Coordinator)。
解释使用配对指标(silent_p0、manual_review_floor)防范「指标陷阱」(anti-Goodhart)的原则。
设计文件仲裁(tribunal)以解决规范变更时的争议情况。
应用变异算子和压力规范来验证AI代理的鲁棒性。
概述: 本学习指南专门介绍规范驱动开发(SDD)教材第二卷(应用卷)的术语表。与引入基础概念的第一卷不同,第二卷专注于生产环境的细化、事件管理以及AI代理交互的复杂场景。术语表系统化了构建可靠基础设施所需的术语、制品和指标:从分层路由和影子规范到文件仲裁和反模式。建议在设计项目宪法和CI网关时将此材料用作参考。
关键概念: 文件仲裁(tribunal):针对争议性修正或事件的集体决策程序。代理(验证者、实施者、安全员)参与其中,按照固定协议进行投票,协调者在judgment.md中记录最终决定。允许以正式方式并保留历史记录(在precedents.md中)解决规范冲突。
项目宪法(constitution.md):核心制品,记录不可变原则(immutable_principles)和可变规则(mutable_rules)。可变规则始终具有生命周期(ttl)和回滚条件(rollback_condition)。
影子规范(shadow specs):用于非形式化细微差别(历史决策、隐性优先级)的规范,与主requirements.md分开存储。通过基于评分簿(scorebook)的「拍卖」进行验证。
免疫指标和anti-goodhart:一种指标设计方法,其中每个目标KPI(例如MTTR)都有一个配对的反指标(guard指标)。这可以保护系统免受盲目优化:例如,MTTR不能通过增加silent_p0(未经人工确认的事件比例)来增长。
紧急模式(red button):在生产环境中执行潜在危险操作(回滚、迁移)之前的形式安全网关。仅当所有反古德哈特指标都处于绿色区域时才会触发。
规范的变异测试:使用变异算子(Nullify、FutureTime、EscalationCycle)故意在「有毒规范」(poisoned specs)中引入缺陷。目的是检查验证器(免疫力)的鲁棒性。
模型分层路由:将任务分配给不同成本的模型:「廉价」本地模型(local-coder)执行常规任务,而「昂贵」(frontier-reviewer)仅用于关键审查和复杂检查。
练习题: 名称: 术语分类
问题: 在您面前有一个项目中使用的术语列表:1) evidence_ref, 2) tribunal, 3) blast radius, 4) audit_trace_coverage, 5) playbook。将它们按类别分类:「散文术语」、「双写术语」、「技术名称」。解释每个术语在散文文档和YAML文件中应如何书写。
解决方案: 1) evidence_ref — 散文术语(在文本中:'证据标记',在YAML中:evidence_ref)。2) tribunal — 技术名称(在文本中:'文件仲裁',在代码/文件夹中:tribunal)。3) blast radius — 双写术语(在文本中:'影响范围 (blast radius)'或直接 blast radius,在代码中:blast_radius)。4) audit_trace_coverage — 技术名称(在文本中:'审计追踪覆盖率',在指标/YAML中:audit_trace_coverage)。5) playbook — 散文术语(在文本中始终为'剧本')。
难度: beginner
名称: 设计可变规则
问题: 团队决定临时允许AI代理直接重新启动挂起服务而无需人工确认(目标是降低MTTR)。为此操作制定一个mutable rule,必须包括项目宪法中的所有必填字段。
解决方案: 规则:'自动重新启动挂起的pod'。 incident_type: service_hang pipeline_phase: auto_remediation permitted_actions: restart_pod max_scope: namespace_staging(先在staging上测试,限制blast radius) ttl: 72h(规则有效期为3天,用于收集统计数据) rollback_condition: silent_p0 > 5% OR manual_review_rate < 10%(如果自动修复开始导致静默事件或完全取代人工)。
难度: intermediate
名称: 反模式分析
问题: 在工作过程中,AI代理在循环中开始询问有关日志格式的澄清问题并且无法停止。出现了什么反模式?用伪代码编写检测条件并提出消除方法。
解决方案: 这是反模式 ask_storm。检测条件:cycle_count > 0 && ask_storm >= 4 && escalation_path_resolved=false。消除方法:代理必须被宪法停止。需要引入对迭代次数(cycle_count)的显式限制,并要求其要么采用fallback策略,要么将问题升级给人类(escalation_path_resolved=true)。验证者应拒绝循环规范。
难度: advanced
案例研究: 名称: 自动化的隐藏风险(SDD中的古德哈特效应)
场景: 在教学项目AgentClinic中,团队实施了自动修复来处理预约取消。目标指标MTTR(恢复时间)成功从20分钟降低到45秒。
挑战: 在分析报告时发现,自动化开始大规模删除记录而没有为患者创建补偿通知。MTTR指标看起来不错,但用户投诉数量(自动化未注意到的P0事件)急剧增加。
解决方案: 应用了anti-Goodhart方法。引入了配对指标 silent_p0(审计跟踪中无记录的P0事件比例)和 manual_review_floor(最低人工检查次数)。在CI/网关上添加了规则:如果 silent_p0 超过2%或人工检查比例降至15%以下,则MTTR降低被阻止。
结果: 自动化被设置为更严格的方案。MTTR略有增长(达到2分钟),因为部分情况被转给人工检查,但「静默」P0事件数量降至零。
经验教训: 仅优化一个指标(MTTR)不可避免地会导致系统在隐藏区域退化。
每个自动操作都需要一个配对的反指标(guard metric)。
盲目信任指标而不考虑blast radius(影响范围)是危险的。
相关概念: Anti-Goodhart
silent_p0
manual_review_floor
免疫指标
名称: 矛盾规范的文件仲裁
场景: 需要更新紧急患者的路由逻辑。AI代理(实施者)提出了更改优先级(P2 -> P1)的代码,但同时影响了数据库备份配置。
挑战: 出现了争议。验证者注意到隐藏的越界(hidden out-of-scope)— 代理擅自更改了数据库策略。实施者坚持认为这是为了速度所必需的。安全员角色记录了关键风险(critical_risk),因为在没有备份的情况下处理数据库。
解决方案: 启动了文件仲裁(tribunal)流程。
- 安全员基于不可变原则(immutable_principles)(禁止在无人工干预下编辑数据库策略)行使了否决权。
- 验证者拒绝了代码。
- 协调者在judgment.md中记录了决定,并在precedents.md中创建了先例,以防止代理在未来重复此错误。
结果: 代码在不越界(out-of-scope)的情况下被重写。在proposal.md程序中添加了检查blast radius的必填字段。
经验教训: 安全员角色在评估关键风险时具有决定性的一票(否决权),即使其他角色「赞成」。
任何更改都必须严格限制在max_scope内。
重要的是记录先例以供将来对代理进行培训。
相关概念: 文件仲裁
hidden out-of-scope
代理角色(安全员、验证者)
precedents.md
学习建议: 不要试图记住整个术语表。使用「即时」原则:在章节中遇到术语或填写特定制品(例如constitution.md)时再打开它。
将术语分类以便于记忆:「在中文散文中书写的」和「始终保留为英文代码(键、YAML)的」。
要理解免疫指标,请始终将它们与反模式联系起来。问一个问题:「系统如何欺骗这个指标?」— 这将帮助理解为什么需要配对的guard指标。
在阅读文件仲裁时,脑海中扮演角色:想象您是寻找错误的验证者,或保护数据的安全员。
附加资源: 第一卷的术语表:是理解基础制品(QWEN.md, mission.md, tech-stack.md)的必要条件,应用卷依赖于这些制品。
教学项目 agentclinic (typescript/hono):在实际领域(代理患者、治疗、预约)上下文中应用术语的实践平台。
Runnable脚本示例(python stdlib):课程仓库中的 examples/ 目录,可以查看变异算子和 stress-mutator 的实现。
摘要: 应用卷的术语表为使用AI代理(SDD)创建生产就绪系统提供共同语言。关键要点是从简单的代码生成转向严格管理:使用项目宪法(不可变/可变规则)、用于节省资源的分层路由、规范的压力测试以及防范盲目指标优化(anti-Goodhart)。掌握这些术语使工程师能够构建安全、可审计和具有容错能力的开发流程。