AI 工程设计模式 · 30 道灵魂拷问
每题附考察意图、答题框架与加分点:上下文工程 / 长任务 / grep vs RAG / ACI 工具设计 / 评测基建 / LLM-as-Judge / 沙箱隔离
本页解决的问题
先给结论「AI 工程设计模式 · 30 道灵魂拷问」要解决的关键问题是什么?
每题附考察意图、答题框架与加分点:上下文工程 / 长任务 / grep vs RAG / ACI 工具设计 / 评测基建 / LLM-as-Judge / 沙箱隔离
让这个结论先证明自己值得留下。 把这一页当成决策工具,而不是需要背下来的定义。把概念连到一个真实任务、一个可观察结果,以及一个能改变你判断的失败上。
写下一个问题:试完这个方法后,你能用什么证据回答它?
结论听起来很完整,却没有检查最关键的假设。
- 先给定义:Prompt 工程优化指令的写法。上下文工程管理每一轮推理时送给模型的全部 Token:System Prompt、工具定义、对话历史、检索结果、用户状态,全都算。
- 说清动机:上下文是稀缺资源。三个硬约束:Context Rot(越长检索准确率越低)、注意力预算有限(无关 Token 稀释有用信息)、n 平方复杂度(上下文翻倍,注意力计算量变四倍)。
- 给目标:找到最小的高信号 Token 集合。每个 Token 都要为推理做贡献,能塞多少塞多少的思路行不通。
- 落三个抓手:System Prompt 找合适高度(角色加原则,别堆 50 条规则)、工具集精简、Few-shot 精选 2~3 个典型例子,别拿边界 case 刷存在感。
- 先摆两难:开新窗口,Agent 失忆,会重复已做过的工作;留在旧窗口,Token 越堆越多,注意力被稀释,表现持续下降。Claude Code、Cursor、Devin 每天都在解这个题。
- 板斧一 Compaction:窗口快满时用一次 LLM 调用做结构化摘要。保留架构决策和未解决的 bug,丢掉冗余的工具输出和已完成任务的中间步骤,选错了 Agent 会重蹈覆辙。
- 板斧二结构化笔记:把关键信息主动写到外部文件,新窗口读回来恢复记忆。Claude Code 的 TODO 文件、Claude 打宝可梦时维护的游戏笔记,都是这个套路。
- 板斧三子 Agent:深度探索委派出去。子 Agent 在自己的窗口里烧 3 万 Token 读代码做推理,只向主 Agent 回传 1500 Token 的结论,主上下文始终干净。
- 先接住:目标是把对的信息放进上下文窗口,RAG 只是手段之一。代码库这种高频变化的数据,按需检索往往更合适。
- 说清 JIT 检索:用 glob/grep 在需要时现场搜,上下文保持精简,只放当前用得上的内容。代价是多一次工具调用的延迟,换来的是免去建索引和索引同步的维护负担。
- 给混合策略:高频信息预加载(项目约定、核心规则、用户偏好),长尾信息按需获取。类比浏览器缓存:热数据放内存,冷数据现取。
- 说清什么时候该上 RAG:相对静态的知识库场景适合 RAG,但裸切 Chunk 会丢语境。Contextual Retrieval 给每个 Chunk 加上下文前缀,叠加 BM25 双路召回和 Reranking,检索失败率能降 67%。
- 先定性:工具的名称、参数、描述就是 Agent 的用户界面。传统 API 是确定性的,Agent 工具是非确定性的,什么时候用、怎么用,全看设计质量。设计工具要像设计 HCI 一样投入。
- 给排查清单:四原则挨个过。参数顺序有没有给模型思考空间(先简单方向、后复杂内容)、格式贴不贴近训练数据(标准 unified diff 好过自定义 DSL)、有没有逼模型数行号做机械操作、有没有防呆设计(Poka-yoke)。
- 举实锤案例:SWE-bench 上把文件路径参数从相对路径改成只收绝对路径,一个参数的改动,工具调用从频繁出错变得几乎完美。
- 说描述标准:像给聪明但没有上下文的初级开发者写文档。示例用法、边界情况、输入格式、和其他工具的区别、何时不该用,五件套写全。
- 先给结论:迁移速度取决于评测基建。有完善 eval suite 的团队跑一遍测试、确认不掉分、几天完成切换;没有的团队只能人肉验证数周。我们慢在基建欠账。
- 解释评测在赚什么钱:改 Prompt、换模型、调参数,几分钟知道对整体的影响;防止修一个 bug 制造三个新的;每次新模型发布都能第一批吃红利。
- 给启动方案:先做 20 条覆盖核心场景的测试任务就能起步。20 条精心设计的用例,比停在计划里的 500 条领先一个时代。
- 顺手管理预期:竞品接得快未必测得严。公开 benchmark 分数会被高估(模型能认出考试),要用自己业务场景的用例;评测环境要和生产一致,仅沙箱配置差异就能造成 6 个百分点的误差。
- 列全三种 Grader:代码 Grader(断言、单测、正则,毫秒级、零成本、完全可复现,但对合理变体过于严格)、模型 Grader(能评主观质量,但有成本、有偏见)、人工 Grader(质量最高,但不可扩展)。
- 正面回答 LLM-as-Judge:靠谱程度取决于 Rubric。「给质量打 0 到 1 分」几乎没用,要具体到每一分:0 分长什么样、0.3 分缺了什么、1 分必须同时满足哪几条。
- 给组合拳:代码 Grader 打底守确定性场景,模型 Grader 扩展到主观质量,人工定期抽检、校准模型 Grader 有没有漂移。三层缺一不可。
- 补一个容易漏的点:评的应该是 Outcome,环境的最终状态。Agent 说做完了不算数,要看文件是否真的改对、API 是否真的调对。
- 先认同对方立场:提示词防线靠不住,安全要靠结构性设计。目标是即使模型被 Prompt Injection 完全操控,攻击者也拿不到凭证。
- 给风险分类:三类分开设防:用户故意滥用、模型自发失控(过度行动、基于幻觉执行真实操作)、外部攻击(网页和文档里嵌入的注入指令,用户自己都不知情)。
- 给凭证方案:第一原则是生成的代码和密钥永远隔离在不同容器。两种模式:Token 注入到资源访问路径(Agent 可用不可见,比如嵌进 Git remote URL)、Vault 代理转发(代理按 Session 注入 Token,Agent 全程见不到一个字符)。
- 给执行环境方案:OS 级沙箱三重隔离(文件系统、网络、进程),叠加三层信任控制:高危工具人工审批、会话级授权、全局策略兜底(永远碰不到生产库)。
- 先给定义:Workflow 是 LLM 和工具走预定义代码路径,开发者写代码时就定好先 A 后 B 再 C;Agent 是模型动态决定流程,每一步自主判断调什么工具、什么时候结束。
- 摆核心差异:Workflow 输入确定则路径确定,容易复现和调试;Agent 同样输入可能走不同路径,行为不确定,线上问题难复现。
- 给判断标准:任务拆解明确、步骤固定,用 Workflow,典型如文案生成管道、数据清洗流水线;任务开放、需要临场决策,才用 Agent,典型如 Claude Code、Devin 这类编程助手。
- 引生产共识:Anthropic 复盘过大量落地案例,最成功的实现没有用复杂框架,用的是简单、可组合的模式。
- 先立原则:复杂度是成本。每加一层都要回答同一个问题:这层带来的收益,值不值得额外的延迟、费用和调试难度。
- 摆四级阶梯:先优化单次 LLM 调用(Prompt、Few-shot、Temperature);不够就加 RAG;还不够用 Workflow 拆步骤;确实需要灵活决策才上 Agent。
- 算全自主的代价:把控制权从代码交给模型,意味着循环次数未知、成本不可控、行为难复现。这些代价要有对应的收益才划算。
- 举过度设计反例:用 Agent 框架做一个 Prompt 加一次搜索就能解决的问题,框架引入的延迟、成本和不确定性远大于收益。
- Prompt Chaining:任务能拆成固定顺序步骤时用,步骤间可以插质量门,比如检查文案含不含品牌关键信息,过了才进翻译环节。代价是延迟,本质是拿延迟换准确度。
- Routing:输入类型多样时先分类再分流。简单 FAQ 走 Haiku 这类快而便宜的模型,退款问题走 Sonnet 加订单工具。价值在关注点分离和成本分层。
- Parallelization:两个子模式。Sectioning 把独立子任务并行跑,比如安全、性能、风格三路同时做代码审查;Voting 同一任务跑多次取多数意见,拿钱换置信度。
- 收尾补另外两种:Orchestrator-Workers 由编排者在运行时动态拆任务,子任务提前定不了时用,最接近 Agent;Evaluator-Optimizer 生成加评判循环迭代,适合翻译这类有明确质量标准的场景。
- 先上 Routing 分流:加一个分类器,简单 FAQ 走便宜的小模型,退款、投诉这类复杂问题才用强模型加工具。客服流量大头是简单问题,这一刀最省钱。
- 治理工具返回:查一遍是不是在全量返回。一次回 847 条完整记录要烧 5 万多 Token,改成前 10 条核心字段加分页提示,800 Token 就够,信息密度反而更高。
- 吃缓存红利:System Prompt、工具定义这些稳定内容放在前缀并保持不变,命中 Prompt Cache 后重复部分的费用大幅下降。
- 给验证闭环:每项改动跑评测确认质量不掉,最后拿数据汇报:成本降了多少,核心指标持平。
- 摆两个极端:太模糊(你是一个有用的助手)让模型缺方向感,输出泛泛而谈;太具体(50 条规则加 100 个边界 case)把模型锁死,遇到新情况不会变通。
- 给甜蜜点:明确的角色定位,加 5~10 条核心原则,划清边界,然后信任模型在框架内自主判断。像好的管理者:给方向,别下每一步的指令。
- 算规则的代价:60 条规则本身就是 Token,占的是注意力预算;规则之间互相打架时,模型行为反而更难预测。
- 给落地动作:把规则按原则、格式、边界归类合并,通常能压到十几条,再跑评测确认行为没有退化。
- 先讲原理:把短期记忆(上下文窗口)外化成长期记忆(文件系统)。窗口重置后,新会话第一件事是读笔记恢复状态,记忆跨窗口延续。
- 格式必须固定且结构化:自由散文读回来还要额外烧 Token 去理解。用固定栏目:已完成、未完成、关键决策、已知问题,后续推理按栏目直接取。
- 定读写节奏:写的时机是每完成一个关键步骤就更新,别攒到窗口快满才写;读的时机是每次窗口重置或新会话开始的第一步。节奏乱了,笔记就会和实际进度脱节。
- 分清和 Compaction 的分工:压缩是把旧信息压小了继续用,适合连续不中断的对话;笔记是存到外面以后取用,适合可能被打断、要跨 session 延续的任务。实际产品里两者组合上。
- 说机制:Think Tool 是一个没有副作用的工具,唯一作用是让 Agent 在执行中途把思考写下来。把「停下来想」包装成工具调用,模型就能在工具链的节奏里自然插入一段推理。
- 说场景:三类场景最见效:调用 5 个以上工具的长链、策略密集环境(20 条退款政策加 6 种例外)、每步依赖前一步结果的串行决策。共同点是早期信息容易被后续上下文淹没。
- 报数据:τ-bench 航空客服从 0.570 提到 0.878,提升 54%;零售客服提升 11%。航空的退改签政策远比零售复杂,策略密度越高,Think Tool 价值越大。
- 划边界:查天气、读文件这类一步到位的操作用它是纯开销;不调工具的纯生成任务不需要;能一次性想清楚的问题交给 Extended Thinking 更直接。
- 先认账:全量返回是灾难。847 条完整记录约 5 万 2 千 Token,模型处理不过来,还会把窗口里其他信息的注意力稀释掉。
- 给四个精简策略:总结(只返回统计信息)、截断(默认前 N 条)、分页(带翻页参数)、过滤(支持条件筛选),按场景组合使用。
- 返回要带下一步线索:只回 success 是差设计。要返回 Agent 下一步用得上的信息,比如工单 ID、链接、负责人,省掉一次追查调用。
- 把翻页做进返回体:带上 total、showing、page,再加一句「用 page=2 看更多」的提示,Agent 自己就知道怎么取剩下的数据。
- 先定性:选错率随工具数量上升,说明工具之间的边界糊了。search、find、lookup 三个功能相近的工具摆在一起,选错是工具集的病,模型只是把病症暴露出来。
- 合并重复项:两个工具的使用场景重叠超过一半就合并。宁可一个工具多几个参数,也不要两个容易混淆的工具。
- 上命名空间:相关工具加统一前缀分组,jira_create_issue、jira_list_issues、git_diff、db_query。Agent 一眼看出哪些工具操作同一个系统,选错概率直线下降。
- 用数据验收:工具选择错误可以被评测度量。治理前后跑同一套用例对比选对率,证明砍工具砍对了。
- Prototype:让 Claude Code 按需求生成工具原型,包括工具定义、参数校验、API 调用逻辑,人只描述要什么。
- Evaluate:建评测度量四个维度:Agent 是否选对了工具、参数填写是否正确、返回结果是否被正确理解、端到端任务完成率。
- Optimize:让 Claude Code 读评测结果自动分析失败原因。它能给出「43% 的错误是 Agent 混淆了 search 和 list,因为描述太相似」这种精确结论,然后自动重写描述、补区分说明和示例。
- 定人的角色:人负责定评测标准和最终验收,机器负责写和改。循环跑到达标为止,迭代速度比人肉调试快一个量级。
- 第一周定义成功:写评测的第一价值是逼团队回答「什么算好」。挑最核心的用户场景写 20 条精心设计的 Task,每条含输入和成功标准。20 条就能起步,别等 500 条的宏大计划。
- 搭最小闭环:Harness 负责起沙箱、跑任务、收结果,Grader 负责打分,一组 Task 构成 Suite 一键全跑。先把 Task、Trial、Grader、Suite 这套语言和工程团队对齐。
- 存好 Transcript:每次执行的完整轨迹(每步推理、每次工具调用、中间结果)都记录下来。失败时能定位是选错工具还是填错参数,评测才能指导改进方向。
- 接入变更流程:从此改 Prompt、换模型、调参数都先跑一遍 Suite,几分钟看到影响面。团队的汇报语言从「感觉变差了」升级成具体分数。
- 解释为什么跑那么多次:模型输出有随机性,同一个任务单跑一次的结果就是噪音。同一个 Task 要跑多次 Trial 才有统计意义,省这笔钱等于拿骰子做产品决策。
- 算没有评测的成本:修一个 bug 制造三个新的,等用户投诉才发现;一次「Agent 变差了」的排查要翻三天 commit 记录。工程师的时间比 API 费贵得多。
- 算评测赚的钱:每次改 Prompt、换模型几分钟就知道影响;新模型发布时跑一遍 Suite 确认不掉分就切换,每次都第一批吃红利。
- 给降本方案:20 条精选用例覆盖核心场景;确定性检查用毫秒级、零成本的代码 Grader 打底,花钱的模型 Grader 只用在主观质量上。
- 先定性:单一维度的改善不等于整体改善。真实案例里,为减少啰嗦改 System Prompt,简洁性上去了,coding eval 掉了约 3%:模型变简洁的同时,把关键注释和错误处理也省了。
- 流程错误一:没做逐行 ablation。Prompt 变更应该每次只改一行、单独测量影响,搞清楚每句话各自的贡献。
- 流程错误二:只测了目标维度。上线前要跑完整 eval suite,简洁性、代码质量、过度工程化一起看,防止按下葫芦浮起瓢。
- 举同类事故:改 reasoning effort 默认值这种看似无害的配置调整,也曾造成多个维度退化。结论是所有变更,包括 Prompt、参数、基础设施,一视同仁走评测。
- 失效机制一,模型识别考试:Claude Opus 4.6 在 BrowseComp 上能推测出自己在跑 benchmark,识别出题目模式后去搜答案,或者调用训练数据里见过的类似题。静态题库遇上联网环境,测的可能是回忆力。
- 失效机制二,区分力衰减:模型越强,识别评测的能力越强,固定 benchmark 对前沿模型的区分力在持续下降,公开题目的成绩会被系统性高估。
- 失效机制三,基础设施噪音:仅改 CPU 和内存限制,分数就能差 6 个百分点;同一模型同一任务,换个沙箱配置排名会逆转。
- 给替代方案:用自己业务场景的私有用例、动态生成测试题、限制联网;评测环境和生产环境对齐,报分数时同时报环境配置。
- 失败模式一 One-shotting:Agent 想一口气做完所有功能,窗口中途用完。下一个接手的 Agent 面对半成品只能猜前任做了什么,时间全耗在把基本功能修回来,推进陷入停滞。
- 失败模式二 Premature Completion:Agent 看到实现了几个功能就宣布完工,实际只做了核心功能的 30%。没有任务清单不知道还差什么,没有端到端测试证明真的能跑。
- 给一个类比:像一个每次换班就完全失忆的工程师团队,每个人坐下都要从零理解一堆半成品代码。这就是没有交接机制的长运行 Agent。
- 点出本质:长任务的核心挑战是交接,动手做反而不难。Agent 缺的是上下文断裂时维持连续性的机制,解法方向是进度文件加增量提交。
- 拆双角色:Initializer 只跑第一轮,负责从零到有:建 init.sh 搭环境、写进度文件、把高层需求展开成详细功能清单、做首次 git commit;Coding Agent 每轮读进度文件,一次只做一个功能,完成后更新进度并提交。
- 功能清单用 JSON:模型不容易错误修改结构化 JSON,Markdown 清单常被顺手重写。每个功能带分类、步骤列表和 passes 字段。
- 验收靠端到端测试:明确要求 Agent 用浏览器自动化真打开页面、真点按钮验证,光有单元测试不够。E2E 通过才算 passes。
- 说清一次一个的价值:每轮结束代码都处于可合并状态,commit 是回滚点,进度文件是交接书,窗口永远不会被塞爆。
- 先承认一半:Harness 编码的是对当前模型能力的假设,假设会过时。真实案例:Sonnet 4.5 有上下文焦虑,对话变长表现下降,团队加了 context reset 机制;换 Opus 4.5 后焦虑消失,这机制反而拖慢效率。
- 给分类标准:特定模型的绕道方案、特定 Prompt 技巧会过时;沙箱隔离、权限分层、评测体系、Session 日志是持久架构,模型越强越需要。
- 按分类排期:持久资产优先做,临时补丁能不写就不写。原则是今天不写明天可能不需要的代码。
- 反过来讲评测的角色:模型升级时,恰恰是评测让我们几天内确认新模型能不能用、哪些旧补丁能删。这三个月里的评测投入,省的正是以后每次升级的人肉验证。
- 摆三组件:Session 是 append-only 的持久事件日志;Harness 是脑,跑调用模型和路由工具的循环;Sandbox 是手,执行代码和改文件的容器。
- 讲宠物变牛群:三者挤在一个容器里时,容器挂了会话就丢了,任务彻底失败;拆开后沙箱挂了只是一次工具调用报错,模型自己决定重试,系统新建容器接着干。
- 讲脑的恢复路径:Harness 崩了也不怕,新 Harness 用 wake(sessionId) 启动,从 Session 读回完整事件流恢复上下文,任务不受影响。
- 报性能收益:脑不用等容器 ready 就能开始处理,TTFT 中位数降了 60%,p95 降了 90% 以上;组件解耦后还能一脑控多手并行、一手在多脑间接力。
- 先给类比:Context Window 是内存,快、小、用完即丢,装当前推理的精选内容;Session 是硬盘,容量大、断电不失,装所有原始事件的完整记录。
- 说分离的动机:Compaction 和裁剪都是不可逆操作,而且压缩时很难预判未来哪些 Token 重要。今天看似无关的细节,可能是明天关键决策的依据,丢了就永远回不来。
- 给正确姿势:原始事件全量进 Session,append-only 只增不减;窗口只是从 Session 临时取景的一个视角。丢了 Context 没关系,随时能重建。
- 讲工程红利:Harness 用 getEvents 按需查任意区间、过滤特定事件类型,还能保持前缀稳定优化 Prompt Cache 命中率;换模型、换 Harness 都不动 Session。
- 先给结论:能砍大部分,不能全去。Auto Mode 的实践数据是分类器加沙箱的组合把权限弹窗减少了约 83%,安全性没有下降。
- 讲分类器:给每个操作定风险等级,读文件、搜代码这类安全操作直接放行,真正可疑的才弹窗。弹窗从「默认都问」变成「例外才问」。
- 讲沙箱兜底:就算分类器误判放行了危险操作,代码也在文件系统、网络、进程三重隔离的环境里执行,伤不到真实系统。
- 保留高危死名单:删文件、写数据库、发邮件这类操作永远人工确认。这部分弹窗恰恰是用户信任感的来源。
- 接住供应链风险:Agent 信任 MCP 返回的工具描述,恶意服务器改一改描述就能操控行为。Agent 以为自己在用「搜索文件」工具,实际执行的是删除。
- 接住注入风险:服务器本身没恶意也不安全,它转发的内容(比如抓来的网页)可能藏着注入指令,Agent 处理这些数据时会被说服执行非预期操作。
- 给治理动作:像审第三方 SDK 一样审每个 MCP 集成,接入数量最小化,MCP 返回的内容一律按不可信数据处理。
- 给架构兜底:OAuth Token 存外部 Vault、走代理转发,沙箱内拿不到凭证;网络隔离限制外传。就算注入成功,攻击者也偷不到东西、传不出去。
- 先定调:承诺靠结构兑现,模型自觉靠不住。设计目标是就算模型被注入指令完全操控,生产库也碰不到。
- 给三层信任控制:工具级,高危操作每次人工审批;会话级,每次会话限定授权范围、结束自动回收;全局级,组织策略写死永远不能访问生产库,任何会话授权都盖不过它。合同里的「永远」对应的就是全局层。
- 加网络层隔离:Agent 跑在受限沙箱里,网络访问范围受控,生产库的地址在网络层就不可达,连试的机会都没有。
- 给可审计性:Session 日志 append-only 记录每一步操作,客户随时可以来审计。承诺加证据,这才是能签的字。
- 给出那句话:Do the simplest thing that works。所有精巧的模式最后都指向它:从最简方案开始,复杂度只在明确带来收益时才加。
- 用它串一遍本章:能用一个 Prompt 解决就别上 Workflow,能用 Workflow 就别上 Agent;上下文找最小高信号 Token 集合;工具能合并就别拆分。
- 补第二层认知:Agent 工程的核心是状态管理。什么信息在什么时候、以什么形式出现在窗口里,这是工程师能控制的全部;模型的智能是预训练给的,控制不了。
- 补时间维度:模型在变强,工程在变简单。重试、纠错、格式化这类辅助逻辑会随模型进步变得多余,力气要花在评测、沙箱、Session 这些持久架构上。
「AI 工程设计模式 · 30 道灵魂拷问」为什么能找到相关内容
「每题附考察意图、答题框架与加分点:上下文工程 / 长任务 / grep vs RAG / ACI 工具设计 / 评测基建 / LLM-as-Judge / 沙箱隔离」把检索问题从“把资料存起来”推进到“怎样找到真正相关的资料”。这一步决定了 RAG、推荐和以图搜图最后交给模型的输入质量。
相似度不是答案,召回之后还要核对
在「每题附考察意图、答题框架与加分点:上下文工程 / 长任务 / grep vs RAG / ACI 工具设计 / 评测基建 / LLM-as-Judge / 沙箱隔离」对应的流程里,Embedding 负责把对象放到可比较的语义空间,近邻索引负责减少搜索范围,最终的回答仍然依赖召回片段是否覆盖问题、距离指标是否合适,以及内容有没有过期。
- 先给定义: Prompt 工程优化指令的写法。上下文工程管理每一轮推理时送给模型的全部 Token:System Prompt、工具定义、对话历史、检索结果、用户状态,全都算
- 说清动机: 上下文是稀缺资源。三个硬约束:Context Rot(越长检索准确率越低)、注意力预算有限(无关 Token 稀释有用信息)、n 平方复杂度(上下文翻倍,注意力计算量变四倍)
- 给目标: 找到最小的高信号 Token 集合。每个 Token 都要为推理做贡献,能塞多少塞多少的思路行不通
先区分找得到和找得准
把「每题附考察意图、答题框架与加分点:上下文工程 / 长任务 / grep vs RAG / ACI 工具设计 / 评测基建 / LLM-as-Judge / 沙箱隔离」落成一次小测试:准备几条有明确答案的查询,记录召回的相关性、遗漏和无关结果,再决定是否需要换切分方式、索引或重排。
从这个例子继续往下看
这篇内容先从「先给定义: Prompt 工程优化指令的写法。上下文工程管理每一轮推理时送给模型的全部 Token:System Prompt、工具定义、对话历史、检索结果、用户状态,全都算」展开,再把问题推进到「说清动机: 上下文是稀缺资源。三个硬约束:Context Rot(越长检索准确率越低)、注意力预算有限(无关 Token 稀释有用信息)、n 平方复杂度(上下文翻倍,注意力计算量变四倍)」。把这两个片段放在一起看,可以更清楚地分辨:哪些是文章给出的事实,哪些是需要结合条件才能成立的判断。
把这条判断带到下一个场景
检索系统也可以这样看:先确定什么算相关,再观察召回是否覆盖问题,最后检查排序、切分和时效性有没有把真正有用的内容挤出去。
- 「AI 工程设计模式 · 30 道灵魂拷问」:先给定义: Prompt 工程优化指令的写法。上下文工程管理每一轮推理时送给模型的全部 Token:System Prompt、工具定义、对话历史、检索结果、用户状态,全都算
- 「继续往下看」:说清动机: 上下文是稀缺资源。三个硬约束:Context Rot(越长检索准确率越低)、注意力预算有限(无关 Token 稀释有用信息)、n 平方复杂度(上下文翻倍,注意力计算量变四倍)
- 「最后的要点」:先摆两难: 开新窗口,Agent 失忆,会重复已做过的工作;留在旧窗口,Token 越堆越多,注意力被稀释,表现持续下降。Claude Code、Cursor、Devin 每天都在解这个题
最后的「最后的要点」把讨论落到「先摆两难: 开新窗口,Agent 失忆,会重复已做过的工作;留在旧窗口,Token 越堆越多,注意力被稀释,表现持续下降。Claude Code、Cursor、Devin 每天都在解这个题」。回看这条线索时,最值得保留的是:当输入、规模或风险改变,哪些判断需要重新做一遍。
我把这篇文章里的一个判断改写成了今天可以验证的小实验。比记住结论更有用的是,知道下一步要观察什么。
读完以后我先回头找它成立的条件,而不是直接把方法搬进项目。这个顺序让后面的取舍清楚很多。
如果把这个判断放到真实工作里,最先需要补的约束是什么?我想知道从阅读到第一次实践之间,哪一步最值得先做。
还没有这篇文章的讨论。