Skip to content

Commit 60a2814

Browse files
committed
docs(ai): Agent部分内容优化完善
1 parent 90c10e9 commit 60a2814

12 files changed

Lines changed: 722 additions & 1515 deletions

docs/.vuepress/styles/index.scss

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,29 @@ body {
44
}
55
}
66

7+
#markdown-content img,
8+
.vp-content img,
9+
.theme-hope-content img {
10+
max-width: 100%;
11+
height: auto;
12+
}
13+
14+
.article-promo-image {
15+
display: block;
16+
margin: 1rem auto;
17+
18+
img {
19+
display: block;
20+
margin: 0 auto;
21+
}
22+
}
23+
24+
.article-footer-qrcode {
25+
display: block;
26+
width: min(612px, 100%);
27+
margin: 0 auto;
28+
}
29+
730
// ============================================
831
// 沉浸式阅读模式 - 隐藏导航栏、侧边栏和目录
932
// ============================================

docs/ai/agent/agent-basis.md

Lines changed: 139 additions & 258 deletions
Large diffs are not rendered by default.

docs/ai/agent/agent-memory.md

Lines changed: 77 additions & 100 deletions
Large diffs are not rendered by default.

docs/ai/agent/context-engineering.md

Lines changed: 31 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ head:
2121
3. **Compaction 与摘要压缩**:长任务上下文如何持久化?如何避免上下文溢出?
2222
4. **Sub-agent 架构**:如何通过子智能体分担主 Agent 的上下文压力?
2323

24-
## 从一个例子说起
24+
## 为什么同样的 Agent 会因上下文不同而大相径庭?
2525

2626
**为什么同样的模型,Agent 表现却天差地别?**
2727

@@ -55,7 +55,7 @@ Model: 抱歉给您带来不便。请问您购买的是哪款耳机?订单号
5555

5656
一句话:**当前 Agent 的大部分失败,根源在上下文**。上下文不够,模型再强也没用;上下文对了,中等水平的模型也能完成任务。
5757

58-
## 理解 Context Engineering
58+
## 如何理解 Context Engineering
5959

6060
### 它和 Prompt Engineering 到底有什么区别?
6161

@@ -87,13 +87,13 @@ LLM 的上下文窗口是有限的内存,Context Engineering 决定了这块
8787
- **System Prompt(系统指令)**:静态 Prompt 的结构化编排。比如 `.cursorrules``.claude/rules` 这类配置文件,核心是把角色设定、目标、约束、执行流、输出格式拆解清楚,让模型在复杂任务里不脱轨。
8888
- **User Prompt**:业务数据与指令。
8989
- **Memory(记忆系统)**:短期记忆(Session 滑动窗口管理)和长期记忆(核心事实提取 + 向量数据库存储)。
90-
- **RAG & Tools(动态增强)**:按需检索外部文档作为背景知识 + 把工具描述以结构化形式挂载到上下文。本质上,RAG 就是 Context Engineering 的一种特定实现模式——“检索什么、怎么检索、检索结果怎么填入上下文”这三个问题,本身就是上下文工程
90+
- **RAG & Tools(动态增强)**:按需检索外部文档作为背景知识 + 把工具描述以结构化形式挂载到上下文。RAG 可以看作 Context Engineering 的一种特定实现:它要回答“检索什么、怎么检索、检索结果怎么填入上下文”这三个问题。
9191
- **Structured Output(结构化输出)**:输出格式的定义,比如 JSON Schema、function call 的返回结构等。这直接影响下游消费方的解析和后续 Agent 链路的衔接,是容易被忽视但实战价值很高的一环。
9292
- **Token 优化(上下文裁剪)**:摘要压缩、历史剔除、Context Caching,在保证信息完整度的同时控制 Token 消耗。
9393

