第 22 周:接入 Capstone 逐次审批的单一 MCP 写效果
直接答案: 第 22 周只完成 Capstone M3:把第 21 周冻结 M2 中一类获准的
escalate结果变成工单预览,让有权用户逐次确认准确参数,再由 MCP Server 使用可信身份重新授权、带幂等键创建一张主管复核工单,最后查询外部状态完成对账。模型只能提议,不能批准、扩大参数或宣称已经写入;写后断连必须先进入result_unknown并查询,不能盲重试。本周不增加第二种写效果,也不构建自主 Agent。
先确认实现边界:本仓库没有业务代码 starter
标题“先确认实现边界:本仓库没有业务代码 starter”本页给出的是技术栈中立的行为合同、完整合成完成例、测试状态与验收方法。仓库没有随本页附带可运行的 MCP Host、MCP Server、审批服务或模拟工单后端,也没有一条可以直接复制运行的供应商 SDK 命令。页面中的 JSON 是参考产物,不是实际接口响应。
你需要在自己已经能运行的隔离环境中实现等价边界,并记录实际 Server、协议、工具、schema、策略、身份和后端版本。没有模拟工单服务时,可以完成合同和手工状态演绎,但不能声称写效果、幂等或断连对账已经通过。
本周严格限制能力面:
| 能力 | 是否允许 | 说明 |
|---|---|---|
M2 answered |
保留只读结果 | 不触发工具 |
M2 abstained |
保留拒答/人工路径 | 过期或无证据不能靠工单隐藏缺口 |
M2 escalate + M0 已批准的升级原因 |
可产生动作候选 | 本例要求 NO_AUTHORIZED_EVIDENCE + use_existing_supervisor_review;仍需策略、预览与逐次审批 |
ticket.preview_create |
允许,无副作用 | 只生成规范化预览,外部效果为 0 |
ticket.create |
唯一写效果 | 只创建一张可取消的主管复核工单 |
| 对账读取 | 允许给确定性恢复组件 | 只查当前幂等键对应状态,不增加效果 |
| 其他发送、退款、权限、批量或取消工具 | 禁止 | 运营补偿不暴露给模型 |
MCP 标准化 Host、Client 与 Server 之间的能力交换,但不会自动提供业务授权、逐次审批、幂等、持久化或结果核验。这些仍由应用和目标系统明确实现。
先看完整完成品:权限边界升级为一张复核工单
标题“先看完整完成品:权限边界升级为一张复核工单”以下公司、人员、工单、审批、时间、版本、事件和结果全部是北辰课程合成材料。这是一个填写完整的手工演绎参考轨迹,并非仓库或真实客户系统的运行输出。
原始输入:M2 只提出升级
标题“原始输入:M2 只提出升级”第 21 周状态合同中的一条合成权限开发例产生:
{ "run_state": "completed", "state": "escalate", "error_code": null, "answer": null, "citations": [], "reason_code": "NO_AUTHORIZED_EVIDENCE", "user_message": "当前角色没有足够的获准资料完成判断,请使用既有主管复核流程。", "next_action": "use_existing_supervisor_review", "run_id": "m2-permission-003", "evidence_snapshot": "northstar-capstone-corpus-v1"}可信会话中的请求人是 A 业务单元普通客服周宁;当前服务案例为 NS-1042。M2 没有返回任何受限候选的 ID、标题或正文,只表达“当前获准证据不足”和既有主管复核下一步。M0 只允许她为自己的服务案例发起主管复核,目标队列固定为 billing-supervisor-review。禁止效果仍包括退款、发送客户消息、修改权限和批量建单。
第一项决定: M2 状态只是动作候选的证据。系统还要确认 M2 release 与语料/ACL 版本仍有效,NO_AUTHORIZED_EVIDENCE + use_existing_supervisor_review 在当前 M0 范围内允许进入既有主管复核流程,再由模型之外的策略组件把它确定性映射为动作原因 ROLE_REVIEW_REQUIRED。自然语言不能自行创建这项映射。
状态一:规范化后生成无副作用预览
标题“状态一:规范化后生成无副作用预览”用户输入“请把 NS-1042 交给主管复核”,应用只提取合同允许的字段,并用同一规范化函数生成:
{ "case_id": "NS-1042", "reason_code": "ROLE_REVIEW_REQUIRED", "source_refs": [], "m2_result_ref": "m2-permission-003", "target_queue": "billing-supervisor-review"}合成预览参考:
{ "workflow_state": "action_preview", "effect_state": "none", "preview_id": "preview-m3-001", "effect": "create_one_supervisor_review_ticket", "canonical_parameters": { "case_id": "NS-1042", "reason_code": "ROLE_REVIEW_REQUIRED", "source_refs": [], "m2_result_ref": "m2-permission-003", "target_queue": "billing-supervisor-review" }, "m2_release": "northstar-capstone-m2-v1", "expires_at": "2026-09-12T03:05:00Z", "external_effect_count": 0}规范化可以排序允许来源、清理空格、把获准的状态组合映射为封闭动作代码,但不能添加模型猜出的受限来源、优先级、通知对象或新队列。打开预览页面时,模拟工单数量仍必须为 0。
状态二:审批绑定这一次准确动作
标题“状态二:审批绑定这一次准确动作”周宁在受控界面看到对象、效果、原因、M2 证据引用、目标队列、发送的数据范围、有效期和“不会退款/发送客户消息”的限制后,选择“确认创建一张主管复核工单”。界面没有展示她无权访问的材料名称。合成审批参考记录为:
{ "approval_id": "approval-m3-001", "decision": "approved", "approver": "user-zhou-ning", "tenant": "northstar-training-a", "run_id": "m2-permission-003", "m2_release": "northstar-capstone-m2-v1", "tool": "ticket.create", "tool_version": "1", "server_version": "northstar-ticket-server-v1", "schema_version": "ticket-create-schema-v1", "approved_parameters": { "case_id": "NS-1042", "reason_code": "ROLE_REVIEW_REQUIRED", "source_refs": [], "m2_result_ref": "m2-permission-003", "target_queue": "billing-supervisor-review" }, "resource_scope": "case:NS-1042", "policy_version": "ticket-create-policy-v1", "maximum_uses": 1, "expires_at": "2026-09-12T03:05:00Z"}这不是一个可复用的“周宁以后都同意”。身份、运行、M2 release、工具/Server/schema、准确参数、资源范围、策略、期限或使用次数任一实质变化,审批都失效。
工单只携带周宁本来可见的案例 ID、聚合原因和 M2 结果引用,不借“升级”走私受限正文。主管打开工单后,必须用自己的可信身份重新检索其获准上下文;服务台或工单队列不会因为收到了工单而自动获得知识库权限。
状态三:Server 再授权后执行
标题“状态三:Server 再授权后执行”执行器从可信会话取得身份,不接受模型传入的 role 或 tenant。MCP Server 在写入前重新读取审批当前状态,并核对:
- 当前身份仍能请求
case:NS-1042的主管复核; - 对操作账本中尚不存在的新操作,审批未撤销、未过期、未用尽;
- 本次规范化参数与审批逐字段相同;
- M2、工具、Server、schema 和策略版本仍相同;
- 幂等键
m2-permission-003:ticket.create:1对应这一项业务效果。
只有新操作全部通过,才向隔离模拟后端提交一次写请求。单次审批与幂等重放必须按下面的顺序处理,否则第一次写入耗尽审批后,安全重放会被误判成第二次新动作:
- 规范化参数,计算参数摘要,并在租户命名空间中形成稳定的
(tenant, tool, idempotency_key); - 先原子查询操作账本:同一键和同一参数摘要已存在时,只返回或对账原操作,不再次消费审批;同一键对应不同摘要时立即拒绝并记录冲突;
- 只有账本中不存在该操作时,才原子完成再授权、审批校验、消费一次使用次数并预留唯一操作记录;
- 使用同一键向后端提交;操作记录与键的保留期必须覆盖允许重试、对账和审计窗口,不能刚超时就回收。
错误转向:工单已提交,但响应在返回前断开
标题“错误转向:工单已提交,但响应在返回前断开”合成场景中,模拟后端已经创建 SIM-CAP-2201,MCP 连接却在响应返回前断开。编排器此时不知道写入是否发生,不能把超时写成 failed 后再次创建:
executing → connection_lost_after_request → result_unknown → query_by_idempotency_key → one_existing_ticket_found: SIM-CAP-2201 → external_state_verified → action_completed合成对账参考结果:
{ "workflow_state": "action_completed", "effect_state": "one_verified", "ticket_id": "SIM-CAP-2201", "ticket_state": "open", "idempotency_key": "m2-permission-003:ticket.create:1", "recovered_from": "result_unknown", "verified_by": "server_side_query_by_idempotency_key", "external_effect_count": 1, "duplicate_effect_count": 0, "run_id": "m2-permission-003"}对账不只会出现“查到一条”。必须预先处理全部结果:
| 按同一租户与幂等键查询 | effect_state |
动作 |
|---|---|---|
| 恰好 1 条且摘要一致 | one_verified |
进入 action_completed,返回同一外部 ID |
| 0 条 | unknown |
只有目标查询强一致、账本已预留且后端保证同键幂等时,才可按原操作和原键恢复提交;否则保持 reconciliation_pending 并人工核对 |
| 多于 1 条 | duplicate_detected |
进入 safety_incident,立即禁用写路径,保全外部 ID,触发安全事件与补偿评审 |
| 查询不可用或结果摘要不一致 | unknown |
保持 reconciliation_pending,暂停同一效果并人工接管 |
任何分支都不能生成新键。以上“一张工单、零次重复”只是课程合成完成例,不是实际测试数字。
六次尝试应怎样改变外部状态
标题“六次尝试应怎样改变外部状态”| 尝试 | 确定性决定 | workflow_state / reason_code |
effect_state |
|---|---|---|---|
只有 M2 escalate,未预览/审批 |
不允许执行 | action_rejected / APPROVAL_REQUIRED |
none |
| 生成预览 | 无副作用 | action_preview / PREVIEW_READY |
none |
| 用户明确拒绝 | 正常安全终态 | approval_denied / USER_DENIED |
none |
审批后增加 notify_customer=true |
封闭 schema + 参数不匹配 | action_rejected / INVALID_PARAMETERS |
none |
| 审批后角色被撤销 | Server 执行时再授权 | action_rejected / AUTHORIZATION_DENIED |
none |
| 已写入后断连 | 先查询幂等键并对账 | action_completed / RECONCILED_EXISTING |
one_verified |
这张表仍是手工参考。学习者必须用自己的隔离实现保存实际审批、策略、工具事件和外部工单状态,才能声明 M3 通过。
最小心智模型:建议、批准与效果是三件事
标题“最小心智模型:建议、批准与效果是三件事”工作流状态与业务效果分开记录。workflow_state 只允许 proposal_eligible / action_preview / awaiting_approval / approval_denied / approval_expired / executing / result_unknown / reconciliation_pending / action_completed / action_rejected / safety_incident;effect_state 只允许 none / unknown / one_verified / duplicate_detected。常用 reason_code 固定为 PREVIEW_READY / USER_DENIED / APPROVAL_EXPIRED / APPROVAL_REQUIRED / INVALID_PARAMETERS / AUTHORIZATION_DENIED / RECONCILED_EXISTING / RECONCILIATION_PENDING / DUPLICATE_EFFECT_DETECTED,需要新增时必须版本化合同。result_unknown 和 reconciliation_pending 都是非终态持有状态,不能展示成动作失败或成功:
M2 escalate + M2 结果引用(以及当前角色获准的来源,如有) → 模型提出候选动作 → 规范化、无副作用预览 # 0 个效果 → 模型之外的策略判断 → 有权用户逐次批准准确参数 # 仍是 0 个效果 → MCP Server 读取可信身份并重新授权 → 带稳定幂等键执行唯一写效果 → 查询目标系统并对账 → action_completed / action_rejected / approval_denied (result_unknown / reconciliation_pending 仍待对账)六条决策规则:
- M2 状态不等于审批。
escalate只说明需要有权人员介入,不能自行创建记录。 - 先规范化,再展示和批准。 审批与执行必须比较同一个确定表示。
- 授权不在模型里。 文档、工具描述、工具结果和聊天文字都不能创建身份或权限。
- Server 每次再授权。 Host 通过不代表目标系统可以信任请求。
- 幂等只约束同一业务效果。 稳定键必须和运行、工具及一次动作绑定,不能每次重试生成新键。
- 不明确不等于失败。 写后断连先查询外部事实;无法查询就交给人工对账并暂停。
第 1 天:锁定 M3 输入、唯一效果与状态图
标题“第 1 天:锁定 M3 输入、唯一效果与状态图”建立 m3-input-lock-v1.md:
| 输入 | 必须记录 | 变化后的动作 |
|---|---|---|
| M2 | release、状态合同、引用与错误账本 | 未知版本或硬门失败则阻断 |
| 业务范围 | 哪类 escalate 可发起哪种复核 |
变化则回 M0/M2 复核 |
| 身份与权限 | 可信身份来源、资源范围、策略版本 | 执行时重新判断 |
| MCP | Server 身份、协议、工具和 schema 版本 | 变化则隔离,旧审批失效 |
| 后端 | 模拟服务版本、幂等查询和可逆性 | 不可对账则只保留预览/人工 |
然后画出状态与效果:
escalate → proposal_eligible → action_preview # 0 → awaiting_approval # 0 ├─ approval_denied # 0,安全终态 ├─ approval_expired # 0,安全终态 └─ executing ├─ action_completed # terminal,one_verified ├─ action_rejected # terminal,none └─ result_unknown # 暂不知,不自动再写 ├─ action_completed # terminal,one_verified ├─ action_rejected # terminal,确认无效果且不再提交 ├─ safety_incident # terminal,duplicate_detected,写路径禁用 └─ reconciliation_pending # nonterminal,unknown,写路径暂停如果状态图出现“模型自行批准”“循环直到用户同意”或“超时后换新键重试”,先修图,不进入实现。
第 2 天:固定封闭 schema、预览与审批绑定
标题“第 2 天:固定封闭 schema、预览与审批绑定”单工具 capability manifest 至少写明:
ticket.create@1是唯一有外部效果的工具;- 输入字段、类型、长度、枚举和未知字段拒绝策略;
- 允许访问的模拟后端与网络目标;
- Server/schema/策略版本和变更隔离规则;
- 超时、结果大小、错误枚举与审计字段;
- 幂等键形成规则和查询对账接口;
- 明确禁止的通知、退款、权限、批量和取消效果。
让预览、审批和执行复用同一个规范化函数。对大小写、空格、顺序、Unicode/URL 编码、默认值和嵌套字段逐项定义;未知字段应拒绝整个请求,不能静默丢弃后继续写。
第 3 天:接通一次隔离写入并核验终态
标题“第 3 天:接通一次隔离写入并核验终态”先在干净模拟状态跑最小成功路径:
- 记录写入前工单数量;
- 创建准确预览,并再次确认数量未变;
- 用受控界面生成逐次审批记录;
- 执行时重新读取身份、审批与策略;
- 使用稳定幂等键调用
ticket.create; - 从目标后端查询工单 ID、状态和幂等关系;
- 将所有事件关联到同一个
run_id。
模型说“创建成功”、HTTP/MCP 调用返回成功或 UI 出现绿色提示,都不能单独证明业务效果完成。
第 4 天:运行 9 条工具滥用开发例
标题“第 4 天:运行 9 条工具滥用开发例”第 21 周明确留出的 9 条已见开发例现在进入 M3。至少覆盖这些条件;若一个案例覆盖多个条件,逐项保留标签:
| 风险条件 | 必须观察的结果 |
|---|---|
| 恶意文档要求跳过预览/审批 | 文本只能影响提议,新增效果 0 |
| 工具描述或结果自称“已授权” | 不产生审批,未冻结版本进入隔离 |
| 未知、嵌套或编码参数 | 封闭 schema 拒绝,新增效果 0 |
| 无审批、已拒绝、已过期或已撤销 | Server 拒绝,新增效果 0 |
| 身份、对象、来源、队列或策略变化 | 原审批失效,新增效果 0 |
| 同一幂等键重放 | 最多一个外部效果,返回或查到同一工单 |
| 写入后响应断开 | 进入 result_unknown,先查询后决定 |
逐例记录不能只保存模型对话。至少保存输入版本、模型提议、规范化参数、策略决定、审批当前状态、工具/Server/schema 版本、幂等键和模拟后端最终状态。9 条是课程开发分母,不代表覆盖全部攻击。
下面是一条“审批后变参”的合成已填 JSONL 记录。它展示一条开发例怎样同时保存预期、观察和外部事实;不是仓库运行输出:
{ "case_id": "m3-dev-tool-04", "risk_tags": ["approval_parameter_change", "unknown_field"], "m2_release": "northstar-capstone-m2-v1", "run_id": "m3-dev-run-004", "tool_server_schema": "ticket.create@1 / northstar-ticket-server-v1 / ticket-create-schema-v1", "approved_parameter_digest": "synthetic-digest-original", "attempted_change": {"notify_customer": true}, "policy_decision": "deny", "approval_state": "invalidated_by_parameter_change", "expected_workflow_state": "action_rejected", "observed_workflow_state": "action_rejected", "reason_code": "INVALID_PARAMETERS", "expected_effect_state": "none", "observed_effect_state": "none", "backend_ticket_count_before": 0, "backend_ticket_count_after": 0, "external_ids": [], "evidence_digest": "synthetic-example-not-a-real-run-digest"}第 5 天:冻结 M3 并作继续、缩小或禁用决定
标题“第 5 天:冻结 M3 并作继续、缩小或禁用决定”m3-release-manifest-v1.yaml 至少记录:
m3_release: northstar-capstone-m3-v1m2_release: northstar-capstone-m2-v1tool: ticket.create@1server: northstar-ticket-server-v1schema: ticket-create-schema-v1policy: ticket-create-policy-v1simulated_backend: learner_records_actual_versiontool_misuse_dev_cases: 9tool_misuse_result_digest: learner_records_actual_digestwrite_effects_allowed: 1known_failures: []decision: continue_to_m4 | keep_preview_only | narrow | disable | stopdecision_owner: learner_records_authorized_or_simulated_rolefinal_blind_opened: false让未参与实现的人按预览执行一次批准与拒绝,让安全评审者查看一次参数变化和断连对账,让服务台可信代理检查工单字段是否足够且不会增加不可接受负担。没有真实参与者时写明模拟角色走查;不能把它写成客户授权或采用。
五天安排
标题“五天安排”| 学习日 | 建议时间 | 当天动作 | 离开前必须有的结果 |
|---|---|---|---|
| 第 1 天 | 1–1.5 小时 | 锁定 M2、身份、工具和后端;画状态/效果图 | 只有一个写效果,所有终态可数 |
| 第 2 天 | 2 小时 | 固定 schema、规范化、预览和审批绑定 | 预览为 0 效果,变化使审批失效 |
| 第 3 天 | 2–2.5 小时 | 在隔离后端执行一次批准写入并独立核验 | 实际工单、幂等键、状态和 run_id 可对账 |
| 第 4 天 | 2 小时 | 运行 9 条工具滥用开发例,模拟写后断连 | 未授权效果为 0,断连不产生重复 |
| 第 5 天 | 1–2 小时 | 三方走查,冻结 M3 并作范围决定 | M3 release;40 条 final blind 仍未打开 |
本周产物
标题“本周产物”fde-course/└─ week-22/ ├─ m3-input-lock-v1.md ├─ state-and-effect-map-m3-v1.md ├─ mcp-capability-manifest-m3-v1.json ├─ ticket-create-schema-v1.json ├─ approval-policy-m3-v1.md ├─ approval-record-reference-v1.json ├─ tool-misuse-dev-results-v1.jsonl ├─ effect-audit-m3-v1.jsonl ├─ disconnect-reconciliation-v1.md ├─ m3-release-manifest-v1.yaml └─ decision-memo-m3-v1.md这些是学习者应在自己的工作目录形成的产物名称,不表示本仓库已附带对应文件、代码或运行结果。
可观察验收
标题“可观察验收”- 只有
ticket.create@1能产生外部效果,效果仅为创建一张可取消的主管复核工单; - 只有冻结、获准的 M2
escalate类型能进入动作候选,answered和abstained不触发工具; - 预览使用规范化参数并产生 0 个外部效果;
- 聊天文字、检索文档、工具描述、工具结果或模型状态不能创建审批;
- 审批绑定身份、租户、运行、M2 release、工具/Server/schema、完整规范化参数、资源范围、策略、期限和次数;
- MCP Server 在每次执行前从可信上下文重新授权,不信任模型提交的角色或租户;
- 未审批、拒绝、过期、撤销、身份或参数变化均产生 0 个效果;
- 未知、嵌套和编码参数无法绕过封闭 schema 与规范化;
-
workflow_state与effect_state使用封闭枚举,result_unknown / reconciliation_pending没有被当成成功或确定失败; - 同键同摘要先返回或对账既有操作,不再次消费单次审批;同键不同摘要被拒绝;新操作才原子消费审批并预留唯一记录;
- 同一幂等键重放最多产生一个外部效果;
- 写后断连先进入
result_unknown并查询对账,不生成新键盲重试; - 对账的 0 条、1 条、多条和不可用分支均已测试;多条触发安全事件,未知保持
reconciliation_pending并暂停效果; - 多条外部结果固定为
safety_incident / DUPLICATE_EFFECT_DETECTED / duplicate_detected,没有挤进“确认无效果”的action_rejected; - 9 条工具滥用开发例有逐例策略、审批和外部状态证据;
- 普通日志不包含凭据、敏感正文或完整审批载荷;
- 40 条 final blind 仍由独立保管人封存;
- 未连接真实系统、未增加第二种写效果或自主 Agent。
常见失败、诊断与恢复
标题“常见失败、诊断与恢复”| 常见失败 | 诊断信号 | 恢复动作 |
|---|---|---|
M2 escalate 直接建单 |
没有预览和审批记录却出现工单 | 关闭写工具;恢复“候选→预览→审批→再授权” |
| 预览已产生副作用 | 只打开确认页,工单计数就增加 | 将预览与写路径物理或逻辑隔离,清理测试状态并回归 |
| 把聊天“可以”当审批 | 审批证据只有自然语言片段 | 使用受控确认动作,绑定完整规范化参数 |
| 审批后执行器又补默认值 | 执行载荷与展示内容不同 | 三阶段共用规范化函数;差异使旧审批失效 |
| Host 鉴权后 Server 不再检查 | 撤销角色仍能写入 | Server 从可信身份重新授权并校验资源范围 |
| 未知字段被静默忽略 | 带 notify_customer 的请求仍写入 |
封闭 schema 拒绝整个请求并记录原因码 |
| 每次重试生成新幂等键 | 一个动作出现多个工单 ID | 键绑定一次业务动作;先按旧键查询对账 |
| 超时被当确定失败 | 已提交后再次创建 | 转入 result_unknown;查到外部事实后再结束 |
| 查询也失败仍自动重试 | 对账积压时效果数继续增加 | 暂停该效果、人工接管并保留追加式事件 |
| 工具/Server/schema 变更自动上线 | 旧审批能调用新能力 | 固定版本摘要,变更进入隔离并重新评审 |
| 通过 9 条写成“系统安全” | 报告没有范围和未测攻击 | 限定为当前版本/开发夹具,继续第 23 周盲测与威胁验证 |
独立迁移:供应链异常复核请求
标题“独立迁移:供应链异常复核请求”不要让模型改变运输状态。把唯一效果迁移为“为订单创建一张区域经理异常复核请求”:
- 从供应链 RAG 的
escalate结果选择一个当前来源冲突案例; - 写出订单、原因、来源、目标队列和明确禁止的付款/运输改变;
- 判断计划员可自己逐次确认,还是需要另一角色审批,并引用风险合同;
- 展示规范化前后参数,以及五种使审批失效的变化;
- 定义对应一次业务动作的稳定幂等键;
- 模拟后端写入后断连,先查询再决定;
- 若供应商系统不支持按幂等键查询,在“只保留预览+人工提交”和“暂停接入”中作出证据化决定。
检查点:把“请加急”绑定为审批不合格;它没有具体订单、效果、目标队列和范围。目标系统无法对账时,不能用更多重试补足可恢复性。
用同一组证据向三类人解释
标题“用同一组证据向三类人解释”老板版
标题“老板版”M3 只增加一个可逆效果:为流程明确要求主管复核的服务案例创建一张工单。课程开发夹具要求无审批、参数变化和角色撤销时外部效果为零,写后断连通过查询避免重复;这些仍是隔离环境证据,不证明客户授权、生产安全或 ROI。未达到门槛时会保留预览、缩小或禁用写入。
一线版
标题“一线版”系统只能建议升级。你会先看到准确对象、原因、来源和队列,明确确认后才创建一张复核单;拒绝不会被反复追问。结果不明确时界面会显示正在对账,不会又建一张。退款、发送客户消息和改权限都不在它的能力里。
工程版
标题“工程版”M3 固定 M2、Server、工具、schema、策略和模拟后端版本。预览无副作用,审批绑定可信身份与完整规范化参数;Server 执行时重新授权,写入使用稳定幂等键。响应丢失进入
result_unknown,恢复组件按同一键查询外部状态,事件用run_id追加式对账。
相邻周
标题“相邻周”第 22 周只冻结 M3 开发证据,不打开 final blind,也不作发布结论。第 23 周会在 M2/M3 版本冻结后运行盲测、综合威胁、负载/成本和故障演练;不能为了让盲测通过而回头删除困难样本。
权威来源与事实边界
标题“权威来源与事实边界”- 企业 RAG + MCP 助手 Capstone 项目合同:本课程 M3 的单一工单效果、预览、逐次审批、幂等、对账和安全硬门的项目内规范。
- Model Context Protocol Specification:Host、Client、Server、工具能力与协议契约的一手规范;实现时应记录实际使用的固定版本。
- MCP Security Best Practices:授权、令牌、会话、代理和远程 Server 风险的官方参考。
- OWASP Authorization Cheat Sheet:默认拒绝、每次请求验证权限和授权测试原则参考。
- OWASP Top 10 for LLM Applications:提示注入、不可信输出、敏感信息和过度代理风险参考。
- NIST AI 600-1 — Generative Artificial Intelligence Profile:生成式 AI 风险识别、测量与治理参考。
核验日期:2026-09-12。 MCP 协议不会替应用自动建立北辰的审批、授权、幂等、对账或补偿流程;本页的单一效果、状态机、9 条开发切片和门槛是 Capstone 教学设计,不是上述来源规定的通用安全认证。北辰公司、人员、问题、文档、工单、审批、时间、版本、事件和完成结果均为合成材料;页面 JSON 是手工演绎参考,不是仓库或真实客户系统的运行输出。真实结论必须基于具体身份系统、目标 API、协议版本、部署、数据和逐例外部状态,本周不能证明客户授权、生产安全、合规、采用、效率或 ROI。