[{"data":1,"prerenderedAt":865},["ShallowReactive",2],{"article:prompt-context-engineering":3},{"meta":4,"raw":17,"references":18,"prev":42,"next":50,"body":60,"toc":855},{"slug":5,"title":6,"date":7,"updated":7,"tags":8,"summary":13,"draft":14,"lang":15,"minutes":16},"prompt-context-engineering","Prompt 与上下文工程：OpenAI、Anthropic 的方法，版本发布与优化实验","2026-10-11",[9,10,11,12],"Prompt","上下文工程","OpenAI","Anthropic","从官方提示实践与长上下文研究出发，解释指令、证据、历史和工具如何组合；用版本化发布包、受控实验、影子验证与灰度回滚，把 prompt 优化纳入工程流程。",false,"zh-CN",7,"一次回答变差，原因可能是指令含糊，也可能是检索资料过期、历史冲突、工具定义重叠，或模型版本改变。**Prompt 是指令设计；上下文工程是管理模型在某一轮实际收到的全部信息。** 生产优化需要同时管理内容、预算、权限和版本。\n\n本文依据截至 2026-10-11 的官方资料与原始研究。厂商建议有模型和任务边界；后文的发布流程与实验矩阵是工程推导，不是官方规定的统一流程。\n\n## OpenAI：明确目标、固定版本，按模型类型调整方法\n\n[OpenAI Prompt engineering](https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fprompt-engineering)强调指令层级、清楚的输入组织、模型快照与评测；当前文档也建议把生产 prompt 纳入应用代码，以代码审查、类型化输入、测试与正常发布流程管理。不要把旧版教程中的平台 prompt 对象当作永远稳定的接口。\n\n[Reasoning best practices](https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Freasoning-best-practices)对推理模型建议目标明确、约束直接，并避免机械要求“逐步展示思考”。工程上更有用的输出契约是：结论、可核对证据、计算结果、前提和不确定项。可解释输出与披露完整内部推理不是一回事。\n\n因此，同一个 prompt 模板不能不加验证地迁移到所有模型。新模型可能需要更少示例，也可能在工具、格式或拒绝行为上发生变化；固定模型版本只减少漂移，不能保证每次输出完全相同。\n\n## Anthropic：优化每一轮的信息选择\n\n[Effective context engineering](https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents)把系统指令、工具、外部资料和历史都纳入上下文管理，讨论按需读取、压缩、笔记与分工。它的共同目标是让当前决策看到高价值信息，而不是把可获得的资料全部塞入窗口。\n\n“按需读取”可以是先提供文件路径、来源 ID 或摘要，需要时再取原文。这会减少无关 token，也可能增加工具轮次与等待。已知短资料可预加载；探索范围大且不可预测时按需检索更合理。选择应由任务成功率和延迟一起验证。\n\n## 研究边界：长窗口不等于稳定利用所有位置\n\n[Lost in the Middle](https:\u002F\u002Farxiv.org\u002Fabs\u002F2307.03172)在其多文档问答与键值检索实验中观察到信息位置影响表现：相关信息位于中间时，部分被测模型更容易失误。它提供了“容量与有效利用不同”的证据，但不能证明所有当代模型在任何任务上都有同样程度的位置偏差。\n\n可复现实验比口号更有用：在同一任务中保持证据内容与长度近似不变，只改变关键证据的位置；再比较不同干扰量、模型和上下文长度。若发现特定任务退化，可优化证据排序与压缩，而不是直接宣布“中间不能放信息”。\n\n## 工程推导：把一次上下文构建写成可审查的流水线\n\n![上下文构建与版本发布：授权信息池、预算选择、模型输入、评测和灰度回滚](\u002Fdiagrams\u002Fprompt-context-engineering.svg)\n\n*图 1 · 上半部分管理这一轮看见什么，下半部分管理哪些版本可以上线。两者共享证据与配置版本。*\n\n一次上下文构建可以按以下顺序实现：\n\n1. **确定任务和身份**：建立租户、角色、目标、权限与预算；这些来自可信应用状态。\n2. **筛选候选信息**：从授权知识库、历史与工具结果中召回，保留来源 ID、版本与时间。\n3. **去重和解决冲突**：合并重复段落；新旧规范冲突时保留生效范围，不让模型自行猜版本。\n4. **分配预算**：为输出与必要推理预留空间；给证据、历史和工具定义分别设预算。\n5. **组装输入**：区分开发者指令、用户请求与外部资料；保留引用定位和截断说明。\n6. **记录构建依据**：保存配置 ID、选中的来源 ID、计数和删减原因；敏感正文按必要性留存。\n\n外部页面或工具结果中的命令属于待分析数据，不应提升为系统指令。权限判断在读取与执行侧完成；“请不要泄露”不能代替真实授权过滤。\n\n一个通用模板可以这样写，字段是应用约定而非某家 API 的完整请求：\n\n```text\n任务：依据授权资料回答具体问题，必要时请求补充信息。\n成功条件：关键结论有可解析的来源 ID；缺证据时明确标记。\n限制：工具仅在列出的用途与权限内使用；高影响动作需审批。\n输入区：用户请求、资料片段、已确认的工具结果分别标识。\n输出区：结论、支持证据、适用前提、不确定项。\n```\n\n## 预算与记忆：删减要知道丢掉了什么\n\n输入预算不是简单地“窗口大小减去用户输入”。工具定义、检索片段、历史、图片和输出上限都可能参与；不同 API 的计数与推理 token 语义不同，需要按厂商契约计算。详见[token 预算与核算](\u002Farticles\u002Fllm-budget-token-accounting)。\n\n历史压缩优先保留未完成目标、关键约束、已确认事实、待决问题和来源指针。工具大结果可放受控存储，再提供可回读引用；压缩后的摘要不是业务事实的唯一存储。\n\n[OpenAI SDK Sessions](https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fsessions\u002F)提供跨运行的对话历史管理。它可以帮助恢复会话，但业务审批、工具副作用和长期记忆的权限仍需各自的契约。原始记录与压缩摘要的关系，以及删除传播，见[上下文与记忆管理](\u002Farticles\u002Fcontext-memory-management)。\n\n## 版本管理：发布的是一组行为配置\n\n以下是**本文建议的配置清单示例**，不是已上线系统的版本数据：\n\n```json\n{\n  \"release_id\": \"agent-release-2026-10-11-r3\",\n  \"prompt_revision\": \"prompt-r8\",\n  \"model_snapshot\": \"pinned-provider-model-version\",\n  \"tool_schema_revision\": \"tools-r4\",\n  \"retrieval_revision\": \"index-r12\",\n  \"policy_revision\": \"policy-r6\",\n  \"eval_dataset_revision\": \"eval-r9\"\n}\n```\n\n版本号对应可恢复的内容或配置快照，不能只有字符串却找不到历史。原始文档删改、embedding 模型变更、工具参数与权限策略变化，都可能影响同一个 prompt 的结果；单独回滚 prompt 往往恢复不了旧行为。\n\n应用可将这些配置写进 Git 或受控配置仓库，以不可变 `release_id` 加路由指针发布。模型快照不可用时，需要定义替代策略并重新评测，不能承诺永远重放完全相同的输出。\n\n## 从离线到灰度：每一阶段解决一个问题\n\n先用锁定评测集比较候选版本的逐样本正确性、引用、拒绝与费用，再用保留集检查泛化。只改善开发集平均分，不足以通过发布门槛。\n\n影子验证可把授权输入发送给候选版本并比较，但其写入工具应使用隔离环境或只读替代；真正执行两遍外部动作会改变业务。线上灰度按用户或租户稳定分组，避免一次任务的不同步骤突然换配置。比例由流量和风险决定，不能把某个固定百分比当作行业规范。\n\n进入灰度前写明回滚条件和观察窗口：严重权限错误立即停止；关键任务成功率、错误率、p95 与每任务成本分别判断。回滚切换新任务使用的配置，已执行的外部动作需要对账或补偿；长任务可继续旧版本或从明确迁移点恢复，不能靠切一个全局变量保证安全。\n\n## 如何优化：一张可检验的实验矩阵\n\n| 假设 | 一次只改变什么 | 怎样观察 | 怎样防止误判 |\n| --- | --- | --- | --- |\n| 指令边界不清造成违规 | 指令区与资料区的分隔、规则具体度 | 越权率、误拒率、任务成功率 | 包含正常任务与注入样本 |\n| 示例太多造成过拟合 | 零样本与少量代表性示例 | 新任务表现、格式成功率、token | 留出未见类型，避免提示泄漏答案 |\n| 检索重复挤掉证据 | 去重与证据排序 | 证据覆盖、引用支撑、正确率 | 固定原始候选集与总预算 |\n| 历史压缩丢失约束 | 压缩策略与回读能力 | 长任务恢复率、漏约束率、成本 | 在跨窗口、故障恢复时验证 |\n| 稳定前缀能降低费用 | 固定指令与变动内容的组织 | 缓存命中、实际 usage、p95 | 区分冷启动与热缓存，核对缓存写入成本 |\n\n每个实验保留模型与资料版本、任务分组、运行次数、逐任务结果和费用口径。改善比例必须有原始计数与不确定性说明；没有实测时只能写待验证假设。生产流程由[观测与交付篇](\u002Farticles\u002Fagent-observability-delivery)继续展开。\n\n## 参考资料\n\n- [OpenAI — Prompt engineering](https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fprompt-engineering)\n- [OpenAI — Reasoning best practices](https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Freasoning-best-practices)\n- [Anthropic — Effective context engineering for AI agents](https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents)\n- [Lost in the Middle — How Language Models Use Long Contexts](https:\u002F\u002Farxiv.org\u002Fabs\u002F2307.03172)\n- [OpenAI Agents SDK — Sessions](https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fsessions\u002F)",[19,24,28,33,38],{"title":20,"url":21,"type":22,"note":23,"checked":7},"OpenAI — Prompt engineering","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fprompt-engineering","官方文档","指令组织、模型版本、评测与代码管理 prompt 的当前官方建议。",{"title":25,"url":26,"type":22,"note":27,"checked":7},"OpenAI — Reasoning best practices","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Freasoning-best-practices","推理模型的提示建议；不应直接推广为所有模型的最佳模板。",{"title":29,"url":30,"type":31,"note":32,"checked":7},"Anthropic — Effective context engineering for AI agents","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents","工程报告","信息选择、按需读取与长任务上下文策略的工程经验；效果需按任务验证。",{"title":34,"url":35,"type":36,"note":37,"checked":7},"Lost in the Middle — How Language Models Use Long Contexts","https:\u002F\u002Farxiv.org\u002Fabs\u002F2307.03172","研究论文","长上下文位置效应的原始实验；被测模型和任务不覆盖所有当代产品。",{"title":39,"url":40,"type":22,"note":41,"checked":7},"OpenAI Agents SDK — Sessions","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fsessions\u002F","SDK 对话历史与 session 接口；不同于所有业务动作的事务状态。",{"slug":43,"title":44,"date":7,"updated":7,"tags":45,"summary":48,"draft":14,"lang":15,"minutes":49},"production-agent-design","生产级 Agent 怎么设计：从 OpenAI 与 Anthropic 的公开实践看架构边界",[46,11,12,47],"Agent","生产架构","对照 Codex agent loop、Agents SDK\u002FAPI 与 Claude Managed Agents，解释模型、执行框架、会话和业务状态的职责；从成功标准出发，设计可恢复执行、权限边界与优化实验。",9,{"slug":51,"title":52,"date":7,"updated":7,"tags":53,"summary":58,"draft":14,"lang":15,"minutes":59},"vibe-coding-discipline","Vibe Coding 的工程纪律：任务、审查与验证怎么分工",[54,55,56,57],"AI 编程","Claude Code","工程效率","Vibe Coding","对照 OpenAI harness engineering、Claude Code 与生产力研究，解释任务契约、仓库知识、机械约束和独立验收；把审查、返工与实际交付一起计入优化。",6,{"type":61,"children":62},"root",[63,79,84,91,104,115,120,126,137,142,148,159,164,170,179,188,193,258,263,268,281,287,300,305,323,329,341,640,645,657,663,668,673,678,684,837,850],{"type":64,"tag":65,"props":66,"children":67},"element","p",{},[68,71,77],{"type":69,"value":70},"text","一次回答变差，原因可能是指令含糊，也可能是检索资料过期、历史冲突、工具定义重叠，或模型版本改变。",{"type":64,"tag":72,"props":73,"children":74},"strong",{},[75],{"type":69,"value":76},"Prompt 是指令设计；上下文工程是管理模型在某一轮实际收到的全部信息。",{"type":69,"value":78}," 生产优化需要同时管理内容、预算、权限和版本。",{"type":64,"tag":65,"props":80,"children":81},{},[82],{"type":69,"value":83},"本文依据截至 2026-10-11 的官方资料与原始研究。厂商建议有模型和任务边界；后文的发布流程与实验矩阵是工程推导，不是官方规定的统一流程。",{"type":64,"tag":85,"props":86,"children":88},"h2",{"id":87},"openai明确目标固定版本按模型类型调整方法",[89],{"type":69,"value":90},"OpenAI：明确目标、固定版本，按模型类型调整方法",{"type":64,"tag":65,"props":92,"children":93},{},[94,102],{"type":64,"tag":95,"props":96,"children":99},"a",{"href":21,"rel":97},[98],"nofollow",[100],{"type":69,"value":101},"OpenAI Prompt engineering",{"type":69,"value":103},"强调指令层级、清楚的输入组织、模型快照与评测；当前文档也建议把生产 prompt 纳入应用代码，以代码审查、类型化输入、测试与正常发布流程管理。不要把旧版教程中的平台 prompt 对象当作永远稳定的接口。",{"type":64,"tag":65,"props":105,"children":106},{},[107,113],{"type":64,"tag":95,"props":108,"children":110},{"href":26,"rel":109},[98],[111],{"type":69,"value":112},"Reasoning best practices",{"type":69,"value":114},"对推理模型建议目标明确、约束直接，并避免机械要求“逐步展示思考”。工程上更有用的输出契约是：结论、可核对证据、计算结果、前提和不确定项。可解释输出与披露完整内部推理不是一回事。",{"type":64,"tag":65,"props":116,"children":117},{},[118],{"type":69,"value":119},"因此，同一个 prompt 模板不能不加验证地迁移到所有模型。新模型可能需要更少示例，也可能在工具、格式或拒绝行为上发生变化；固定模型版本只减少漂移，不能保证每次输出完全相同。",{"type":64,"tag":85,"props":121,"children":123},{"id":122},"anthropic优化每一轮的信息选择",[124],{"type":69,"value":125},"Anthropic：优化每一轮的信息选择",{"type":64,"tag":65,"props":127,"children":128},{},[129,135],{"type":64,"tag":95,"props":130,"children":132},{"href":30,"rel":131},[98],[133],{"type":69,"value":134},"Effective context engineering",{"type":69,"value":136},"把系统指令、工具、外部资料和历史都纳入上下文管理，讨论按需读取、压缩、笔记与分工。它的共同目标是让当前决策看到高价值信息，而不是把可获得的资料全部塞入窗口。",{"type":64,"tag":65,"props":138,"children":139},{},[140],{"type":69,"value":141},"“按需读取”可以是先提供文件路径、来源 ID 或摘要，需要时再取原文。这会减少无关 token，也可能增加工具轮次与等待。已知短资料可预加载；探索范围大且不可预测时按需检索更合理。选择应由任务成功率和延迟一起验证。",{"type":64,"tag":85,"props":143,"children":145},{"id":144},"研究边界长窗口不等于稳定利用所有位置",[146],{"type":69,"value":147},"研究边界：长窗口不等于稳定利用所有位置",{"type":64,"tag":65,"props":149,"children":150},{},[151,157],{"type":64,"tag":95,"props":152,"children":154},{"href":35,"rel":153},[98],[155],{"type":69,"value":156},"Lost in the Middle",{"type":69,"value":158},"在其多文档问答与键值检索实验中观察到信息位置影响表现：相关信息位于中间时，部分被测模型更容易失误。它提供了“容量与有效利用不同”的证据，但不能证明所有当代模型在任何任务上都有同样程度的位置偏差。",{"type":64,"tag":65,"props":160,"children":161},{},[162],{"type":69,"value":163},"可复现实验比口号更有用：在同一任务中保持证据内容与长度近似不变，只改变关键证据的位置；再比较不同干扰量、模型和上下文长度。若发现特定任务退化，可优化证据排序与压缩，而不是直接宣布“中间不能放信息”。",{"type":64,"tag":85,"props":165,"children":167},{"id":166},"工程推导把一次上下文构建写成可审查的流水线",[168],{"type":69,"value":169},"工程推导：把一次上下文构建写成可审查的流水线",{"type":64,"tag":65,"props":171,"children":172},{},[173],{"type":64,"tag":174,"props":175,"children":178},"img",{"alt":176,"src":177},"上下文构建与版本发布：授权信息池、预算选择、模型输入、评测和灰度回滚","\u002Fdiagrams\u002Fprompt-context-engineering.svg",[],{"type":64,"tag":65,"props":180,"children":181},{},[182],{"type":64,"tag":183,"props":184,"children":185},"em",{},[186],{"type":69,"value":187},"图 1 · 上半部分管理这一轮看见什么，下半部分管理哪些版本可以上线。两者共享证据与配置版本。",{"type":64,"tag":65,"props":189,"children":190},{},[191],{"type":69,"value":192},"一次上下文构建可以按以下顺序实现：",{"type":64,"tag":194,"props":195,"children":196},"ol",{},[197,208,218,228,238,248],{"type":64,"tag":198,"props":199,"children":200},"li",{},[201,206],{"type":64,"tag":72,"props":202,"children":203},{},[204],{"type":69,"value":205},"确定任务和身份",{"type":69,"value":207},"：建立租户、角色、目标、权限与预算；这些来自可信应用状态。",{"type":64,"tag":198,"props":209,"children":210},{},[211,216],{"type":64,"tag":72,"props":212,"children":213},{},[214],{"type":69,"value":215},"筛选候选信息",{"type":69,"value":217},"：从授权知识库、历史与工具结果中召回，保留来源 ID、版本与时间。",{"type":64,"tag":198,"props":219,"children":220},{},[221,226],{"type":64,"tag":72,"props":222,"children":223},{},[224],{"type":69,"value":225},"去重和解决冲突",{"type":69,"value":227},"：合并重复段落；新旧规范冲突时保留生效范围，不让模型自行猜版本。",{"type":64,"tag":198,"props":229,"children":230},{},[231,236],{"type":64,"tag":72,"props":232,"children":233},{},[234],{"type":69,"value":235},"分配预算",{"type":69,"value":237},"：为输出与必要推理预留空间；给证据、历史和工具定义分别设预算。",{"type":64,"tag":198,"props":239,"children":240},{},[241,246],{"type":64,"tag":72,"props":242,"children":243},{},[244],{"type":69,"value":245},"组装输入",{"type":69,"value":247},"：区分开发者指令、用户请求与外部资料；保留引用定位和截断说明。",{"type":64,"tag":198,"props":249,"children":250},{},[251,256],{"type":64,"tag":72,"props":252,"children":253},{},[254],{"type":69,"value":255},"记录构建依据",{"type":69,"value":257},"：保存配置 ID、选中的来源 ID、计数和删减原因；敏感正文按必要性留存。",{"type":64,"tag":65,"props":259,"children":260},{},[261],{"type":69,"value":262},"外部页面或工具结果中的命令属于待分析数据，不应提升为系统指令。权限判断在读取与执行侧完成；“请不要泄露”不能代替真实授权过滤。",{"type":64,"tag":65,"props":264,"children":265},{},[266],{"type":69,"value":267},"一个通用模板可以这样写，字段是应用约定而非某家 API 的完整请求：",{"type":64,"tag":269,"props":270,"children":275},"pre",{"className":271,"code":273,"language":69,"meta":274},[272],"language-text","任务：依据授权资料回答具体问题，必要时请求补充信息。\n成功条件：关键结论有可解析的来源 ID；缺证据时明确标记。\n限制：工具仅在列出的用途与权限内使用；高影响动作需审批。\n输入区：用户请求、资料片段、已确认的工具结果分别标识。\n输出区：结论、支持证据、适用前提、不确定项。\n","",[276],{"type":64,"tag":277,"props":278,"children":279},"code",{"__ignoreMap":274},[280],{"type":69,"value":273},{"type":64,"tag":85,"props":282,"children":284},{"id":283},"预算与记忆删减要知道丢掉了什么",[285],{"type":69,"value":286},"预算与记忆：删减要知道丢掉了什么",{"type":64,"tag":65,"props":288,"children":289},{},[290,292,298],{"type":69,"value":291},"输入预算不是简单地“窗口大小减去用户输入”。工具定义、检索片段、历史、图片和输出上限都可能参与；不同 API 的计数与推理 token 语义不同，需要按厂商契约计算。详见",{"type":64,"tag":95,"props":293,"children":295},{"href":294},"\u002Farticles\u002Fllm-budget-token-accounting",[296],{"type":69,"value":297},"token 预算与核算",{"type":69,"value":299},"。",{"type":64,"tag":65,"props":301,"children":302},{},[303],{"type":69,"value":304},"历史压缩优先保留未完成目标、关键约束、已确认事实、待决问题和来源指针。工具大结果可放受控存储，再提供可回读引用；压缩后的摘要不是业务事实的唯一存储。",{"type":64,"tag":65,"props":306,"children":307},{},[308,314,316,322],{"type":64,"tag":95,"props":309,"children":311},{"href":40,"rel":310},[98],[312],{"type":69,"value":313},"OpenAI SDK Sessions",{"type":69,"value":315},"提供跨运行的对话历史管理。它可以帮助恢复会话，但业务审批、工具副作用和长期记忆的权限仍需各自的契约。原始记录与压缩摘要的关系，以及删除传播，见",{"type":64,"tag":95,"props":317,"children":319},{"href":318},"\u002Farticles\u002Fcontext-memory-management",[320],{"type":69,"value":321},"上下文与记忆管理",{"type":69,"value":299},{"type":64,"tag":85,"props":324,"children":326},{"id":325},"版本管理发布的是一组行为配置",[327],{"type":69,"value":328},"版本管理：发布的是一组行为配置",{"type":64,"tag":65,"props":330,"children":331},{},[332,334,339],{"type":69,"value":333},"以下是",{"type":64,"tag":72,"props":335,"children":336},{},[337],{"type":69,"value":338},"本文建议的配置清单示例",{"type":69,"value":340},"，不是已上线系统的版本数据：",{"type":64,"tag":269,"props":342,"children":346},{"className":343,"code":344,"language":345,"meta":274,"style":274},"language-json shiki shiki-themes vitesse-light vitesse-light","{\n  \"release_id\": \"agent-release-2026-10-11-r3\",\n  \"prompt_revision\": \"prompt-r8\",\n  \"model_snapshot\": \"pinned-provider-model-version\",\n  \"tool_schema_revision\": \"tools-r4\",\n  \"retrieval_revision\": \"index-r12\",\n  \"policy_revision\": \"policy-r6\",\n  \"eval_dataset_revision\": \"eval-r9\"\n}\n","json",[347],{"type":64,"tag":277,"props":348,"children":349},{"__ignoreMap":274},[350,362,409,447,485,523,560,597,632],{"type":64,"tag":351,"props":352,"children":355},"span",{"class":353,"line":354},"line",1,[356],{"type":64,"tag":351,"props":357,"children":359},{"style":358},"--shiki-default:#999999;--shiki-dark:#999999",[360],{"type":69,"value":361},"{\n",{"type":64,"tag":351,"props":363,"children":365},{"class":353,"line":364},2,[366,372,378,383,388,394,400,404],{"type":64,"tag":351,"props":367,"children":369},{"style":368},"--shiki-default:#99841877;--shiki-dark:#99841877",[370],{"type":69,"value":371},"  \"",{"type":64,"tag":351,"props":373,"children":375},{"style":374},"--shiki-default:#998418;--shiki-dark:#998418",[376],{"type":69,"value":377},"release_id",{"type":64,"tag":351,"props":379,"children":380},{"style":368},[381],{"type":69,"value":382},"\"",{"type":64,"tag":351,"props":384,"children":385},{"style":358},[386],{"type":69,"value":387},":",{"type":64,"tag":351,"props":389,"children":391},{"style":390},"--shiki-default:#B5695977;--shiki-dark:#B5695977",[392],{"type":69,"value":393}," \"",{"type":64,"tag":351,"props":395,"children":397},{"style":396},"--shiki-default:#B56959;--shiki-dark:#B56959",[398],{"type":69,"value":399},"agent-release-2026-10-11-r3",{"type":64,"tag":351,"props":401,"children":402},{"style":390},[403],{"type":69,"value":382},{"type":64,"tag":351,"props":405,"children":406},{"style":358},[407],{"type":69,"value":408},",\n",{"type":64,"tag":351,"props":410,"children":412},{"class":353,"line":411},3,[413,417,422,426,430,434,439,443],{"type":64,"tag":351,"props":414,"children":415},{"style":368},[416],{"type":69,"value":371},{"type":64,"tag":351,"props":418,"children":419},{"style":374},[420],{"type":69,"value":421},"prompt_revision",{"type":64,"tag":351,"props":423,"children":424},{"style":368},[425],{"type":69,"value":382},{"type":64,"tag":351,"props":427,"children":428},{"style":358},[429],{"type":69,"value":387},{"type":64,"tag":351,"props":431,"children":432},{"style":390},[433],{"type":69,"value":393},{"type":64,"tag":351,"props":435,"children":436},{"style":396},[437],{"type":69,"value":438},"prompt-r8",{"type":64,"tag":351,"props":440,"children":441},{"style":390},[442],{"type":69,"value":382},{"type":64,"tag":351,"props":444,"children":445},{"style":358},[446],{"type":69,"value":408},{"type":64,"tag":351,"props":448,"children":450},{"class":353,"line":449},4,[451,455,460,464,468,472,477,481],{"type":64,"tag":351,"props":452,"children":453},{"style":368},[454],{"type":69,"value":371},{"type":64,"tag":351,"props":456,"children":457},{"style":374},[458],{"type":69,"value":459},"model_snapshot",{"type":64,"tag":351,"props":461,"children":462},{"style":368},[463],{"type":69,"value":382},{"type":64,"tag":351,"props":465,"children":466},{"style":358},[467],{"type":69,"value":387},{"type":64,"tag":351,"props":469,"children":470},{"style":390},[471],{"type":69,"value":393},{"type":64,"tag":351,"props":473,"children":474},{"style":396},[475],{"type":69,"value":476},"pinned-provider-model-version",{"type":64,"tag":351,"props":478,"children":479},{"style":390},[480],{"type":69,"value":382},{"type":64,"tag":351,"props":482,"children":483},{"style":358},[484],{"type":69,"value":408},{"type":64,"tag":351,"props":486,"children":488},{"class":353,"line":487},5,[489,493,498,502,506,510,515,519],{"type":64,"tag":351,"props":490,"children":491},{"style":368},[492],{"type":69,"value":371},{"type":64,"tag":351,"props":494,"children":495},{"style":374},[496],{"type":69,"value":497},"tool_schema_revision",{"type":64,"tag":351,"props":499,"children":500},{"style":368},[501],{"type":69,"value":382},{"type":64,"tag":351,"props":503,"children":504},{"style":358},[505],{"type":69,"value":387},{"type":64,"tag":351,"props":507,"children":508},{"style":390},[509],{"type":69,"value":393},{"type":64,"tag":351,"props":511,"children":512},{"style":396},[513],{"type":69,"value":514},"tools-r4",{"type":64,"tag":351,"props":516,"children":517},{"style":390},[518],{"type":69,"value":382},{"type":64,"tag":351,"props":520,"children":521},{"style":358},[522],{"type":69,"value":408},{"type":64,"tag":351,"props":524,"children":525},{"class":353,"line":59},[526,530,535,539,543,547,552,556],{"type":64,"tag":351,"props":527,"children":528},{"style":368},[529],{"type":69,"value":371},{"type":64,"tag":351,"props":531,"children":532},{"style":374},[533],{"type":69,"value":534},"retrieval_revision",{"type":64,"tag":351,"props":536,"children":537},{"style":368},[538],{"type":69,"value":382},{"type":64,"tag":351,"props":540,"children":541},{"style":358},[542],{"type":69,"value":387},{"type":64,"tag":351,"props":544,"children":545},{"style":390},[546],{"type":69,"value":393},{"type":64,"tag":351,"props":548,"children":549},{"style":396},[550],{"type":69,"value":551},"index-r12",{"type":64,"tag":351,"props":553,"children":554},{"style":390},[555],{"type":69,"value":382},{"type":64,"tag":351,"props":557,"children":558},{"style":358},[559],{"type":69,"value":408},{"type":64,"tag":351,"props":561,"children":562},{"class":353,"line":16},[563,567,572,576,580,584,589,593],{"type":64,"tag":351,"props":564,"children":565},{"style":368},[566],{"type":69,"value":371},{"type":64,"tag":351,"props":568,"children":569},{"style":374},[570],{"type":69,"value":571},"policy_revision",{"type":64,"tag":351,"props":573,"children":574},{"style":368},[575],{"type":69,"value":382},{"type":64,"tag":351,"props":577,"children":578},{"style":358},[579],{"type":69,"value":387},{"type":64,"tag":351,"props":581,"children":582},{"style":390},[583],{"type":69,"value":393},{"type":64,"tag":351,"props":585,"children":586},{"style":396},[587],{"type":69,"value":588},"policy-r6",{"type":64,"tag":351,"props":590,"children":591},{"style":390},[592],{"type":69,"value":382},{"type":64,"tag":351,"props":594,"children":595},{"style":358},[596],{"type":69,"value":408},{"type":64,"tag":351,"props":598,"children":600},{"class":353,"line":599},8,[601,605,610,614,618,622,627],{"type":64,"tag":351,"props":602,"children":603},{"style":368},[604],{"type":69,"value":371},{"type":64,"tag":351,"props":606,"children":607},{"style":374},[608],{"type":69,"value":609},"eval_dataset_revision",{"type":64,"tag":351,"props":611,"children":612},{"style":368},[613],{"type":69,"value":382},{"type":64,"tag":351,"props":615,"children":616},{"style":358},[617],{"type":69,"value":387},{"type":64,"tag":351,"props":619,"children":620},{"style":390},[621],{"type":69,"value":393},{"type":64,"tag":351,"props":623,"children":624},{"style":396},[625],{"type":69,"value":626},"eval-r9",{"type":64,"tag":351,"props":628,"children":629},{"style":390},[630],{"type":69,"value":631},"\"\n",{"type":64,"tag":351,"props":633,"children":634},{"class":353,"line":49},[635],{"type":64,"tag":351,"props":636,"children":637},{"style":358},[638],{"type":69,"value":639},"}\n",{"type":64,"tag":65,"props":641,"children":642},{},[643],{"type":69,"value":644},"版本号对应可恢复的内容或配置快照，不能只有字符串却找不到历史。原始文档删改、embedding 模型变更、工具参数与权限策略变化，都可能影响同一个 prompt 的结果；单独回滚 prompt 往往恢复不了旧行为。",{"type":64,"tag":65,"props":646,"children":647},{},[648,650,655],{"type":69,"value":649},"应用可将这些配置写进 Git 或受控配置仓库，以不可变 ",{"type":64,"tag":277,"props":651,"children":653},{"className":652},[],[654],{"type":69,"value":377},{"type":69,"value":656}," 加路由指针发布。模型快照不可用时，需要定义替代策略并重新评测，不能承诺永远重放完全相同的输出。",{"type":64,"tag":85,"props":658,"children":660},{"id":659},"从离线到灰度每一阶段解决一个问题",[661],{"type":69,"value":662},"从离线到灰度：每一阶段解决一个问题",{"type":64,"tag":65,"props":664,"children":665},{},[666],{"type":69,"value":667},"先用锁定评测集比较候选版本的逐样本正确性、引用、拒绝与费用，再用保留集检查泛化。只改善开发集平均分，不足以通过发布门槛。",{"type":64,"tag":65,"props":669,"children":670},{},[671],{"type":69,"value":672},"影子验证可把授权输入发送给候选版本并比较，但其写入工具应使用隔离环境或只读替代；真正执行两遍外部动作会改变业务。线上灰度按用户或租户稳定分组，避免一次任务的不同步骤突然换配置。比例由流量和风险决定，不能把某个固定百分比当作行业规范。",{"type":64,"tag":65,"props":674,"children":675},{},[676],{"type":69,"value":677},"进入灰度前写明回滚条件和观察窗口：严重权限错误立即停止；关键任务成功率、错误率、p95 与每任务成本分别判断。回滚切换新任务使用的配置，已执行的外部动作需要对账或补偿；长任务可继续旧版本或从明确迁移点恢复，不能靠切一个全局变量保证安全。",{"type":64,"tag":85,"props":679,"children":681},{"id":680},"如何优化一张可检验的实验矩阵",[682],{"type":69,"value":683},"如何优化：一张可检验的实验矩阵",{"type":64,"tag":685,"props":686,"children":687},"table",{},[688,717],{"type":64,"tag":689,"props":690,"children":691},"thead",{},[692],{"type":64,"tag":693,"props":694,"children":695},"tr",{},[696,702,707,712],{"type":64,"tag":697,"props":698,"children":699},"th",{},[700],{"type":69,"value":701},"假设",{"type":64,"tag":697,"props":703,"children":704},{},[705],{"type":69,"value":706},"一次只改变什么",{"type":64,"tag":697,"props":708,"children":709},{},[710],{"type":69,"value":711},"怎样观察",{"type":64,"tag":697,"props":713,"children":714},{},[715],{"type":69,"value":716},"怎样防止误判",{"type":64,"tag":718,"props":719,"children":720},"tbody",{},[721,745,768,791,814],{"type":64,"tag":693,"props":722,"children":723},{},[724,730,735,740],{"type":64,"tag":725,"props":726,"children":727},"td",{},[728],{"type":69,"value":729},"指令边界不清造成违规",{"type":64,"tag":725,"props":731,"children":732},{},[733],{"type":69,"value":734},"指令区与资料区的分隔、规则具体度",{"type":64,"tag":725,"props":736,"children":737},{},[738],{"type":69,"value":739},"越权率、误拒率、任务成功率",{"type":64,"tag":725,"props":741,"children":742},{},[743],{"type":69,"value":744},"包含正常任务与注入样本",{"type":64,"tag":693,"props":746,"children":747},{},[748,753,758,763],{"type":64,"tag":725,"props":749,"children":750},{},[751],{"type":69,"value":752},"示例太多造成过拟合",{"type":64,"tag":725,"props":754,"children":755},{},[756],{"type":69,"value":757},"零样本与少量代表性示例",{"type":64,"tag":725,"props":759,"children":760},{},[761],{"type":69,"value":762},"新任务表现、格式成功率、token",{"type":64,"tag":725,"props":764,"children":765},{},[766],{"type":69,"value":767},"留出未见类型，避免提示泄漏答案",{"type":64,"tag":693,"props":769,"children":770},{},[771,776,781,786],{"type":64,"tag":725,"props":772,"children":773},{},[774],{"type":69,"value":775},"检索重复挤掉证据",{"type":64,"tag":725,"props":777,"children":778},{},[779],{"type":69,"value":780},"去重与证据排序",{"type":64,"tag":725,"props":782,"children":783},{},[784],{"type":69,"value":785},"证据覆盖、引用支撑、正确率",{"type":64,"tag":725,"props":787,"children":788},{},[789],{"type":69,"value":790},"固定原始候选集与总预算",{"type":64,"tag":693,"props":792,"children":793},{},[794,799,804,809],{"type":64,"tag":725,"props":795,"children":796},{},[797],{"type":69,"value":798},"历史压缩丢失约束",{"type":64,"tag":725,"props":800,"children":801},{},[802],{"type":69,"value":803},"压缩策略与回读能力",{"type":64,"tag":725,"props":805,"children":806},{},[807],{"type":69,"value":808},"长任务恢复率、漏约束率、成本",{"type":64,"tag":725,"props":810,"children":811},{},[812],{"type":69,"value":813},"在跨窗口、故障恢复时验证",{"type":64,"tag":693,"props":815,"children":816},{},[817,822,827,832],{"type":64,"tag":725,"props":818,"children":819},{},[820],{"type":69,"value":821},"稳定前缀能降低费用",{"type":64,"tag":725,"props":823,"children":824},{},[825],{"type":69,"value":826},"固定指令与变动内容的组织",{"type":64,"tag":725,"props":828,"children":829},{},[830],{"type":69,"value":831},"缓存命中、实际 usage、p95",{"type":64,"tag":725,"props":833,"children":834},{},[835],{"type":69,"value":836},"区分冷启动与热缓存，核对缓存写入成本",{"type":64,"tag":65,"props":838,"children":839},{},[840,842,848],{"type":69,"value":841},"每个实验保留模型与资料版本、任务分组、运行次数、逐任务结果和费用口径。改善比例必须有原始计数与不确定性说明；没有实测时只能写待验证假设。生产流程由",{"type":64,"tag":95,"props":843,"children":845},{"href":844},"\u002Farticles\u002Fagent-observability-delivery",[846],{"type":69,"value":847},"观测与交付篇",{"type":69,"value":849},"继续展开。",{"type":64,"tag":85,"props":851,"children":853},{"id":852},"参考资料",[854],{"type":69,"value":852},[856,857,858,859,860,861,862,863,864],{"id":87,"depth":364,"text":90},{"id":122,"depth":364,"text":125},{"id":144,"depth":364,"text":147},{"id":166,"depth":364,"text":169},{"id":283,"depth":364,"text":286},{"id":325,"depth":364,"text":328},{"id":659,"depth":364,"text":662},{"id":680,"depth":364,"text":683},{"id":852,"depth":364,"text":852},1792400815607]