字数 2290,阅读大约需 12 分钟
速读AI:Context Engineering 上下文工程
感谢🙏阅读和多多关注,我会持续输出好的作品🫶

对上下文工程进行更广泛的定义:即为大语言模型和先进的人工智能模型设计和优化指令及相关上下文,使其能够高效完成任务的过程。这不仅包括基于文本的大语言模型,还包括为越来越普及的多模态模型优化上下文。
从开发者的角度来看,上下文工程涉及一个迭代过程,以优化指令以及你提供给大语言模型(LLM)的上下文,从而实现预期结果。
速读
Context Engineering Guide - 读书笔记
作者: DAIR.AI Academy
阅读日期: 2025年7月22日
文章类型: 技术指南
这篇指南由DAIR.AI Academy撰写,全面介绍了"Context Engineering"(上下文工程)的概念、实践方法和实际应用。文章认为上下文工程是传统提示工程的进化版本,强调了其在现代AI开发中的重要性。作者通过一个具体的多智能体深度研究应用案例,详细展示了上下文工程的各个组件和实施步骤,并提供了实用的技术指导和最佳实践。
📚 核心概念理解
上下文工程的本质转变
关键洞察: 上下文工程不是提示工程的替代品,而是其进化版本。作者强调这是对那些预测"提示工程将消失"观点的有力反驳。
个人思考: 这种命名的变化反映了技术应用的成熟度。从简单的"问答"模式发展到系统性的"上下文架构"模式,体现了AI应用开发的专业化趋势。
定义的扩展性
原文要点: "设计和优化LLM及高级AI模型执行任务所需的指令和相关上下文的过程"
我的理解: 这个定义很巧妙地涵盖了:
- • 不仅限于文本LLM,还包括多模态模型
- • 不仅是静态指令,还包括动态上下文管理
- • 不仅是单次交互,还包括整个工作流程
💡 实践案例学习
多智能体架构的启发
案例背景: 作者构建的深度研究应用,使用n8n作为工作流引擎。
学习要点:
- 1. 模块化设计: 每个智能体有明确的职责分工
- 2. 数据流管理: 结构化的输入输出确保信息准确传递
- 3. 工具集成: 实际应用中需要考虑时间、搜索、解析等多种工具
实践启发: 在设计AI应用时,应该从系统架构角度思考,而不是单一智能体的优化。
搜索规划智能体的深度剖析
系统提示设计的精妙之处
印象深刻的部分:
"You are an expert research planner. Your task is to break down a complex research query..."
分析:
- • 角色定位清晰(expert research planner)
- • 任务边界明确(break down complex query)
- • 输入格式规范(delimited by tags)
结构化输出的重要性
技术细节: 作者花了大量篇幅讲解如何定义输出结构,包括字段类型、示例、约束条件等。
个人收获: 之前我往往忽视输出格式的重要性,这篇文章让我意识到结构化输出是确保AI应用稳定性的关键因素。
🔧 技术实现要点
动态上下文的处理
关键技术: 使用{{ $now.toISO() }}获取当前时间
深层思考: 这看似简单的一行代码,实际上解决了AI系统中的一个根本问题——时间感知。没有准确的时间上下文,AI无法处理"最近"、"上周"等时间相关查询。
JSON Schema的妙用
技术亮点: 通过提供JSON示例,让工具自动生成schema,确保输出格式一致性。
学习价值: 这种"示例驱动"的方法比纯粹的文字描述更有效,值得在实际项目中应用。
🚀 高级概念思考
RAG与记忆系统
创新点: 作者提到缓存subqueries来优化性能和成本
个人思考: 这体现了工程实践中的权衡思维:
- • 性能 vs 准确性
- • 成本 vs 实时性
- • 简单性 vs 功能完整性
状态与历史上下文
复杂性认知: 多轮交互中的状态管理是一个被低估的技术挑战
实践意义: 在设计对话式AI或工作流系统时,必须提前考虑状态管理策略。
📈 未来发展思考
自动化上下文工程的可能性
作者观点: 目前的自动化工具还不够成熟,需要更多进展
我的看法: 这可能是下一个技术突破点。类似于AutoML的发展轨迹,我们可能会看到AutoContext的出现。
评估体系的重要性
关键认知: "如果你不测量这些东西,怎么知道你的上下文工程工作是否有效?"
实践启示: 需要建立formal evaluation pipelines,这是很多项目忽视但至关重要的部分。
🎯 实践应用计划
短期应用
- 1. 改进现有项目的提示设计
- • 添加角色定义
- • 使用分隔符结构化输入
- • 定义清晰的输出格式
- 2. 引入动态上下文元素
- • 时间戳
- • 用户信息
- • 环境变量
中期发展
- 1. 构建评估框架
- • 定义成功指标
- • 建立测试数据集
- • 实施A/B testing
- 2. 探索记忆与缓存机制
- • Vector store集成
- • 查询相似度匹配
- • 成本优化策略
长期目标
- 1. 开发专用工具
- • 上下文模板库
- • 自动化评估工具
- • 性能监控系统
💭 个人反思
认知更新
这篇文章最大的价值是让我重新思考了AI应用开发的复杂性。之前我把重点放在模型选择和基础提示上,现在意识到系统性的上下文设计才是真正的核心竞争力。
技能发展方向
- 1. 系统思维: 从单点优化转向全局架构
- 2. 工程实践: 重视测试、评估、监控等工程环节
- 3. 成本意识: 平衡功能需求与资源消耗
行业观察
上下文工程的兴起反映了AI应用从"demo"向"产品"转变的趋势。这需要更严谨的工程方法论和更深入的技术理解。
📝 待深入研究的问题
- 1. 上下文压缩技术:如何在保持信息完整性的同时减少token消耗?
- 2. 多模态上下文工程:文本之外的其他模态如何系统化处理?
- 3. 动态上下文优化:如何根据实时反馈调整上下文策略?
- 4. 跨语言上下文工程:不同语言的上下文工程有何差异?
🔗 相关资源跟进
作者提供了丰富的参考资料,计划按优先级逐步学习:
- 1. Prompting Guide(基础知识巩固)
- 2. Andrej Karpathy的相关内容(技术深度)
- 3. LangChain的上下文工程博客(实践案例)
总体评价: ⭐⭐⭐⭐⭐
这是一份高质量的技术指南,理论与实践结合得很好。不仅提供了概念框架,还通过具体案例展示了实施细节。对于想要提升AI应用开发水平的工程师来说,这是必读材料。
推荐程度: 强烈推荐给所有从事AI应用开发的技术人员,特别是那些希望构建稳定、可扩展AI系统的开发者。
原文
Context Engineering Guide:docs.google.com/document/u/…]
流程
Designing and managing prompt chains (when applicable)
设计和管理提示链(如适用)
Tuning instructions/system prompts 微调说明/系统提示
Managing dynamic elements of the prompt (e.g., user inputs, date/time, etc.)
管理提示词中的动态元素(例如,用户输入、日期/时间等)
Searching and preparing relevant knowledge (i.e., RAG)
搜索并准备相关知识(即检索增强生成)
Query augmentation 查询增强
Tool definitions and instructions (in the case of agentic systems)
工具定义和说明(在智能体系统中)
Preparing and optimizing few-shot demonstrations
准备和优化少样本示例
Structuring inputs and outputs (e.g., delimiters, JSON schema)
构建输入和输出(例如,分隔符、JSON 模式)
Short-term memory (i.e., managing state/historical context) and long-term memory (e.g., retrieving relevant knowledge from a vector store)
短期记忆(即管理状态/历史上下文)和长期记忆(例如,从向量存储中检索相关知识)
And the many other tricks that are useful to optimize the LLM system prompt to achieve the desired tasks.
以及许多其他有助于优化大语言模型系统提示以完成预期任务的技巧。
总结:在上下文工程中试图实现的是优化你在大语言模型上下文窗口中提供的信息。这也意味着过滤掉噪声信息,这本身就是一门科学,因为它需要系统地衡量大语言模型的性能。
引用链接
[1] Context Engineering Guide:docs.google.com/document/u/…: docs.google.com/document/u/…
.preview-wrapper pre::before { position: absolute; top: 0; right: 0; color: #ccc; text-align: center; font-size: 0.8em; padding: 5px 10px 0; line-height: 15px; height: 15px; font-weight: 600; } .hljs.code__pre > .mac-sign { display: flex; } .code__pre { padding: 0 !important; } .hljs.code__pre code { display: -webkit-box; padding: 0.5em 1em 1em; overflow-x: auto; text-indent: 0; }
本文使用 文章同步助手 同步