Appearance
懒人AI手册:AI Agent 四层架构完全教程
从看懂概念到动手搭建到诊断排错的系统教程
目录
- 01. 你为啥总听到这四个词
- 02. 一张同心圆看懂四层
- 03. 四个圈到底是啥
- 04. 日常四层操作
- 05. 从零搭建一个 Agent
- 06. 三个真实案例
- 07. 搭你的 AI 知识库(RAG 实战)
- 08. 诊断与避坑总表
- 09. 持续精进
- 附录:术语小词典
01. 你为啥总听到这四个词
你打开知乎、刷推特、翻公众号,想学怎么用 AI 真正干活——不是聊天解闷,是让它替你做事。
结果迎面砸过来四个词:prompt、context、harness、loop。
每个词单独看好像都认识,连起来却像天书。更让人崩溃的是,这四个词出现的时候,往往带着一股"你要是不懂这个就落伍了"的味道——"prompt 工程已经过时了""现在都讲 context engineering 了""2026 年的核心是 loop"。
听上去像是四个互相取代的新潮流,谁不知道最新那个谁就 out 了。
这是最大的一个错觉。
四个词不是四代,是四个同时干活的部件
这四个词不是"prompt 死了、context 上位、harness 接班、loop 称王"这种改朝换代。它们是任何一个 AI agent 在干活的任何一个瞬间,都必须同时具备的四个部件。
就像一个人干活,你不会说"手过时了、现在流行用脑子"——手、脑、眼、腿是同时在用的,只是不同的活更吃哪个部件而已。
四词简史
名字是新的,东西是旧的。
- 2020-2022:prompt 兴起,GPT-3 后 prompt engineering 成为显学
- 2025 年中:context 被命名。Tobi Lütke(Shopify CEO)→ Karpathy → Simon Willison,八天接力,context engineering 一词扩散
- 2026 上半年:harness 和 loop 雪崩式被命名。Junyang Huang 公式"Agent = Model + Harness",Addy Osmani 命名 loop engineering
- 反常识:loop 机制 2022 年(ReAct 论文)就有了,名字 2026 年才来,晚了 4 年
启示:别追名词,看瓶颈往哪走。
02. 一张同心圆看懂四层
四层的关系是嵌套的同心圆:
text
LOOP 循环 —— 让它自己一圈圈转
HARNESS 装置 —— 模型的手脚和护栏
CONTEXT 上下文 —— 它当下看得见的全部信息
PROMPT 提示词 —— 你写给它的那段话
MODEL 模型(大语言模型本体)一句话:prompt ⊂ context ⊂ harness ⊂ loop。层层嵌套,不是层层取代。
用一台电脑就能讲明白
这个比喻来自 Karpathy(前特斯拉 AI 总监、OpenAI 创始成员):
大语言模型就是一台新型电脑的 CPU;上下文窗口是它的内存;我们这些用 AI 的人,正在扮演这台新电脑的"操作系统"。
| 同心圆的层 | 在电脑比喻里是 | 一句话 |
|---|---|---|
| model 模型 | CPU | 干"算"这件事的核心,但光有 CPU 是台裸机 |
| prompt 提示词 | 写给 CPU 的指令 | 你这一步具体要它算什么 |
| context 上下文 | 内存(RAM) | 这一步算的时候,内存里摆着哪些数据 |
| harness 装置 | 设备驱动 + 权限管理 | 把外设接上,管好谁能动什么 |
| loop 循环 | 调度器 + 看门狗 | 决定程序何时启动、何时停止、卡死了怎么办 |
越往外的层,吃的越是几十年的老工程本事,而不是什么新的 AI 魔法。这也是为什么推动 harness、loop 这些概念的,大多是资深工程师,而不是玩 prompt 玩得花的人。
怎么读这篇教程
| 区块 | 章节 | 你如果在问 |
|---|---|---|
| 看懂区 | 01-03 | "这几个词到底啥意思" |
| 动手区 | 04-07 | "我该怎么搭" |
| 诊断区 | 08-09 | "搭了但跑不好怎么办" |
无代码路线(扣子 Coze / Dify)和代码路线(Python + Claude API)双线并行,你选哪条都行。
03. 四个圈到底是啥
prompt:你说的那句话
prompt 就是你写给 AI 的那段话本身。写得好它就答得好,写得烂它就答得烂。
好的 prompt 示例(小红书文案):
text
【角色】你是一个小红书爆款文案写手
【任务】请为这款防晒霜写一篇种草笔记
【步骤】1.抓痛点(防晒闷痘)2.讲卖点(轻薄透气)3.给场景(夏天通勤)
【约束】字数300以内,口语化,结尾加互动引导
【样例】输入:防晒霜 → 输出:姐妹们!这个防晒我真的会谢...context:工作台 / 内存
context 是模型这一步"看得见"的全部信息。不只有你刚写的那句话,还包括之前聊过的、刚查到的资料、上一步的结果。
context 有两个物理限制:
- 会满:上下文窗口有上限(如 200K token)
- 会腐烂:东西堆多了 AI 会"变笨",这叫 context rot,大约 3 万 token 开始明显退化
管好 context 的核心不是往里加,而是精准地减。
harness:手脚和护栏
模型本质是个"缸中之脑"——没手脚、没记忆、还会高估自己。harness 就是给它配的鞍具缰绳,包含五大件:
- 工具(Tools):让它能读文件、搜网页、调 API
- 记忆(Memory):跨轮次记住关键信息
- 权限(Permissions):谁能动什么、哪些操作要人工确认
- 沙箱(Sandbox):限制它的活动范围,防止误删
- 护栏(Guardrails):输入输出过滤,防止越界
有句话很锋利:"如果你不是那个模型,那你就是 harness。"
loop:自己转的发条
loop 是让 agent 自己一圈圈转的自治循环:取信息 → 想一步 → 做一步 → 看结果 → 再来一圈,直到达成目标或被叫停。
loop 最要命的不是怎么转,而是何时停。
业界真实案例:4 个 agent 没设停止条件,连转 11 天,烧掉 4.7 万美元。
一次干活四层同时在场
text
你输入:"帮我查下今天的竞品价格,整理到表格里"
【loop 启动第1轮】
→ harness 调用浏览器工具,打开竞品网站
→ context 装入:你的指令 + 上一步获取的网页内容
→ prompt 生效:"提取价格信息,整理成表格"
→ model 计算:解析网页,提取价格
← prompt 输出结果
← context 更新:加入提取结果
← harness 工具执行完毕,返回数据
← loop 判断:是否完成?是 → 停止
四层在这一圈内全部参与了。两组判别测试
prompt vs context:纠结"这句话怎么写才更清楚"是 prompt 的事;纠结"这一步该让它看到哪些信息"是 context 的事。一个管措辞,一个管信息流。
harness vs loop:关掉电脑它还在跑吗?关机就停 → 最多到 harness;关机后云端还在接着转 → 才进 loop。
一句话:关掉电脑还在跑的,是 loop。
04. 日常四层操作
prompt 三个写法
- 结构化:用标签组织(【角色】【任务】【步骤】【约束】【样例】)
- 给角色:让模型扮演特定身份("你是一个资深数据分析师")
- 给例子:少样本提示,但别给多——3-5个够了,多了反而过拟合
context 三个动作
- 只喂相关:跟这步无关的信息不要放进来
- 压缩可还原:长文档先摘要,保留可追溯的原文链接
- 防 context rot:关键信息放两头(开头和结尾),中间放支撑材料
harness 三件事
- 配工具:给它能干活的工具,定义好工具的 schema(参数、返回值)
- 设权限:哪些操作它可以自己做,哪些必须人工确认
- 加可观测:每一步都记日志,出问题能回溯
loop 三道闸
- 目标闸:明确什么算"完成"
- 停止条件闸(三道硬停):
- 最大轮次上限(max iteration)
- 无进展自动停(no-progress,看状态变化不是数步数)
- 花费/token 上限
- 预算上限闸:烧到 X 美元强制停
四层联调
无代码路线(Coze / Dify):
在 Coze 中创建 Bot → 配置 prompt → 上传知识库(context)→ 添加插件(harness)→ 设置工作流循环条件和终止规则(loop)。
代码路线(Python + Claude API):
python
import anthropic
client = anthropic.Anthropic()
# prompt
system_prompt = """你是一个资料整理助手。
步骤:1.读取文件 2.提取关键信息 3.整理成表格
约束:只输出表格,不要解释。"""
# loop 骨架
max_iterations = 10
no_progress_limit = 3
budget_limit = 1.0 # 美元
for i in range(max_iterations):
# harness: 调用工具
result = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=4096,
system=system_prompt, # prompt 层
messages=current_context, # context 层
tools=tool_definitions, # harness 层
)
# loop: 检查停止条件
if is_task_complete(result):
break
if cost_so_far > budget_limit:
break
if not has_progress(result, last_state):
no_progress_count += 1
if no_progress_count >= no_progress_limit:
break05. 从零搭建一个 Agent
开工 checklist
| 决策项 | 选项 | 建议 |
|---|---|---|
| 路线 | 无代码 / 代码 | 第一次做选无代码(Coze),需要灵活控制选代码 |
| 模型 | Claude / GPT / DeepSeek | 工具调用首选 Claude,性价比选 DeepSeek |
| 工具 | 读文件 / 搜网页 / 调 API | 按任务需要配,别一上来全配 |
| 停止条件 | 三道硬停 | 一个都不能少 |
按四层依次搭建
第1层 prompt:写好系统提示词,明确角色、任务、步骤、约束、输出格式。
第2层 context:设计信息流——每一步该让模型看到什么。做减法比做加法重要。
第3层 harness:配工具(定义 schema)、设权限(哪些自动执行、哪些要确认)、加日志。
第4层 loop:装三道硬刹车——最大轮次、无进展检测、预算上限。
错层修复诊断
| 你观察到的症状 | 病灶层 | 对症处方 |
|---|---|---|
| 理解错任务 / 格式跑偏 / 答非所问 | prompt | 把意图/角色/步骤/约束写明,关键规则放结尾 |
| 答得对但用错信息 / 一长就变笨 / 忘了前文 | context | 做减法、压缩、剪枝,关键信息放头尾 |
| 编造参数 / 读不到文件 / 越权乱删 / 失忆 | harness | 查工具 schema、权限、沙箱、日志——别改 prompt |
| 停不下来 / 烧钱 / 原地打转 / 假装完成 | loop | 装三道硬刹车,"完成"保留人工审查 |
一条铁律:改 prompt 改了三次还不见好,停手,往外一圈查。
完整失败案例:死循环烧 $2,847
一个开发者做了个"自动修 bug"的 agent,完成条件定义成"所有测试通过"。但代码库里有个测试因环境问题永远不可能通过。
没装最大迭代 → 跑了 4 小时 没装无进展检测 → agent 反复改同一处代码 没装预算上限 → 烧掉 $2,847
三道闸任何一道单独存在都能把 $2,847 的灾难缩小成一次小麻烦。
06. 三个真实案例
案例一:自动整理资料的 Agent(成功)
任务:每天自动读取 10 个行业新闻源,提取关键信息,整理成日报。
| 层 | 配置 | 要点 |
|---|---|---|
| prompt | "你是行业分析师,提取关键信息整理成结构化日报" | 明确输出格式 |
| context | 当天新闻原文 + 历史日报模板 | 只放当天 + 模板,不放历史新闻 |
| harness | 网页抓取工具 + 文件写入工具 + 日志 | 写入需人工确认 |
| loop | 最大3轮、预算$0.5/天 | 跑完即停 |
结果:稳定运行 3 个月,日均成本 $0.3,人工只做最终审阅(约2分钟)。
案例二:自动改 Bug 的编码 Agent(翻车 → 修复)
初始配置:完成条件 = "所有测试通过"。
翻车:有个测试因环境问题永远过不了。agent 反复修改代码,越改越乱,4小时烧 $2,847。
修复:
- 完成条件改为"核心测试通过 + 非核心测试跳过"
- 加最大迭代 15 轮
- 加无进展检测:连续 3 轮代码没变化就停
- 加预算上限 $5
- 改完后日均 $0.8,成功率 85%
案例三:一人公司内容流水线 Agent
任务:自动完成"选题→研究→初稿→配图→排版"全链路。
| 层 | 配置 |
|---|---|
| prompt | 每个环节独立 prompt(选题 prompt / 研究 prompt / 初稿 prompt) |
| context | 选题库 + 风格参考 + 品牌指南 |
| harness | 搜索工具 + 图片生成工具 + 飞书文档写入 |
| loop | 5 步固定流程,每步独立 loop,完成后人工审阅再进下一步 |
关键设计:不是一个大 loop 跑完全程,而是拆成 5 个小 loop,每步完成都暂停等人工确认。控制可以外包,判断不能外包。
三案例共性
- 每个成功的 agent 都有明确的停止条件
- 每个翻车的案例都死在 loop 没装刹车
- 人工审阅是最后一道关——不省
07. 搭你的 AI 知识库(RAG 实战)
知识库 = context 工程的极致
RAG(检索增强生成)的本质就是:在 context 层做工程——把海量信息存到外面,每一步只把相关的片段喂给模型。
RAG 完整流程
text
准备资料 → 清洗/切块 → 嵌入向量 → 存入向量库
↓
用户提问 → 查询向量库 → 取回相关片段 → 塞进 context → model 生成回答第一步:准备资料
- 收集:PDF、网页、视频字幕、内部文档
- 清洗:去掉页眉页脚、重复内容、格式噪音
- 切块:按语义切(不是按字数),每块 200-500 字为宜
切块的黄金法则:一块讲清一件事。别为了凑字数把两个主题拼一块。
第二步:建检索
- 嵌入(Embedding):把文本块转成向量(一串数字),语义相近的文本向量也相近
- 向量库:存入向量,支持相似度搜索
- 查询:用户提问也转成向量,在库里找最相似的文本块
第三步:接进 context
把检索回来的文本块塞进 context,让模型基于这些信息回答。
关键问题:
- 喂多少:3-5 个最相关片段,不要贪多(防 context rot)
- 怎么喂:放在 prompt 之后、问题之前,用标签包裹
- 防噪声:检索回来的不一定都相关,可以让模型自己判断
第四步:加 Agent 层(进阶)
让 agent 自己决定查不查、查什么、查几次:
text
用户提问 → agent 判断是否需要查知识库
→ 需要:生成查询 → 检索 → 看结果够不够
→ 不够:换个关键词再查(loop)
→ 够了:整理回答
→ 不需要:直接回答工具选型对比
| 工具 | 类型 | 费用 | 适合场景 |
|---|---|---|---|
| Dify | 开源平台 | 免费/付费 | 快速搭建 RAG,可视化 |
| Coze | 平台 | 免费 | 零代码快速验证 |
| LangChain | 代码框架 | 免费 | 灵活控制,需要编程 |
| LlamaIndex | 代码框架 | 免费 | 专注 RAG,文档丰富 |
| 自建 | 代码 | 免费 | 最大灵活度,维护成本高 |
RAG 翻车三件套
| 症状 | 原因 | 修复 |
|---|---|---|
| 检索不准 | 切块太粗/嵌入模型差 | 调切块策略、换嵌入模型 |
| context 塞爆 | 取回太多片段 | 限制 top-k(3-5个),加相似度阈值 |
| 答非所问 | 检索回来的是噪声 | 加 rerank(重排序),让模型自己判断相关性 |
番外:Agent Skills 入门
Skill 是"跨 prompt + context + harness 的打包模块"——把一套完整的工具使用流程封装好,可以跨 agent 复用。
比如"搜索网页并总结"可以封装成一个 Skill,多个 agent 都能调用。这是 agent 工程的模块化方向。
08. 诊断与避坑总表
症状 → 层 → 处方总诊断表
| 症状 | 病灶层 | 处方 |
|---|---|---|
| 理解错任务 / 格式跑偏 / 答非所问 | prompt | 把意图/角色/步骤/约束写明,关键规则放结尾 |
| 答得对但用错信息 / 一长就变笨 / 忘了前文 | context | 做减法、压缩、剪枝,关键信息放头尾 |
| 编造参数 / 读不到文件 / 越权乱删 / 失忆 | harness | 查 schema、权限、沙箱、日志——别改 prompt |
| 停不下来 / 烧钱 / 原地打转 / 假装完成 | loop | 三道硬停,"完成"保留人工审查 |
四层避坑总清单(12 个坑)
prompt 层(3 个坑):
- 没写输出格式 → 模型自由发挥,每次都不一样
- 关键规则放中间 → 被"遗忘"效应吃掉,放结尾
- 给太多例子 → 过拟合,3-5 个够
context 层(3 个坑): 4. 全塞进去 → context rot,变笨 5. 不做压缩 → token 浪费、变慢、变贵 6. 关键信息放中间 → 头尾效应,放两头
harness 层(3 个坑): 7. 工具 schema 模糊 → 模型编参数 8. 没设权限 → 越权操作(删文件、发邮件) 9. 没有日志 → 出问题无法回溯
loop 层(3 个坑): 10. 没装最大迭代 → 死循环 11. 完成条件定义不清 → 假完成或永不完成 12. 没装预算上限 → 烧钱
三层嵌套 loop 调试法
agent 出问题时,先判断是哪个层级的 loop 出了问题:
| 层级 | 是什么 | 典型症状 |
|---|---|---|
| L1 工具调用环 | 单次工具调用→结果→下一步 | 工具调用失败、参数错误 |
| L2 任务环 | 完整任务的多步执行 | 原地打转、跳步、重复 |
| L3 编排环 | 多个 agent 之间的协作 | 死锁、互相等待、无限传递 |
修复原则:从 L1 往上查。L1 没问题再查 L2,L2 没问题再查 L3。
什么时候不用全四层(可裁剪)
| 你要做的东西 | 需要点亮的层 | 为什么 |
|---|---|---|
| 纯问答 / 单次生成 | prompt + context | 没有动手也没有循环 |
| 会调工具的助手 | + harness | 需要手脚和安全边界 |
| 长时间自主跑的系统 | + loop | 需要自己转和刹车 |
不是每个任务都需要全四层。简单任务用两层就够了,别过度工程。
09. 持续精进
四层之外的新词归位
| 新词 | 归到哪 | 一句话 |
|---|---|---|
| memory 记忆 | context 的时间延伸 | 让模型跨轮次记住关键信息 |
| eval 评估 | 横切四层的质量维 | 衡量每层做得好不好 |
| tool 工具 | harness 的零件 | 给模型配的某个具体外设 |
| RAG 检索增强 | context 的装填手段 | 从外部知识库取信息塞进 context |
| skill 技能 | 跨 prompt+context+harness 的打包模块 | 可复用的完整工具使用流程 |
| fine-tuning 微调 | 四层之外的另一条路 | 改模型本身,不是四层架构内的事 |
模型变强四层怎么变
模型越强,内两层(prompt + context)的技巧占比会变薄——因为模型自己理解能力更强了,不需要你把每句话都写得那么精确。
但外两层(harness + loop)的安全部分会加固——因为模型能做的事更多了,风险也更大了,约束和刹车更不能省。
给一人公司的真心话
控制可以外包,判断不能外包。
你可以把"按下一步"外包给循环,把"动手干活"外包给装置和模型,把"怎么说"外包给越来越强的模型。
但"该不该按下一步""这活干对了没""该信任什么""该在哪儿叫停"——这些判断,外包不出去。
继续学资源地图
- Anthropic 工程博客 — Agent 工程的一手实践
- Building Effective AI Agents — Anthropic 官方 Agent 指南
- Effective context engineering — 上下文工程深度文章
- Addy Osmani: Loop Engineering — Loop 概念命名者原文
- Simon Willison on context engineering — Context engineering 早期推动者
- Karpathy: Software 3.0 — 模型=CPU 比喻的出处
- ReAct 论文 — Loop 机制的学术源头(2022 年)
附录:术语小词典
| 术语 | 英文 | 一句话本质 |
|---|---|---|
| 提示词 | prompt | 你写给模型的那段话 |
| 上下文 | context | 模型这一步看得见的全部信息 |
| 装置/挽具 | harness | 模型之外的一切:工具、记忆、权限、护栏 |
| 循环 | loop | 让 agent 自己一圈圈转的自治循环 |
| 上下文窗口 | context window | 模型一次能看多少 token |
| 上下文腐烂 | context rot | 信息太多导致模型变笨 |
| 检索增强生成 | RAG | 从外部知识库取信息塞进 context |
| 嵌入 | embedding | 把文本转成向量,用于相似度搜索 |
| 向量库 | vector store | 存向量的数据库,支持相似度搜索 |
| 工具 | tool | 给模型配的具体外设(搜索、读写文件等) |
| 技能 | skill | 跨 prompt+context+harness 的打包模块 |
| 记忆 | memory | 让模型跨轮次记住关键信息 |
| 评估 | eval | 衡量每层做得好不好的方法 |
| 微调 | fine-tuning | 改模型本身的参数,不在四层架构内 |
| 最大迭代 | max iteration | loop 的第一道硬刹车 |
| 无进展检测 | no-progress detection | loop 的第二道硬刹车 |
| 预算上限 | budget limit | loop 的第三道硬刹车 |
| 沙箱 | sandbox | 限制模型活动范围的隔离环境 |
| 护栏 | guardrails | 输入输出过滤,防止越界 |
| 编排 | orchestration | 多个 agent 之间的协调管理 |
最终心法:别追名词,去补瓶颈,守住判断。
© 2026 懒人AI手册
