
Grab Pro Now
Customize your admin
从 prompt 到 graph 的五层工程:每一层解决了上一层的什么失败,天花板在哪,又为什么必然长出下一层——被打破的信念是「AI 用得好不好,取决于会不会写提示词」。
Lesson 04 · 要打破的信念
AI 用得好不好,取决于会不会写提示词。
提示词只是五层工程的第一层——每一层的天花板,是下一层的地基。
时长
90 分钟
受众
写过提示词,没进过工程
现场演示
同一个 bug 的五种修法
带走物
自测清单:你在第几层
Module 01 · 知识梳理 · 地图
这不是五个流派,而是一条因果链:每一层都诞生于上一层修不掉的那个失败。先看全图,下面五章逐层解剖。
教学装置 · 五层谱系图(点任意一级读注)
英文版 ↗ /diagrams/lineage/agent-engineering它答得再好,也看不见你的代码、你的数据、你昨天的会议——于是「把事实送进窗口」自己长成了一门学问。
什么都知道了,它却仍然只能说:每一个结论都要靠人手搬回现实——于是下一层给了模型一双手。
手一次只干一轮:错了就停在那儿等人推一把——于是下一层把「轮」连成了「回路」。
一扇窗装不下整个代码库,一个脑子只能串行——于是下一层把很多个排成了一张图。
every ceiling is the next stage's foundation · click a stage to read why it exists
解决了上一层的什么失败
裸模型的输出忽好忽坏、不成体裁。角色设定、few-shot 示例、思维链——把「问」从碰运气变成一门手艺,同一个模型的可用率被问法拉开了数倍。
实际形态
天花板 —— 下一层为什么存在
模型再会答,也看不见你的代码、你的数据、你昨天的会议——它只知道训练时的世界。于是「把事实送进窗口」成了下一层。
每一层的天花板,是下一层的地基。
Module 02 · 知识梳理 · 第 1 层
一切技巧的根源是同一个事实:模型不执行指令,它只做统计上最自然的续写。
机制解剖
语言模型是一台「续写机」:它不理解命令,只是在延续文本的统计模式。提示词工程的全部技巧,本质是同一个动作——把你想要的输出,变成统计上最自然的续写。角色设定收窄语域(客服经理的下文不会是段子);few-shot 示例划定输出的分布(模型模仿的是例子,不是你的形容词);输出契约把「对不对」的一部分转化成「格式合不合法」,让校验可以机械化;思维链强迫中间步骤显式化——错误因此在中间暴露,而不是藏在一个看起来自信的结论里。
这一层在 2026 年的真实处境是:它没有消失,而是被工程化吸收了。你今天在 Claude Code 里打一句大白话就能用,是因为产品把角色、格式、工具说明都预置进了 system prompt——你不再手写这些技巧,不代表它们不存在,而是有人替你把它们变成了基础设施。这正是整个谱系的第一次「上层吸收下层」。
教学装置 · 六根杠杆(点任意一格自己开合)
英文版 ↗ /diagrams/catalog/prompt-levers没有一根杠杆能让模型变聪明。每一根都只是删掉了你不想要的续写——这也是提示词对一台「只负责把文本接下去」的机器所能做的全部。
教学装置 · 提示词组装台
模型将读到的全部世界
任务
给客户写一封延期道歉邮件。
现在它只能靠猜:语气、结构、立场,全部随机。
术语表 —— 课后你会在野外遇到它们
常见误区:魔法咒语迷信 — 「深呼吸」「我会给你小费」这类网传把戏,在新一代模型上的收益趋近于零。可迁移的只有四件事:说清目标、给出示例、定义格式、提供事实。另一个信号:提示词超过三行还没进版本管理,你就已经在维护一段不可维护的代码了。
Module 03 · 知识梳理 · 第 2 层
模型没有记忆:每次调用都是一次性阅读,窗口里放什么,它就活在什么世界里。
机制解剖
模型没有记忆。每次调用都是一次「一次性阅读」:窗口里有什么,它的世界里就有什么;窗口里没有的,对它而言不存在。所谓 RAG、检索、记忆系统,全部是同一个问题的答案——在正确的时机,把正确的事实放进这扇窗。
窗口从 2023 年的 4K token 走到今天的百万级,但两个物理约束没有变:注意力不均匀——开头与结尾读得最清楚,中段最容易被忽略(lost in the middle);以及每个 token 都是真金白银的成本和延迟。所以这一层的手艺不是「塞」,而是「编辑」:检索出最相关的片段而不是整份文档,把陈年历史压缩成摘要,把法典常驻,把无关的挡在门外——并且永远给工具结果留出余量,因为 agent 干活时,读到的每个文件都要挤进这同一扇窗。
教学装置 · 同一扇窗的两种填法(12 轮走一遍)
英文版 ↗ /diagrams/versus/context-budget分岔就在这里 —— 什么被装进窗口
全都塞进去
窗口再大一点就好了
已经驱逐 6 次:这次运行开始为它读过的文件重新付钱。
编辑它
窗口就是预算
压缩了 2 次:过程被丢掉,结论被留下,没有任何东西被重读。
两种做法最后都会填满;区别在于只有一种付得起「选择丢掉什么」的代价。一扇从 88% 起步的窗口没有压缩策略可用,只剩驱逐——而驱逐正是一次运行为同一个文件付两次钱的方式。
术语表 —— 课后你会在野外遇到它们
常见误区:「上下文越长越好」 — 把窗口塞满的团队,得到的是又贵、又慢、中段还失明的模型。判断一段内容配不配占窗口,标准只有一个:它会改变结论吗?不会,就删掉。窗口利用率是这一层的核心 KPI——不是塞进了多少,而是留出了多少。
Module 04 · 知识梳理 · 第 3 层
harness(挽具)是套在模型外面的执行环境:感知、行动、权限、门禁,都是它的事。
机制解剖
先拆掉一个误解:模型自己没有手。它能「改文件」,是因为外面套着一层 harness(挽具):模型输出一个结构化的工具调用,harness 真的去执行——读文件、改代码、跑命令——再把执行结果写回窗口,模型看着结果决定下一步。一轮接一轮,模型始终活在文本世界里,是 harness 在替它感知和行动。Claude Code、Codex 这类产品,本体就是一套精心设计的挽具。
既然行动是真的,约束就必须是工程的:权限模式决定哪些操作要人点头,沙箱决定命令能碰到哪里,门禁(lint、类型、测试)决定「做完」由谁说了算。AGENTS.md 是给这双手立的法——风格、禁区、验证方式,写一次,每一轮都生效;它是你把「口头交代」变成「常驻规则」的地方,也是这一层最便宜、回报最高的一笔投资。
教学装置 · 挽具的解剖(悬停隔离 · 点击读注)
英文版 ↗ /diagrams/architecture/agent-harnessPick a box to read why it is in the stack.
术语表 —— 课后你会在野外遇到它们
常见误区:「给了工具就放心了」 — 没有门禁的手,只是更快地犯错。harness 工程的一半在「能做什么」(工具与权限),另一半在「做完之后谁来验」(门禁与 hooks)——只建前一半的团队,得到的是一个高速但不可信的实习生。
Module 05 · 知识梳理 · 第 4 层
一轮做不完真实任务。loop 把轮连成程:失败不再是终点,而是下一轮的输入。
机制解剖
有了手,还差一件事:真实任务一轮做不完。Loop 把「轮」连成「程」——计划、执行、验证;红了,把失败信息作为新输入回到执行;绿了,才允许汇报。这个结构里只有一个设计要点,但它是生死攸关的:终止条件必须是客观信号(测试、类型、构建),绝不能是模型的自我评估——模型对自己工作的信心,和工作的正确性之间,没有可靠的相关性。
这解释了为什么「先写失败测试、再修复」(TDD)和 agent 是天生一对:它把「什么叫修好了」在开工之前就变成了机器可验证的命题。也解释了这一层的另一半形态——watch 与 cron 常驻:回路一旦可信,它就不必等你按回车才转。
教学装置 · 一次回路,走一遍
英文版 ↗ /diagrams/runs/loop读窗口 · 4.1k token · 选下一步
思考——模型只凭眼前这段文本,决定下一步做什么。它没有别的信息来源。
一个 agent,一条车道,两轮之间唯一变化的是它知道了什么。这足以让它修正自己的错误——却不足以让两件事同时发生,而那正是下一层的起点。
教学装置 · 三轮之间流动的是什么
任务:提交按钮点了没反应 · 终止条件:门禁全绿
新增 checkout.submit.test.ts:断言点击后请求发出
回流 ↓测试红是这一轮的目的:bug 被机器抓住了,「修好」从此有了定义。
改 submitPayload 的取值,重跑门禁
回流 ↓还剩一条红:空值边界没盖住——失败断言原文写回窗口,下一轮针对它。
对 null 客户提前返回,补一条边界断言
三轮,两红一绿。 注意谁在喊停:不是模型「我觉得修好了」,而是三枚门禁同时变绿——失败信息逐轮回流,是这个回路和「无脑重试」的全部区别。
术语表 —— 课后你会在野外遇到它们
常见误区:「循环 = 无脑重试」 — 没有验证器的循环只是在烧 token;失败信息不进入下一轮窗口的循环,连重试都不如——它在用同样的输入期待不同的输出。判断一个回路健不健康,看两点:终止条件是不是客观的,失败信息有没有回流。
Module 06 · 知识梳理 · 第 5 层
单个 agent 的窗口与注意力有上限。graph 把任务拆成 agent 的图——但它是规模的解法,不是质量的护身符。
机制解剖
回路再可靠,一个 agent 也只有一扇窗、一份注意力。Graph 把任务拆成 agent 的图:编排者分派;多个搜索者并行——它们互不知情,反而覆盖更全,因为每个走的是不同的路径(按文件名、按调用关系、按文本);汇总去重之后,交给独立的验证者对抗复核——它的任务不是确认,而是推翻;最后综合成一份带证据的结论。
两条公理撑起这一层的全部设计:并行的价值在视角不同,不在数量——十个一模一样的搜索者不如三个路径互异的;验证者必须独立于生产者——让干活的自己验自己,等于没验。这也是它与前四层的根本区别:前四层在优化一个 agent 的能力,这一层在设计多个 agent 之间的制度。
教学装置 · 同一份工作拆成图,走一遍
英文版 ↗ /diagrams/runs/graph需求已冻结 · sha 9f3c1ab
分叉之前,需求先被冻住。输入还在动的时候分头去做,不是三个 agent 干一件事,是三个 agent 干三件不同的事。
七个任务,五个时间单位——省下来的不只是并行那部分。真正的关键是失败的那一路自己回去了,于是本来就对的两路保住了成果。到了这一层,你设计的已经不是提示词、也不是回路,而是:谁先走、谁并排走、失败允许落在哪里。
教学装置 · fan-out / 对抗验证拓扑(悬停隔离 · 点击读注)
Pick a box to read why it is in the stack.
术语表 —— 课后你会在野外遇到它们
常见误区:「更多 agent = 更好结果」 — 协调成本随图的边数增长:能在一个窗口里讲清楚的事,拆成图只会更慢、更贵、更难对账。上 graph 的判据是规模——任务超出了一扇窗,或需要互相独立的视角——而不是排场。
Module 07 · 现场演示
概念只有放在同一个任务上才能被比较。看每一层里「你」做了什么、AI 做了什么——顶上那根分工条的移动,就是这十年。
同一个任务
线上的提交按钮点了没反应——修复它。
这一层的真相 — AI 只看得见你贴给它的世界。每一次搬运都在丢上下文——修复质量取决于你的复制粘贴水平。
Module 08 · 带走物
课程的最后不是总结,是一面镜子和三个动作:先定位自己,再从定位出发挪一层。
从上往下打勾——最后一个能打勾的行为,就是你所在的层。
三个动作,各对应一次「向上挪一层」的最小尝试。
①定位你的一件事
找一个你每周都在重复的手工任务,对照五层判断:它现在卡在第几层?卡住它的是工具,还是你的工作习惯?
②写下第一部法典
给你手头的项目写第一份 AGENTS.md——三条规则就够:一条关于风格,一条关于禁区,一条关于验证。下次让 AI 改代码时看它守不守。
③跑一次真的回路
挑一个真实的小 bug,要求 AI「先写一个复现它的失败测试,再修到测试变绿」。体会终点从「它说改完了」变成「测试说通过了」的差别。