📚 首页 / 13-capstone-project / decision-workbook.md

决策工作簿 (Decision Workbook) — Capstone 15 个决策点

用法:每个决策点先在「✍️ 你的决策」区写下你的选择与理由,再展开参考答案对照。参考答案是一种站得住的解,不是唯一解——但它必须能扛住「为什么不用更简单/更复杂方案」的追问。评分看的是推理质量(对照 rubric.md),不是与参考答案逐字一致。 场景、需求编号(R1–R10)、约束编号(C1–C8)见 README.md。术语与模块 01–12 口径一致;与官方文档冲突处以官方为准(已核验,来源逐条标注,访问日期均为 2026-08-30)。

目录:D01 模型选择 · D02 提示与上下文 · D03 RAG vs 更大上下文 · D04 工具设计 · D05 MCP vs 直接 API · D06 workflow vs agent · D07 权限与审批 · D08 人审环节 · D09 安全控制 · D10 评估体系 · D11 日志与审计 · D12 成本 · D13 可靠性 · D14 部署 · D15 故障处理


D01 模型选择(Model Selection)

🎯 学习重点:按任务复杂度与路径经济性路由模型,而非全流量追求单模型最高能力。

背景:Helios Assist 有三类负载:意图路由(高频、简单)、主回答生成(中等复杂、多轮)、疑难个案 agent(低频、多步)。现役四档(截至 2026-08-30):Haiku 4.5 $1/$5、Sonnet 5 $2/$10、Opus 5 $5/$25、Fable 5 $10/$50(input/output $/MTok;来源: https://platform.claude.com/docs/en/models/overview)。R7 要求每自动解决会话 API 成本 ≤ $0.10。

选项:

方案内容潜在问题
A全部流量用 Sonnet 5 一档到底简单;但高频简单负载为不需要的能力付费
B全部用最强(Opus/Fable)保质量质量上限高;成本超预算数倍,延迟也差
C分层路由(tiered routing):路由分类用 Haiku、主回答 Sonnet、疑难 agent 用 Opus,按 evals × 单价调档需要维护路由质量;配置复杂
D用 Legacy 便宜旧模型退役风险(deprecated 模型「可能不如 active 模型可靠」,来源: https://platform.claude.com/docs/en/about-claude/model-deprecations)

✍️ 你的决策(选什么?各档分别是什么?依据什么指标升降档?)

选择:
理由:
放弃的方案及为什么:

📖 参考答案(点击展开)

选 C 分层路由。架构师的杠杆顺序是:先在便宜模型上把 prompt/检索/工具调好,再升档(模块 02 经验法则)。落地:

放弃理由:A 让 80% 的简单流量补贴 20% 复杂流量(BEA 官方客服案例同款批评);B 违反 R7;D 引入退役与可靠性风险,且 deprecated 模型行为不受回归保障。 Tradeoff:C 的代价是路由错误会把请求送错档——所以路由本身有 evals、有「路由不确定→按高档处理」的保守策略。 回链:见 02(模型家族/定价)、10(分层路由)、08(routing)、12(evals 定升降)。


D02 提示与上下文(Prompting & Context Structure)

🎯 学习重点:稳定前缀、动态后缀、来源标注和 thinking 分档共同决定质量、缓存与延迟。

背景:同一系统要服务终端用户(语气友好、拒答范围明确)与内部坐席(信息密度高)。system prompt、few-shot、检索块、工具结果如何在上下文里排布,直接影响缓存命中与 groundedness。

选项:

方案内容潜在问题
A角色设定写进每条 user 消息开头每轮重复计费;破坏缓存前缀
B单一巨型 system prompt:角色+政策全文+工具说明+示例全部塞入缓存可命中但首轮贵;政策全文与 RAG 重复;context rot
C分层:顶层 system(角色/边界/输出规范,跨请求逐字节稳定)+ 检索块(每轮动态)+ few-shot(按意图注入小而准的示例)+ 引用规范(先引后答)前缀稳定性要求工程纪律
D全靠 extended thinking 自动展开,不管理上下文thinking 计费与延迟;不解决「知识从哪来」

✍️ 你的决策(system prompt 放什么?检索块放哪?few-shot 怎么给?缓存断点放哪?)

选择:
理由:
放弃的方案及为什么:

📖 参考答案(点击展开)

选 C。要点:

放弃理由:A 计费与缓存双重浪费;B 是「把 prompt 当数据库」——政策全文应走检索按需取(见 D03);D 混淆了推理能力与知识来源。 Tradeoff:C 的工程纪律成本高(改一个字符就破缓存);用 CI 检查 prompt 前缀 diff 来守护。 回链:见 05(提示工程/结构化输出)、03(缓存断点)、07(引用规范)、01(context rot)。


D03 RAG vs 更大上下文(RAG vs Bigger Context Window)

🎯 学习重点:用语料规模、新鲜度、权限过滤和精确 token 检索需求决定“塞”还是“检索”。

背景:知识源 8,000 页 wiki + 300 页政策 + 120 万工单摘要。Sonnet/Opus/Fable 均有 1M token 窗口(截至 2026-08-30)。官方判断:小于 200,000 token(约 500 页)的知识可以整体塞入 prompt 配合缓存,性价比可接受;但任何窗口都受 context rot(token 越多、准确率与召回率退化)困扰(来源: https://www.anthropic.com/engineering/contextual-retrieval 与 https://platform.claude.com/docs/en/build-with-claude/context-windows)。

选项:

方案内容潜在问题
A全部知识塞 1M 窗口(「窗口够大就不用 RAG」)塞不下(8000 页 ≈ 数百万 token);rot;每次更新全量重付;权限无差别暴露
B全量 RAG:所有源(wiki/政策/工单)走同一 hybrid 检索管线工程量大;但每源差异被抹平
C分源决策:wiki+政策走 RAG(hybrid + rerank + metadata filter);当轮相关的少量工单摘要按 metadata(客户 ID)过滤后拼入;超小且高频的「话术模板/边界清单」(<200k token)直接塞 system 并配缓存需要维护「塞」与「检索」的边界清单
DAgentic search:给模型搜索工具自己翻知识库逐轮工具调用延迟高;适合疑难 agent 不适合主路径

✍️ 你的决策(哪个源塞、哪个源检索?检索管线用什么组件?作废政策怎么失效?)

选择:
理由:
放弃的方案及为什么:

📖 参考答案(点击展开)

选 C 分源决策(模块 07 决策框架的直接应用):

放弃理由:A 三个硬伤——物理塞不下、rot 让「塞了也答不准」、权限模型崩坏(任何检索都不做就等于全库对每次请求可见);B 把「工单按客户隔离」这种权限敏感源和公共 wiki 混进同一条管线,安全和指标都会糊掉。 Tradeoff:C 的代价是两套知识通道,评估也要分两套(公共知识查 recall/precision,工单查权限正确性)。 回链:见 07(全链路/200k 阈值/context rot/metadata filter)、01(窗口≠记忆)、12(两层评估)。


D04 工具设计(Tool Design)

🎯 学习重点:工具应按用户任务建模,参数 schema、幂等和错误语义必须可由代码验证。

背景:R3 需要工具行动:查工单、查订单/订阅、创建工单、发起退款。C3 红线:退款执行、账户变更、数据删除不允许模型直接执行。工具描述质量直接决定模型选择质量(模块 04)。

选项:

方案内容潜在问题
A给模型一个大而全的工具 update_ticket(action, ...)参数爆炸,模型选错率高,权限粒度粗
B每个后端端点 1:1 映射成工具(30+ 个)上下文成本高;模型面对「端点思维」而非「任务思维」
C任务导向最小集(~8 个):search_tickets、get_order、create_ticket、request_refund(只创建待审批工单)、get_policy(政策检索)…每个工具名/描述/参数面向模型可理解的任务语义,错误返回可读修复线索需要一层服务端胶水
D不给工具,靠 RAG 把「该做什么」告诉用户违反 R3

✍️ 你的决策(工具清单、命名与描述原则、参数校验、错误回传格式、tool_choice 怎么用)

选择:
理由:
放弃的方案及为什么:

📖 参考答案(点击展开)

选 C,加四条工程纪律(模块 04):

  1. 任务导向命名:模型看到的是 request_refund(order_id, amount, reason) 而不是 POST /billing/v2/refunds。描述里写清何时该用/何时不该用与前置条件。
  2. 最小权限参数面:request_refund 创建的是待审批记录,不接触执行通道;金额>200 或命中风险规则时由审批门拦截(D07/D08)——C3 红线落在工具的 API 语义里,不是 prompt 里。
  3. 结构化输出 + 服务端 schema 校验:工具入参由应用校验(模块 05);tool_choice 分级——主回答默认 auto,分类步用 tool 强制、确定性步骤用 none + 代码(模块 04)。
  4. 错误也是上下文:业务错误(订单号不存在)以 is_error=True + 可读修复线索回传让模型自我修正;基础设施错误(超时)走应用层重试,不回传模型(模块 04/10;来源: https://platform.claude.com/docs/en/agents-and-tools/tool-use/handle-tool-calls,经模块 11 核验)。

放弃理由:A 是「上帝工具」反模式,权限与可审计性都差(R9 的「审计到动作粒度」做不到);B 把 API 表面积转嫁给模型,30+ 工具还吃上下文(模块 06 的 1%–5% 窗口预算教训);D 直接不满足 R3。 Tradeoff:C 的胶水层要维护;但换来权限、审计、模型准确率三收益。 回链:见 04(回路/错误回传/tool_choice)、05(schema 校验)、11(最小权限工具)。


D05 MCP vs 直接 API(MCP vs Direct API Integration)

🎯 学习重点:MCP 的收益是标准化与多 host 复用,单消费方低延迟链路未必值得协议治理成本。

背景:CRM 团队在建 MCP server(C4)。工单与订单是内部私有系统、只被 Helios Assist 消费。决策表口径见模块 06(MCP 解决的是工具的标准化发现、描述与注入,不是「更高级的调用」;来源: https://modelcontextprotocol.io/specification/2026-07-28)。

选项:

方案内容潜在问题
A全部系统都包成 MCP server(含工单/订单自建 server)协议层开销与治理成本;单消费方场景收益低
B全部直接 API 集成(含 CRM 也绕开 MCP 直连其 REST)CRM 是平台团队按 MCP 供给的,绕开=重复封装+组织摩擦
C混合:工单/订单走直接集成(原生 tool use,模块 04 模式);CRM 走 MCP connector(消费现成 server);未来新系统按「多 host 复用?现成 server?」评估边界要写成决策规则防漂移
D等 CRM MCP 成熟再统一上 MCP,现在全 direct排期耦合;CRM 上线节奏不受你控制

✍️ 你的决策(每个系统走哪条路?判断规则是什么?MCP 侧信任与治理怎么做?)

选择:
理由:
放弃的方案及为什么:

📖 参考答案(点击展开)

选 C 混合——模块 06 经验法则「核心链路直接 API + 长尾能力走 MCP」:

放弃理由:A 为了「统一」引入协议层与治理成本,单消费方不回本;B 与组织现实(C4)对着干;D 把自己的上线绑在别人的 beta 上。 Tradeoff:C 的双轨意味着两套错误处理语义(direct 工具的应用层重试 vs MCP 的协议层语义)——统一收到编排层的错误分类器(D15)。 回链:见 06(决策表/安全/上下文成本)、04(原生 tool use)、11(工具信任分级)。


D06 workflow vs agent(Workflow vs Agent)

🎯 学习重点:能固定步骤就用 workflow,只有路径无法预先编码时才用受控 agent。

背景:官方阶梯(Building Effective Agents):先找最简单的可行方案(很多应用单次调用+检索+示例就够)→ 任务清晰用 workflow → 需要模型驱动决策的灵活性才上 agent(来源: https://www.anthropic.com/engineering/building-effective-agents)。官方客服案例的价值前提是:对话流+工具行动+可度量成功标准+有意义的人类监督——不是全流量上 agent(模块 08 Bad vs Better 案例 A)。

选项:

方案内容潜在问题
A一个开放式 agent 处理全部客服请求,全套工具,自由循环简单问题也跑多轮:延迟高、token 贵、路径不可测、审计难
B全 workflow:把所有场景编成固定链覆盖不全;跨系统疑难个案走死路径
CRouting 分诊:常见咨询→单次调用+RAG(Haiku/Sonnet);查单/退款→固定 workflow(步骤+gate+审批门);跨系统疑难个案→受控 agent(步数上限、停止条件、检查点)三条路径三种运维
D全托管:上 Managed Agents beta客服实时对话不是「长时程异步」目标场景(来源: https://platform.claude.com/docs/en/managed-agents/overview)

✍️ 你的决策(流量怎么分?三条路径的边界与停止条件?谁决定升级到 agent?)

选择:
理由:
放弃的方案及为什么:

📖 参考答案(点击展开)

选 C 三层分诊(BEA 官方客服 Better 架构 + 模块 08 决策表):

  1. L1 单次调用 + RAG(预期 ~60–70% 流量):FAQ/政策问答。augmented LLM 就是官方「最简单可行方案」。
  2. L2 固定 workflow(~25–35%):查单/退款等任务。提示链:取上下文→调工具→生成回复,中间步加程序化 gate(金额>200 → 审批门;订单不存在 → 引导补信息)。延迟与路径可预测,权限校验是代码不是模型。
  3. L3 受控 agent(<10%):跨系统疑难个案(「迁移后任务全挂,帮我排查并建两个工单」)。约束:步数上限(如 12 步)+ 每步工具预算 + 停止条件(目标达成/步数耗尽/置信不足)+ 检查点落盘;不可逆动作一律走审批门(C3)。
  4. 分诊由 routing 分类器(Haiku)做,模型只辅助:分类不确定 → 保守走高档路径。升级到 L3 的触发也写成代码规则(多系统关键词、L2 工具链两次未收敛),不靠用户发现自己需要 agent。

放弃理由:A 被 BEA 点名(「只在能证明改善结果时才增加复杂度」;高频简单流量补贴低频复杂流量);B 对开放式个案硬编路径是官方同款反模式的镜像;D 目标场景不符(managed 适合长时程异步,不适合实时客服首字 5s)。 Tradeoff:三路径意味着路由错误成本——用 D10 的分路径评估兜底;路径占比是监控指标(占比漂移=知识库或产品在变)。 回链:见 08(决策阶梯/反模式/客服案例)、04(谁决定什么)、10(成本路由)。


D07 权限与审批(Authorization & Approval)

🎯 学习重点:权限必须在服务端强制,审批只覆盖低频高影响动作并保留依据。

背景:核心论断(模块 11):LLM 指令 ≠ 应用层强制——prompt 里写「不要退款超过 200」不是安全控制,是愿望。真正的控制点在:工具的服务端鉴权、参数校验、审批门、以及「模型根本拿不到的能力」。官方防线文档同样把 input screening / hardened system prompt 定位为纵深防御的层,而非唯一控制(来源: https://platform.claude.com/docs/en/test-and-evaluate/strengthen-guardrails/mitigate-jailbreaks)。

选项:

方案内容潜在问题
Asystem prompt 写全套禁令(「你不允许退款超 200」「不得访问他人订单」)提示注入一句「忽略以上」即可绕过;无任何强制力
B全部动作都要人工审批(零信任到坐席)坐席容量爆炸(C7);延迟与成本不可行
C分级强制:读类工具(查单/查工单)走服务端 OIDC 令牌 + 数据范围过滤;写类工具(建工单)走服务端策略引擎校验;执行类动作(退款>阈值、账户变更)走审批门——全部在应用层代码,模型只「申请」策略集中维护
D给模型一个「权限令牌」让它自己带着访问后端令牌一旦被注入攻击劫持,横向移动不可控;blast radius 最大

✍️ 你的决策(能力分级表、每级的控制点、工单数据的租户隔离在哪层做)

选择:
理由:
放弃的方案及为什么:

📖 参考答案(点击展开)

选 C 分级强制(模块 11 §3「真正的控制点」+ §4 最小权限清单):

能力级例子控制点(全部应用层)
读(低危)查订单、查公共政策服务端以用户 OIDC 身份调后端,返回前做字段级脱敏(C1)
读(租户敏感)查工单历史数据范围强制:检索/查询带 tenant_id 硬过滤(pre-filter,模块 07)——用户 A 的请求物理上检索不到用户 B 的工单,无论 prompt 说什么
写(中危)创建工单、发起退款申请策略引擎校验参数合法性 + 审计记录
执行(高危/不可逆)退款执行、账户变更模型无此工具。申请进入审批门(D08),由授权坐席/规则引擎执行

放弃理由:A 是模块 11 的靶子(「prompt 里写禁令」无法抵抗注入,且无法审计违规);B 违反 C7 与 R1(全审批=没有自动化);D 把访问决策交给最容易被注入的组件。 Tradeoff:策略引擎是新的关键组件——它自己要过测试与审计(R9 留痕)。 回链:见 11(指令≠强制/三层防御/最小权限)、04(审批钩子)、07(pre-filter)、06(工具信任分级)。


D08 人审环节(Human Oversight / Escalation)

🎯 学习重点:人审容量有限,应按风险升级,并把采纳、改写和拒绝回流为训练外评估数据。

背景:R4/R5 要求人审与升级;C7 限定坐席容量。人审不是「失败」,是架构一等公民(模块 10 §10.6「人工升级是架构的一等公民」)。

选项:

方案内容潜在问题
A只在出错时转人工(兜底式)高风险动作可能已经执行;用户重复问才升级
B全部回答人工过目再发延迟/成本/坐席全崩
C规则化触发 + 结构化交接:①动作级审批门(D07 高危级)②会话级升级(低置信/用户要求/情绪/合规话题)③系统级升级(降级链打穿)。交接带结构化上下文(会话摘要+已执行动作+引用证据+建议处置)触发规则要随评估调优
D置信度全交给模型自评(「你确定吗?」)模型自评校准差;注入可操纵自评

✍️ 你的决策(三类触发各列 2–3 条具体规则;交接协议字段;坐席处置结果如何回流改进)

选择:
理由:
放弃的方案及为什么:

📖 参考答案(点击展开)

选 C 三类触发 + 结构化交接:

  1. 动作级(审批门):退款 > $200;命中风险规则(如短期内多次退款申请、账户异常);任何账户变更。审批=坐席在专用 UI 看到申请卡片(金额/理由/引用的政策条款/模型置信依据),一键批准/拒绝/升级。
  2. 会话级(升级):检索无充分证据(groundedness 预估低于阈值);用户显式要求人工;情绪检测负面;合规敏感话题(法律/解约)。模型「不确定」的自评只是信号之一,触发规则以代码为准(D 的教训)。
  3. 系统级:Claude API 熔断打开 / 降级链打穿 / 超时预算耗尽 → 会话挂起进队列并告知用户。
  4. 交接协议(结构化,非纯文本):{会话摘要, 已执行动作清单, 检索证据与引用, 未决问题, 建议处置}——坐席不读 30 轮聊天记录也能接手(R5)。
  5. 回流闭环:坐席处置结果回写(采纳/改写/否决 + 原因)→ 每周进 golden dataset 候选(D10 的数据来源之一),审批拒绝案例自动生成红队测试。

放弃理由:A 把人审当异常处理,高风险前置审批无从谈起;B 数量级不可行;D 把安全阈值交给被攻击面最大的组件。 Tradeoff:触发规则过严→升级率涨破 C7;过松→R2/R4 失守。用升级率与漏判率的双指标调参(D10)。 回链:见 10(升级为一等公民)、11(人审定位)、04(human approval)、12(回流成评估数据)。


D09 安全控制(Security Controls)

🎯 学习重点:按入口、上下文、能力、出口和审计布置纵深防御,避免单点分类器迷信。

背景:攻击面(模块 11):直接注入(用户越狱)、间接注入(知识库/工单内容里藏指令——120 万历史工单是最大的间接注入面)、工具滥用、数据外泄。C1 要求 PII 不出边界。

选项:

方案内容潜在问题
A强 system prompt 禁令 + 输出关键词过滤纵深防御的一层当全部;绕过手法无限
B全隔离:人工审核所有进出模型的文本不可扩展
C纵深防御分层:入口(注入检测/输入筛查)→ 上下文(检索内容标记为数据、权限过滤)→ 能力(D07 分级+最小工具面)→ 出口(输出筛查:PII/敏感内容/外链)→ 检测(红队数据集+异常监控)每层都要维护
D沙箱执行一切工具工具是 API 调用不是代码执行,沙箱解决错问题;成本高

✍️ 你的决策(每层放什么控件?间接注入最可能的入口与缓解?红队怎么常态化?)

选择:
理由:
放弃的方案及为什么:

📖 参考答案(点击展开)

选 C 纵深防御(模块 11「三类风险 × 三层防御」框架落到本场景):

放弃理由:A 单层防线,被任一绕过即全线失守(模块 11 事故案例);B 与 R1 冲突;D 对「API 工具调用」威胁模型不对位——沙箱适合 Managed Agents 式代码执行场景(模块 08 §3.9),不是这里。 Tradeoff:每层都有漏判/误判——所以红队评估指标(注入拦截率、误伤率)进 D10,和业务指标一起权衡。 回链:见 11(全模块)、07(pre-filter)、08(沙箱的正确位置)、12(红队回归)。


D10 评估体系(Evaluation)

🎯 学习重点:检索、端到端与线上三层指标要分别设阈值并能触发回滚。

背景:R2/R6/R7 都是可量化指标;C6 要求 golden dataset 与回归流程;模块 12 的核心:无金标=盲调。官方:先定义可度量成功标准,再建从精确匹配到模型评分的评估(来源: https://platform.claude.com/docs/en/test-and-evaluate/develop-tests)。

选项:

方案内容潜在问题
A上线后看用户反馈/CSAT 调优信号慢且偏;幻觉已经发生过了
B只做端到端「问题→答案」打分检索坏了和生成坏了分不清;调参无从下手
C两层评估(模块 12/07 口径):检索层(recall@k / precision@k / MRR + 权限正确性)+ 端到端(task success / answer correctness / groundedness / 工具调用正确率 / 注入拦截率)+ 线上(deflection/升级率/成本/延迟/CSAT),三层各有阈值与回归触发建设成本最高
D全靠 LLM-as-judge 自动打分,无人工标注judge 有偏差;无金标锚点的分数漂移

✍️ 你的决策(golden dataset 从哪来、多大、三层各评什么、多少分能上、何时禁止发布)

选择:
理由:
放弃的方案及为什么:

📖 参考答案(点击展开)

选 C 三层评估:

  1. 离线-检索层:golden queries(≥300 条起步:从真实工单采样+人工标注期望块;含 TS-1042 类精确 token 用例、作废政策负例、越权访问负例)。指标:recall@20、precision@20、MRR、权限正确率(越权负例必须 100% 拦截——安全指标不允许低于 100%)。
  2. 离线-端到端:任务成功(回答解决了问题吗)、answer correctness(对金标答案)、groundedness(主张-证据对齐评分,可用 LLM-as-judge 但定期人工抽评校准,防 D 的漂移)、工具调用正确率(该调/不该调/参数对)、注入拦截率(红队集)。阈值示例(写进发布门):groundedness ≥95%(R2)、工具正确率 ≥98%、注入拦截 ≥99%。
  3. 线上:deflection、升级率、坐席否决率(D08 回流)、每会话成本(R7)、首字延迟分位(R6)、缓存命中率。回归触发:模型/检索/prompt 任一变更 → 离线全集回归;指标回退超阈值 → 自动回滚(模块 10.5)。
  4. 数据飞轮:坐席改写/否决案例每周筛入 golden 候选(D08.5);线上低置信会话抽样入集。

放弃理由:A 把用户当免费评估集(幻觉成本已付出);B 是模块 12 点名的「端到端单层陷阱」——检索层坏了会误判成「模型变笨」去调 prompt;D 缺人工锚点,judge 偏差无人发现。 Tradeoff:C 的启动成本高(首月标注投入);但 C6 本来就是约束,且数据飞轮摊薄后续成本。 回链:见 12(全模块)、07(检索指标口径)、10(回归/灰度/回滚)、05(结构化输出的 schema 校验也算评估的一部分)。


D11 日志与审计(Logging & Auditability)

🎯 学习重点:审计事件、观测日志与原始会话应分流存储,PII 与保留策略分别治理。

背景:R9 要不可抵赖审计;C1 禁止 PII 落第三方;模块 10 口径:什么该记 / 什么不能记是两个独立决策(PII 脱敏与完整留痕冲突时,存指针不存明文)。

选项:

方案内容潜在问题
A全量记录原始请求/响应到日志平台PII 泄漏面扩大;合规风险(C1 反向)
B只记错误与升级正常路径无审计;事后无从复盘幻觉来源
C分流:审计事件(工具调用/审批/升级/策略决策,结构化、append-only、带 request-id/用户/时间/依据)全量入审计平台;观测日志(trace/usage/延迟)PII 脱敏后入常规观测栈;原始会话存受控存储(加密+访问审计),日志里只放指针三套存储与保留策略要维护
D依赖 Anthropic 控制台 usage 导出当审计只有用量没有业务语义;不满足 R9 的「谁批准了什么」

✍️ 你的决策(审计事件 schema 至少 6 个字段;观测日志记什么;原始会话怎么存)

选择:
理由:
放弃的方案及为什么:

📖 参考答案(点击展开)

选 C 分流(模块 10 §10.2):

放弃理由:A 用完整留痕换合规风险(PII 明文散落观测栈);B 让正常路径变成黑盒,幻觉复盘(D10 需要)无从做起;D 缺业务语义与用户身份。 Tradeoff:三套存储的保留/销毁策略要和数据治理对齐——这本身是合规工作量。 回链:见 10(可观测/可审计/什么不能记)、11(PII/数据驻留)、12(复盘喂评估)。


D12 成本(Cost Management)

🎯 学习重点:现场按路径×轮数×token×单价×缓存系数计算,并验证加权均值预算。

背景:R7 每自动解决会话 ≤ $0.10(API 侧,按 2026-08-30 价目)。工具箱(模块 10 §10.4.2,已核验):prompt caching(写 ×1.25/×2,读 ×0.1;来源: prompt-caching 页)、Batches 半价(来源: batch-processing 页)、分层路由(D01)。示例量级:一次主回答(Sonnet 5,输入 ~8k(system+缓存块+检索 20 块×400 token)+输出 ~0.5k)全价 ≈ 2×8k/1M×… 实际算给你看——这就是本决策点要你做的算术。

选项:

方案内容潜在问题
A优化模型选择(全用 Haiku)质量不达标时 deflection 掉、升级率涨,反而更贵
B只靠缓存(前缀稳定)首轮与缓存过期仍全价;输出侧无解
C组合拳:分层路由 + 缓存设计(前缀纪律+TTL 选择)+ 输出预算(max_tokens、语气简洁规范)+ 批处理场景识别(夜间摘要/工单归档用 Batches)+ 监控(每会话成本告警)多杠杆协同调优
D先上线再优化预算 $60k 会在调优前烧穿;成本是架构属性不是后期补丁

✍️ 你的决策(算出 L1/L2/L3 每路径的每会话成本;缓存命中率假设写明;预算表)

选择:
理由:
放弃的方案及为什么:

📖 参考答案(点击展开)

选 C。成本模型(估算,价目截至 2026-08-30,Sonnet 5 $2/$10、Haiku 4.5 $1/$5,来源: models/overview):

放弃理由:A 把质量换成本,deflection 掉→升级率涨→坐席成本(更贵的人力)吃掉省的 token;B/D 都是单杠杆思维。 Tradeoff:省输出 token 的「简洁规范」可能伤 groundedness(引用变少)——指标联动监控(D10)。 回链:见 10(工具箱/决策表)、03(缓存机制/断点)、02(价目)、01(token 直觉)。


D13 可靠性(Reliability)

🎯 学习重点:按 4xx、429、5xx、超时和下游故障分类,分别选择失败、重试、熔断或降级。

背景:R8 要 99.5% 可用 + API 故障时降级可用。模块 10 三件套:Retry / Fallback / Escalation + 熔断。前提是错误分类(模块 03:4xx 不可重试类、429/5xx 可重试类、超时另算)。

选项:

方案内容潜在问题
A每处调用各自 try/except 重试三次重试风暴;预算失控;行为不一致
B全局熔断,一断全断可用性归零;违背 R8「降级可用」
C分层预算:请求级超时预算(如 20s 总、单步 8s)+ 分类重试(429/5xx 指数退避,上限入预算)+ 熔断器(连续失败开路)+ 降级链(主模型→备模型→缓存模板答案/表单收集→人工)+ 升级实现与测试复杂
D多活多区域自动切换对「上游 API 故障」有效但成本翻倍;超配

✍️ 你的决策(超时/重试/熔断参数;降级链每一级是什么、谁触发;哪级必须人工)

选择:
理由:
放弃的方案及为什么:

📖 参考答案(点击展开)

选 C 分层预算(模块 10 三件套 + D15 展开):

放弃理由:A 是模块 10 点名的重试风暴配方;B 把降级机会白白丢掉;D 用钱解决不了「上游就是挂了」的语义问题。 Tradeoff:降级链每一级都是「质量换可用」,模板答案的 groundedness 保障靠 D10 的降级模式测试覆盖。 回链:见 10(三件套/熔断/降级)、03(错误分类/退避)、04(工具错误回传)、15(故障处理 playbook)。


D14 部署(Deployment)

🎯 学习重点:状态外置、配置版本化、统一出口和分阶段灰度是快速回滚的前提。

背景:C8 要求 VPC 内部署、统一 API 出口。配置管理:dev/staging/prod 同源、模型 ID 是配置不是代码(模块 10 §10.1/10.5)。

选项:

方案内容潜在问题
A单体应用打包,配置写死在镜像环境漂移;模型升级=发版
B全 serverless(函数级)冷启动伤 R6 首字延迟;长会话状态管理复杂
C容器化编排服务(编排层无状态水平扩 + 状态外置到会话存储/队列)+ 配置中心(模型 ID/prompt 版本/阈值/工具开关全部配置项)+ 统一 Claude 出口网关(超时/重试/熔断/usage 记录集中)+ 灰度发布(1%→5%→25%→100%,指标分标签对比)组件多,运维门槛
D直接用 Managed Agents 托管运行时运行时在 Anthropic 侧,与 C8 VPC 部署/数据驻留要求冲突(截至 2026-08-30 该服务定位长时程异步,来源: managed-agents/overview)

✍️ 你的决策(拓扑、配置项清单、发布流程、回滚怎么做)

选择:
理由:
放弃的方案及为什么:

📖 参考答案(点击展开)

选 C:

放弃理由:A 每次调优都要发版,灰度不可能;B 冷启动与有状态会话打架;D 与 C8 冲突且场景不符(它是「不想自建 loop 与沙箱」的选项,不是「想要 VPC 部署」的选项)。 Tradeoff:C 的组件数带来运维复杂度——用 IaC + 部署清单管理,这是模块 10 已付过的「生产化学费」。 回链:见 10(部署/配置/灰度/回滚)、08(Managed Agents 的正确场景)、11(secrets)。


D15 故障处理(Failure Handling Playbook)

🎯 学习重点:playbook 必须写明自动动作、用户面、升级条件、恢复与演练证据。

背景:D13 定了机制,本点定预案:每个组件挂了「具体发生什么、用户看到什么、值班做什么」。模块 10 §10.3 + 模块 03 错误分类。

选项:

方案内容潜在问题
A通用兜底:「出错就转人工」人工队列被打爆;可自动恢复的也占人力
B逐 case 硬编码处理,无统一分类面多了加水;新错误类型无预案
C错误分类驱动 playbook:每类错误(Claude API 4xx/429/5xx/超时、检索服务、工具后端、MCP server、审批门、下游依赖)一行预案表(自动动作/用户面/升级条件/恢复动作),配演练维护成本;需演练保持有效
D靠监控告警人工临场处置响应时间与质量不可控;R8 的 99.5% 不可达

✍️ 你的决策(写出 ≥6 类错误的预案行;哪些进自动恢复、哪些直接升级;怎么演练)

选择:
理由:
放弃的方案及为什么:

📖 参考答案(点击展开)

选 C 分类 playbook(节选 7 行,机制对应 D13):

故障自动动作用户面升级条件恢复动作
Claude 429退避重试×2(读 Retry-After)无感(多 <5s)预算耗尽→降级链自动
Claude 5xx重试×2→熔断计数略慢熔断开→模板+转人工半开试探
超时(首字>8s)取消→降级链下一级「稍等,换个方式」连续→升级自动
检索服务不可用L1 直转人工(无证据不回答,R2 红线)「知识库暂时不可用」全量升级值班确认恢复
工具后端 5xx工具错误回传→模型改话术/换工具「工单系统暂时不可用,已记录」涉及退款→人工值班
MCP server 超时该 connector 熔断,禁用相关工具功能受限提示—平台团队值班
审批门不可用高危动作排队冻结(不是绕过!)「审批稍后处理」积压>阈值→告警值班

三条原则:①无证据不回答(检索挂了宁可升级不出编造答案——R2 优先于 R1);②高危动作宁可冻结不可绕过(审批门挂了走人工积压,不存在「临时放行」);③每次降级都是可观测事件(降级率本身是指标,异常升高=事故信号)。

演练:每季度故障注入(staging 断检索/断 API/断审批门各一轮),验证预案行为与文档一致(模块 10 的灰度测试同款纪律)。

放弃理由:A 把可自动恢复的(429)也推给人,坐席容量先崩;B 无法覆盖未枚举错误的类别;D 的 MTTR 靠运气,R8 不可达。 Tradeoff:playbook 是活文档,与 D10 的线上指标联动维护(新错误类别从告警复盘里来)。 回链:见 10(三件套/演练)、03(错误分类表)、04(工具错误回传)、08(停止条件)。


附:15 决策点 × 模块回链总表

🎯 学习重点:用回链检查每个决策是否有事实依据和前序模块支撑。
#决策点主要回链关键官方锚点
D01模型选择02 / 10 / 08 / 12models/overview;model-deprecations
D02提示与上下文05 / 03 / 07 / 01prompt-caching;citations
D03RAG vs 大上下文07 / 01 / 12contextual-retrieval;context-windows
D04工具设计04 / 05 / 11tool-use 文档族
D05MCP vs 直接 API06 / 04 / 11MCP Specification
D06workflow vs agent08 / 04 / 10Building Effective Agents
D07权限与审批11 / 04 / 07mitigate-jailbreaks(分层定位)
D08人审环节10 / 11 / 04 / 12(架构实践,模块 10 定位「一等公民」)
D09安全控制11 / 07 / 08 / 12mitigate-jailbreaks;MCP Security
D10评估体系12 / 07 / 10develop-tests(评估文档)
D11日志与审计10 / 11 / 12(模块 10 实践口径)
D12成本10 / 03 / 02 / 01prompt-caching;batch-processing;models/overview
D13可靠性10 / 03 / 04api/errors;prompt-caching(读不计 ITPM)
D14部署10 / 08 / 11managed-agents/overview(对照);model-deprecations
D15故障处理10 / 03 / 04api/errors
来源清单与访问状态:../sources/sources-13-capstone.csv(全部 VERIFIED,访问于 2026-08-30)。
📚 目录