用法:每个决策点先在「✍️ 你的决策」区写下你的选择与理由,再展开参考答案对照。参考答案是一种站得住的解,不是唯一解——但它必须能扛住「为什么不用更简单/更复杂方案」的追问。评分看的是推理质量(对照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 故障处理
🎯 学习重点:按任务复杂度与路径经济性路由模型,而非全流量追求单模型最高能力。
背景: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 经验法则)。落地:
任务成功率(golden dataset 上的 pass rate)× 单价,不是「感觉不够聪明」(模块 10)。每档发布用 pinned snapshot ID(如 claude-haiku-4-5-20251001 式带日期 ID)+ 配置项管理,升级=改配置+过回归(模块 10.5)。放弃理由:A 让 80% 的简单流量补贴 20% 复杂流量(BEA 官方客服案例同款批评);B 违反 R7;D 引入退役与可靠性风险,且 deprecated 模型行为不受回归保障。 Tradeoff:C 的代价是路由错误会把请求送错档——所以路由本身有 evals、有「路由不确定→按高档处理」的保守策略。 回链:见 02(模型家族/定价)、10(分层路由)、08(routing)、12(evals 定升降)。
🎯 学习重点:稳定前缀、动态后缀、来源标注和 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。要点:
"system" role 消息,模块 02),承载角色、行为边界(「只基于提供的证据回答,无证据就说不知道并升级」)、输出规范(结构化 JSON 或固定文案段)。cache_control 放在「跨请求不变的最后一个块」上(模块 03/10;来源: https://platform.claude.com/docs/en/build-with-claude/prompt-caching)。放弃理由:A 计费与缓存双重浪费;B 是「把 prompt 当数据库」——政策全文应走检索按需取(见 D03);D 混淆了推理能力与知识来源。 Tradeoff:C 的工程纪律成本高(改一个字符就破缓存);用 CI 检查 prompt 前缀 diff 来守护。 回链:见 05(提示工程/结构化输出)、03(缓存断点)、07(引用规范)、01(context rot)。
🎯 学习重点:用语料规模、新鲜度、权限过滤和精确 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 并配缓存 | 需要维护「塞」与「检索」的边界清单 |
| D | Agentic search:给模型搜索工具自己翻知识库 | 逐轮工具调用延迟高;适合疑难 agent 不适合主路径 |
✍️ 你的决策(哪个源塞、哪个源检索?检索管线用什么组件?作废政策怎么失效?)
选择:
理由:
放弃的方案及为什么:
📖 参考答案(点击展开)
选 C 分源决策(模块 07 决策框架的直接应用):
valid_until/superseded_by,查询时先过滤再检索,作废政策物理上不进候选集;来源: contextual-retrieval 工程文)。放弃理由:A 三个硬伤——物理塞不下、rot 让「塞了也答不准」、权限模型崩坏(任何检索都不做就等于全库对每次请求可见);B 把「工单按客户隔离」这种权限敏感源和公共 wiki 混进同一条管线,安全和指标都会糊掉。 Tradeoff:C 的代价是两套知识通道,评估也要分两套(公共知识查 recall/precision,工单查权限正确性)。 回链:见 07(全链路/200k 阈值/context rot/metadata filter)、01(窗口≠记忆)、12(两层评估)。
🎯 学习重点:工具应按用户任务建模,参数 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):
request_refund(order_id, amount, reason) 而不是 POST /billing/v2/refunds。描述里写清何时该用/何时不该用与前置条件。request_refund 创建的是待审批记录,不接触执行通道;金额>200 或命中风险规则时由审批门拦截(D07/D08)——C3 红线落在工具的 API 语义里,不是 prompt 里。tool_choice 分级——主回答默认 auto,分类步用 tool 强制、确定性步骤用 none + 代码(模块 04)。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(最小权限工具)。
🎯 学习重点: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」:
tools/list 动态发现。治理:第三方/跨团队 server 的工具描述视为不可信输入(规范安全节明说描述与注解应视为不可信,除非来自可信 server);工具级 allowlist/denylist + 人审确认高风险工具(模块 06/11;来源: MCP Specification Security 节)。放弃理由:A 为了「统一」引入协议层与治理成本,单消费方不回本;B 与组织现实(C4)对着干;D 把自己的上线绑在别人的 beta 上。 Tradeoff:C 的双轨意味着两套错误处理语义(direct 工具的应用层重试 vs MCP 的协议层语义)——统一收到编排层的错误分类器(D15)。 回链:见 06(决策表/安全/上下文成本)、04(原生 tool use)、11(工具信任分级)。
🎯 学习重点:能固定步骤就用 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:把所有场景编成固定链 | 覆盖不全;跨系统疑难个案走死路径 |
| C | Routing 分诊:常见咨询→单次调用+RAG(Haiku/Sonnet);查单/退款→固定 workflow(步骤+gate+审批门);跨系统疑难个案→受控 agent(步数上限、停止条件、检查点) | 三条路径三种运维 |
| D | 全托管:上 Managed Agents beta | 客服实时对话不是「长时程异步」目标场景(来源: https://platform.claude.com/docs/en/managed-agents/overview) |
✍️ 你的决策(流量怎么分?三条路径的边界与停止条件?谁决定升级到 agent?)
选择:
理由:
放弃的方案及为什么:
📖 参考答案(点击展开)
选 C 三层分诊(BEA 官方客服 Better 架构 + 模块 08 决策表):
放弃理由:A 被 BEA 点名(「只在能证明改善结果时才增加复杂度」;高频简单流量补贴低频复杂流量);B 对开放式个案硬编路径是官方同款反模式的镜像;D 目标场景不符(managed 适合长时程异步,不适合实时客服首字 5s)。 Tradeoff:三路径意味着路由错误成本——用 D10 的分路径评估兜底;路径占比是监控指标(占比漂移=知识库或产品在变)。 回链:见 08(决策阶梯/反模式/客服案例)、04(谁决定什么)、10(成本路由)。
🎯 学习重点:权限必须在服务端强制,审批只覆盖低频高影响动作并保留依据。
背景:核心论断(模块 11):LLM 指令 ≠ 应用层强制——prompt 里写「不要退款超过 200」不是安全控制,是愿望。真正的控制点在:工具的服务端鉴权、参数校验、审批门、以及「模型根本拿不到的能力」。官方防线文档同样把 input screening / hardened system prompt 定位为纵深防御的层,而非唯一控制(来源: https://platform.claude.com/docs/en/test-and-evaluate/strengthen-guardrails/mitigate-jailbreaks)。
选项:
| 方案 | 内容 | 潜在问题 |
|---|---|---|
| A | system 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(工具信任分级)。
🎯 学习重点:人审容量有限,应按风险升级,并把采纳、改写和拒绝回流为训练外评估数据。
背景:R4/R5 要求人审与升级;C7 限定坐席容量。人审不是「失败」,是架构一等公民(模块 10 §10.6「人工升级是架构的一等公民」)。
选项:
| 方案 | 内容 | 潜在问题 |
|---|---|---|
| A | 只在出错时转人工(兜底式) | 高风险动作可能已经执行;用户重复问才升级 |
| B | 全部回答人工过目再发 | 延迟/成本/坐席全崩 |
| C | 规则化触发 + 结构化交接:①动作级审批门(D07 高危级)②会话级升级(低置信/用户要求/情绪/合规话题)③系统级升级(降级链打穿)。交接带结构化上下文(会话摘要+已执行动作+引用证据+建议处置) | 触发规则要随评估调优 |
| D | 置信度全交给模型自评(「你确定吗?」) | 模型自评校准差;注入可操纵自评 |
✍️ 你的决策(三类触发各列 2–3 条具体规则;交接协议字段;坐席处置结果如何回流改进)
选择:
理由:
放弃的方案及为什么:
📖 参考答案(点击展开)
选 C 三类触发 + 结构化交接:
{会话摘要, 已执行动作清单, 检索证据与引用, 未决问题, 建议处置}——坐席不读 30 轮聊天记录也能接手(R5)。放弃理由:A 把人审当异常处理,高风险前置审批无从谈起;B 数量级不可行;D 把安全阈值交给被攻击面最大的组件。 Tradeoff:触发规则过严→升级率涨破 C7;过松→R2/R4 失守。用升级率与漏判率的双指标调参(D10)。 回链:见 10(升级为一等公民)、11(人审定位)、04(human approval)、12(回流成评估数据)。
🎯 学习重点:按入口、上下文、能力、出口和审计布置纵深防御,避免单点分类器迷信。
背景:攻击面(模块 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(红队回归)。
🎯 学习重点:检索、端到端与线上三层指标要分别设阈值并能触发回滚。
背景: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 三层评估:
放弃理由:A 把用户当免费评估集(幻觉成本已付出);B 是模块 12 点名的「端到端单层陷阱」——检索层坏了会误判成「模型变笨」去调 prompt;D 缺人工锚点,judge 偏差无人发现。 Tradeoff:C 的启动成本高(首月标注投入);但 C6 本来就是约束,且数据飞轮摊薄后续成本。 回链:见 12(全模块)、07(检索指标口径)、10(回归/灰度/回滚)、05(结构化输出的 schema 校验也算评估的一部分)。
🎯 学习重点:审计事件、观测日志与原始会话应分流存储,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):
{event_id, request_id, session_id, actor(用户/坐席/系统), action(工具名/审批决定/升级), input_digest(参数摘要), policy_basis(策略规则ID), outcome, timestamp, model_id, path(L1/L2/L3)}。不可抵赖=事件链完整:谁在哪个策略依据下批准了哪笔退款,一条链查到底。放弃理由:A 用完整留痕换合规风险(PII 明文散落观测栈);B 让正常路径变成黑盒,幻觉复盘(D10 需要)无从做起;D 缺业务语义与用户身份。 Tradeoff:三套存储的保留/销毁策略要和数据治理对齐——这本身是合规工作量。 回链:见 10(可观测/可审计/什么不能记)、11(PII/数据驻留)、12(复盘喂评估)。
🎯 学习重点:现场按路径×轮数×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 直觉)。
🎯 学习重点:按 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)。
🎯 学习重点:状态外置、配置版本化、统一出口和分阶段灰度是快速回滚的前提。
背景: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:
examples/capstone_skeleton.py 的做法)。放弃理由:A 每次调优都要发版,灰度不可能;B 冷启动与有状态会话打架;D 与 C8 冲突且场景不符(它是「不想自建 loop 与沙箱」的选项,不是「想要 VPC 部署」的选项)。 Tradeoff:C 的组件数带来运维复杂度——用 IaC + 部署清单管理,这是模块 10 已付过的「生产化学费」。 回链:见 10(部署/配置/灰度/回滚)、08(Managed Agents 的正确场景)、11(secrets)。
🎯 学习重点: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(停止条件)。
🎯 学习重点:用回链检查每个决策是否有事实依据和前序模块支撑。
| # | 决策点 | 主要回链 | 关键官方锚点 |
|---|---|---|---|
| D01 | 模型选择 | 02 / 10 / 08 / 12 | models/overview;model-deprecations |
| D02 | 提示与上下文 | 05 / 03 / 07 / 01 | prompt-caching;citations |
| D03 | RAG vs 大上下文 | 07 / 01 / 12 | contextual-retrieval;context-windows |
| D04 | 工具设计 | 04 / 05 / 11 | tool-use 文档族 |
| D05 | MCP vs 直接 API | 06 / 04 / 11 | MCP Specification |
| D06 | workflow vs agent | 08 / 04 / 10 | Building Effective Agents |
| D07 | 权限与审批 | 11 / 04 / 07 | mitigate-jailbreaks(分层定位) |
| D08 | 人审环节 | 10 / 11 / 04 / 12 | (架构实践,模块 10 定位「一等公民」) |
| D09 | 安全控制 | 11 / 07 / 08 / 12 | mitigate-jailbreaks;MCP Security |
| D10 | 评估体系 | 12 / 07 / 10 | develop-tests(评估文档) |
| D11 | 日志与审计 | 10 / 11 / 12 | (模块 10 实践口径) |
| D12 | 成本 | 10 / 03 / 02 / 01 | prompt-caching;batch-processing;models/overview |
| D13 | 可靠性 | 10 / 03 / 04 | api/errors;prompt-caching(读不计 ITPM) |
| D14 | 部署 | 10 / 08 / 11 | managed-agents/overview(对照);model-deprecations |
| D15 | 故障处理 | 10 / 03 / 04 | api/errors |
来源清单与访问状态:../sources/sources-13-capstone.csv(全部 VERIFIED,访问于 2026-08-30)。📚 目录