什么是上下文工程?
上下文工程 (Context Engineering) 是 2026 年 AI 领域最热门的技术概念。它指的是精心设计和管理 AI 模型的输入上下文,以获得最佳输出质量。对于 AI Agent 来说,上下文工程直接决定了 Agent 的"智商"。
💡 一句话理解:Prompt Engineering 是"怎么问",Context Engineering 是"给 AI 看什么"。
上下文窗口的构成
| 组成部分 | 内容 | 占比 | 优化策略 |
|---|---|---|---|
| 系统提示 | SOUL.md、规则 | 10-15% | 精简核心规则 |
| 工具定义 | 可用工具列表 | 15-25% | 按需加载 |
| 记忆注入 | MEMORY.md、USER.md | 10-20% | 分层管理 |
| 对话历史 | 当前对话记录 | 30-50% | 摘要压缩 |
| 工具输出 | 执行结果 | 10-20% | 截断长输出 |
OpenClaw 上下文优化策略
1. 精简 SOUL.md
# ❌ 过于冗长的 SOUL.md(浪费 Token)
我是一个非常专业的AI助手,我会尽力帮助你解决各种问题。
我会使用各种工具来完成任务,包括但不限于搜索、文件操作...
(重复 500 字...)
# ✅ 精简的 SOUL.md(高效利用 Token)
核心定位: AI营销运营官
风格: 幽默专业,干活利索
能力: 内容生产、SEO、社区运营
红线: 不处理招聘、知识整理、个人品牌
2. 按需加载 Skill
# OpenClaw 的 Skill 加载机制
## 优先级
1. 直接匹配的 Skill(完全加载)
2. 相关 Skill(部分加载)
3. 其他 Skill(不加载)
## 配置
skills:
preload:
- "weather" # 常用 Skill 预加载
- "github"
lazy:
- "seo-audit" # 按需加载
- "diagram-maker"
3. 记忆分层注入
# 上下文注入策略
## 始终注入(每次对话)
- SOUL.md(精简版,~500 tokens)
- IDENTITY.md(~100 tokens)
## 条件注入(根据任务)
- USER.md(当涉及用户偏好时)
- TOOLS.md(当使用特定工具时)
## 按需检索(主动搜索)
- MEMORY.md(使用 tdai_memory_search)
- 日期记忆(read memory/日期.md)
4. 对话历史压缩
# OpenClaw 自动进行的压缩策略
## 短对话(< 10 轮)
保留完整历史
## 中等对话(10-30 轮)
保留最近 10 轮完整 + 更早轮次的摘要
## 长对话(> 30 轮)
保留最近 5 轮完整 + 任务关键信息摘要
## 手动压缩
使用 sessions_history limit=10 获取最近对话
Token 预算管理
📊 典型 Token 预算分配(128K 上下文窗口):
- 系统提示 + 工具定义: ~15K tokens (12%)
- 记忆注入: ~5K tokens (4%)
- 对话历史: ~30K tokens (23%)
- 工具输出: ~20K tokens (16%)
- 预留空间: ~58K tokens (45%)
实战技巧
技巧 1:结构化记忆
# 使用 Markdown 结构化记忆,便于检索
## 项目状态
- 网站: miaoquai.com
- 部署: /var/www/miaoquai/
## 待办事项
- [ ] 配置 GitHub Token
- [ ] 添加 og:image
## 重要决策
- 2026-06-01: 采用静态站点方案
技巧 2:工具输出截断
# 避免工具输出占用过多上下文
## web_fetch 限制
web_fetch url="https://example.com" maxChars=5000
## exec 输出限制
exec "command" 2>&1 | head -100
## 文件读取限制
read file.md limit=200
技巧 3:任务拆分
# 大任务拆分为子任务,避免上下文溢出
## 原始任务(可能溢出)
"分析整个网站的 SEO 并生成完整报告"
## 优化后的任务拆分
1. "分析首页的 SEO 指标"
2. "分析工具页面的 SEO 指标"
3. "汇总分析结果并生成报告"
常见问题
Q: 上下文窗口溢出怎么办?
1) 精简 SOUL.md 和 MEMORY.md;2) 使用记忆检索替代全量注入;3) 拆分大任务;4) 限制工具输出长度。
Q: 如何判断上下文是否最优?
观察 Agent 的响应质量。如果 Agent 频繁"忘记"指令或给出不相关回答,可能是上下文管理需要优化。
Q: 不同模型的上下文窗口差异?
| 模型 | 上下文窗口 | 推荐场景 |
|---|---|---|
| Claude 3.5 Sonnet | 200K | 复杂任务、长对话 |
| GPT-4o | 128K | 通用任务 |
| DeepSeek V3 | 128K | 中文优化场景 |
| Gemini 2.5 | 1M | 超长文档处理 |