9494
![上下文窗口(Context Window)= LLM 的工作记忆](https://oss.javaguide.cn/github/javaguide/ai/llm/llm-context-window.png)
9595

96-
## 核心技术板块
96+
## Context Engineering 的核心技术板块有哪些?
9797

9898
### 如何做好静态规则的结构化编排?
9999

@@ -122,7 +122,7 @@ LLM 的上下文窗口是有限的内存,Context Engineering 决定了这块
122122
使用 JSON,包含字段:incident_summary, root_cause, evidence, recommendation
123123
```
124124

125-
把这些规则固化为 `.cursorrules``AGENTS.md` 文件,Agent 在复杂任务里的“脱轨”概率会大幅降低。值得一提的是,随着模型能力不断提升,Prompt 格式的精确性可能正在变得不那么关键——但结构化编排带来的**可维护性****团队协作效率**提升是长期价值
125+
把这些规则固化为 `.cursorrules``AGENTS.md` 文件,Agent 在复杂任务里的“脱轨”概率会大幅降低。随着模型能力提升,Prompt 格式的精确性可能没以前那么敏感,但结构化编排带来的**可维护性****团队协作效率**仍然很有价值
126126

127127
### 动态信息应该怎样按需挂载?
128128

@@ -145,13 +145,13 @@ LLM 的上下文窗口是有限的内存,Context Engineering 决定了这块
145145

146146
配套优化手段是 **Context Caching**:在大规模并发请求里,相同 System Prompt 部分只需加载一次,显著降低首 Token 延迟和推理成本。
147147

148-
## 上下文失效的根因
148+
## 上下文为何会失效?
149149

150150
**为什么上下文越长,效果反而可能越差?**
151151

152-
很多人在使用超长上下文模型时会有个误解:上下文越长,模型能用的信息越多,效果应该越好
152+
直觉告诉你:窗口越大、塞的信息越多,模型应该表现越好
153153

154-
错了。真实情况是:**上下文存在边际效益递减,甚至可能负向增长**
154+
实际跑下来恰恰相反。**上下文存在边际效益递减,塞过头还会负向增长**
155155

156156
背后的原因是 LLM 的 Attention 机制。Transformer 架构让每个 Token 都要和上下文里所有其他 Token 计算注意力关系,这意味着 n 个 Token 的上下文会产生 n² 量级的注意力计算。
157157

@@ -161,7 +161,7 @@ LLM 的上下文窗口是有限的内存,Context Engineering 决定了这块
161161

162162
**工程启示**:不同模型的衰减曲线不同——有些模型的退化比较平缓,有些则比较陡峭,因此上下文长度的最优阈值需要针对具体模型实测。但有一点是确定的:上下文必须被当作有限资源来管理,不是塞满越好。找到“高信噪比”的平衡点,是 Context Engineering 最核心的手艺。
163163

164-
## 有效上下文的构建原则
164+
## 有效上下文的构建原则有哪些?
165165

166166
### System Prompt 怎样写才算“恰到好处”?
167167

@@ -198,7 +198,7 @@ Few-shot prompting(给示例)是经过验证的有效策略,但很多人
198198

199199
业界常用的做法是选 **3-5 个多样化的典型示例(canonical examples)**。Anthropic 也强调了示例的多样性和典型性比数量更重要——"Canonical"的意思是“权威的、标准化的”,每个示例要能代表一类典型场景的解决模式,而非覆盖所有边缘情况。对模型来说,示例是“一幅画胜千言”的视觉化教学,展示“什么情况用什么策略”而非“什么输入对应什么输出”。
200200

201-
## 运行时上下文检索
201+
## 运行时如何做好上下文检索?
202202

203203
### 为什么预检索在复杂 Agent 场景下不够用?
204204

@@ -210,7 +210,7 @@ Few-shot prompting(给示例)是经过验证的有效策略,但很多人
210210

211211
**Just-in-Time(按需加载)** 策略因此兴起。
212212

213-
其核心思想是:Agent 运行时不要预先装载所有可能相关的信息,而是维护轻量级的**引用句柄**(文件路径、存储查询、Web 链接),在真正需要时才通过工具动态拉取数据。
213+
它的思路是:Agent 运行时不要预先装载所有可能相关的信息,而是维护轻量级的**引用句柄**(文件路径、存储查询、Web 链接),在真正需要时才通过工具动态拉取数据。
214214

215215
拿 Claude Code 举例:它处理大数据库分析时,不是把所有数据 Load 进上下文,而是写定向查询语句、存储结果、用 `head`/`tail` 命令分析数据文件。Agent 像人类一样通过“文件名”和“目录结构”理解信息位置,通过“文件大小”和“时间戳”判断重要性,而不是一开始就加载全部内容。
216216

@@ -228,7 +228,7 @@ Anthropic 把这种方式称为**渐进式披露(Progressive Disclosure)**
228228

229229
混合策略的决策边界也有规律可循:**动态内容占比高、探索空间大的场景**(如代码库分析、信息检索)适合 Just-in-Time 为主;**动态内容少、上下文稳定的场景**(如法律文书审阅、财务报表分析)更适合预检索 + 少量运行时补充。
230230

231-
## 长时任务的上下文持久化
231+
## 长时任务下上下文如何持久化?
232232

233233
![长任务上下文持久化:抵抗腐化的三大武器](https://oss.javaguide.cn/github/javaguide/ai/context-engineering/long-task-context-persistence-three-weapons-against-corruption.svg)
234234

@@ -244,7 +244,7 @@ Anthropic 把这种方式称为**渐进式披露(Progressive Disclosure)**
244244

245245
一个最轻量的压缩手段是**工具结果清理**:一旦工具在历史里被调用过且结果已被消化,后续上下文里这个结果的原始文本就没必要保留了。Anthropic 的 Developer Platform 已经把这个做成了原生功能。
246246

247-
> **工程提示**:压缩 Prompt 的调优是个迭代过程。建议用复杂 Agent 轨迹数据反复调优——先最大化召回(不要漏掉重要信息),再逐步精简冗余内容。一次性编写完美的压缩指令几乎不可能,持续迭代才是正道
247+
> **工程提示**:压缩 Prompt 的调优是个迭代过程。建议用复杂 Agent 轨迹数据反复调优——先最大化召回(不要漏掉重要信息),再逐步精简冗余内容。压缩指令很难一次写准,需要持续迭代
248248
249249
### 如何让 Agent 学会“记笔记”?—— Structured Note-taking
250250

@@ -276,41 +276,35 @@ Anthropic 在"How we built our multi-agent research system"里详细描述了这
276276
| Note-taking | 迭代式开发、有清晰里程碑、多步推进的任务 |
277277
| Sub-agents | 复杂研究、需要并行探索、结果需汇总的场景 |
278278

279-
## 工具链与工程落地
280-
281-
### 落地 Context Engineering 需要哪些工具?
279+
## 落地 Context Engineering 需要哪些工具?
282280

283281
说完方法论,顺手整理下工程落地需要的主流工具:
284282

285-
**编排框架**:LangChain、LangGraph 这一类框架负责 Agent 的控制流、状态管理和循环调度。
286-
287-
**数据框架**:LlamaIndex 专注 RAG 场景下的数据摄取、索引和检索优化。
288-
289-
**向量数据库**:Pinecone、Weaviate、Chroma、Qdrant 这一类负责 Embedding 的存储和语义搜索。
290-
291-
**通信协议**:MCP(Model Context Protocol)解决了“工具如何标准化接入宿主程序”的问题,被誉为 AI 领域的 USB-C。Anthropic 发布的 MCP 协议基于 JSON-RPC 2.0,定义了 Tools(可执行函数)、Resources(只读数据)、Prompts(可复用模板)三类标准原语。
292-
293-
**Memory 产品**:Mem0、LETTA(原 MemGPT)、ZEP 这类专门做 Agent 记忆层的平台,在向量库之上封装了记忆写入、检索、遗忘的完整生命周期管理。
283+
- **编排框架**:LangChain、LangGraph 这一类框架负责 Agent 的控制流、状态管理和循环调度。
284+
- **数据框架**:LlamaIndex 专注 RAG 场景下的数据摄取、索引和检索优化。
285+
- **向量数据库**:Pinecone、Weaviate、Chroma、Qdrant 这一类负责 Embedding 的存储和语义搜索。
286+
- **通信协议**:MCP(Model Context Protocol)解决了“工具如何标准化接入宿主程序”的问题,常被类比为 AI 应用里的 USB-C。Anthropic 发布的 MCP 协议基于 JSON-RPC 2.0,定义了 Tools(可执行函数)、Resources(只读数据)、Prompts(可复用模板)三类标准原语。
287+
- **Memory 产品**:Mem0、LETTA(原 MemGPT)、ZEP 这类专门做 Agent 记忆层的平台,在向量库之上封装了记忆写入、检索、遗忘的完整生命周期管理。
294288

295-
## 总结
289+
## 如何把 Context Engineering 的要点落实到工程实践?
296290

297-
Context Engineering 之所以重要,是因为它意味着工作重心的转移**从优化单个 Prompt,到设计整个信息供给系统**
291+
这篇文章的判断可以收成一句话**Agent 的大多数失败不在模型智商,而在上下文精度**
298292

299-
过去我们关心的是“怎么措辞”,现在我们关心的是“构建什么样的上下文工程架构”。模型能力在增长,但注意力是有限的——这个基本约束不会因为模型变强就消失
293+
过去关心"怎么措辞",现在关心的是"什么信息、什么格式、什么时机塞进窗口"。模型能力在增长,但注意力有限这个硬约束不会消失——窗口再大,塞满噪声一样变蠢
300294

301-
具体到工程实践,记住四条核心原则
295+
工程上值得反复验证的几个判断
302296

303-
1. **上下文是系统输出,不是静态配置**。每次 LLM 调用前,你都在组装一个动态的上下文——这个组装逻辑本身才是工程的核心
304-
2. **高信噪比优于高信息量**。上下文的长度不决定效果找到让模型做出正确决策所需的最小高密度信息集,才是手艺。
305-
3. **上下文需要代谢机制**对于长任务,没有什么是一次组装永久有效的——压缩、笔记、多 Agent 分层,这些机制让上下文在时间维度上保持新鲜和可用
306-
4. **从最简方案开始,逐步增加复杂度**。Anthropic 反复强调 "do the simplest thing that works"——先用最小可行的上下文方案跑通基线,再基于实际 failure case 逐层优化。过度工程化的上下文系统和不足的上下文一样危险
297+
- **上下文是系统输出,不是静态配置**。每次 LLM 调用前你都在组装一个动态上下文,这个组装逻辑本身才是工程核心——改一个检索策略、换一种摘要方式、调整工具 Schema 的挂载顺序,效果差别可能比换模型还大
298+
- **高信噪比优于高信息量**。上下文的长度不决定效果。Dex Horthy 的 40% 阈值实验说明:塞满窗口不如只放必要信息。找到让模型做出正确决策所需的最小高密度信息集,才是手艺。
299+
- **长任务里上下文会腐化**。没有什么是"一次组装永久有效"的——Compaction、结构化笔记、Sub-agent 分层,三者组合才能让上下文在时间维度上不变质
300+
- **从最简方案起步**。Anthropic 反复强调 "do the simplest thing that works"。过度工程化的上下文系统和不足的上下文一样危险——Guide 见过不少团队还没跑通基线就去做记忆分层,结果调试成本比收益还高
307301

308-
Agent 失败的根源大多在上下文精度不够。把上下文工程做到位,中等水平的模型也能完成看似复杂的任务。
302+
把上下文工程做到位,中等水平的模型也能完成看似复杂的任务。反过来说,再贵的模型拿到一坨噪声,输出一样拉胯
309303

310-
## 参考
304+
## 延伸阅读有哪些?
311305

312306
- [Effective context engineering for AI agents - Anthropic](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents)
313307
- [Context Engineering: The New Frontier of AI Development](https://medium.com/techacc/context-engineering-a8c3a4b39c07)
314308
- [The New Skill in AI is Not Prompting, It's Context Engineering](https://www.philschmid.de/context-engineering)
315-
- [Context Engineering by Simon Willison](https://simonwillison.net/2024/Nov/9/context-engineering/)
316-
- [Own your context window](https://www.pinecone.io/learn/own-your-context-window)
309+
- [Context Engineering by Simon Willison](https://simonwillison.net/2025/jun/27/context-engineering/)
310+
- [12 Factor Agents - Own Your Context Window](https://www.humanlayer.dev/blog/12-factor-agents)

0 commit comments

Comments
 (0)