章节1: 什么是上下文工程(What is Context Engineering?)
- 提示工程(prompt engineering)没有被淘汰,反而比以往任何时候都更重要,现在被重新命名为“上下文工程”(context engineering)。
-
上下文工程是优化LLM执行任务所需的指令和相关上下文的重要过程。 -
许多人将提示工程误解为“盲目提示”(blind prompting),但真正的提示工程需要仔细考虑上下文和结构。 - 上下文工程是提示工程的进阶阶段,涉及构建完整上下文,包括超越简单提示的方法,如获取、增强和优化系统知识。
-
从开发者视角,上下文工程是一个迭代过程,用于优化指令和提供给LLM的上下文,以达到预期结果,这包括使用正式流程(如评估管道)来衡量策略有效性。 -
鉴于AI领域的快速发展,作者提出更广泛的定义:上下文工程是设计和优化LLMs及高级AI模型指令和相关上下文的过程,使其能有效执行任务。 -
这包括文本型LLMs和多模态模型,涵盖所有提示工程工作及相关流程,如: -
设计和管理提示链 -
调整指令/系统提示 -
管理动态提示元素(如用户输入、日期/时间等) -
搜索和准备相关知识(即RAG) -
查询增强 -
工具定义和指令(在代理系统中) -
准备和优化少量样本演示 -
结构化输入和输出(如分隔符、JSON模式) -
短期记忆(管理状态/历史上下文)和长期记忆(从向量存储检索相关知识) -
以及其他优化LLM系统提示的技巧。 - 上下文工程的核心是优化LLM上下文窗口中的信息,同时过滤噪声信息,这需要系统性测量LLM性能。
章节2: 上下文工程实践(Context Engineering in Action)
-
作者通过一个多代理深度研究应用的具体示例,展示上下文工程的实际应用。
子章节2.1: 指令(Instructions)
-
高层次指令是指导系统执行任务的基础,但仅靠此不足以保证系统有效工作。 - 上下文工程要求提供更多上下文,以明确问题范围和具体期望,避免假设和不准确性。
-
示例指令: You are an expert research planner. Your task is to break down a complex research query (delimited by <user_query></user_query>) into specific search subtasks, each focusing on a different aspect or source type.。
子章节2.2: 用户输入(User Input)
-
用户输入需结构化处理,例如使用分隔符(如 <user_query>...</user_query>)来清晰区分输入内容。 -
这种结构化避免混淆,并帮助模型理解输入与输出之间的关系。 -
示例用户输入: <user_query> What's the latest dev news from OpenAI? </user_query>。
子章节2.3: 结构化输入和输出(Structured Inputs and Outputs)
-
提供详细指令和输出格式至关重要,以确保模型生成一致且符合期望的输出。 -
例如,作者指定子任务必须包含唯一ID、特定查询、来源类型、时间范围、领域焦点和优先级等字段。 -
输出结构化通过工具(如n8n)实现,使用JSON示例生成模式,确保输出可解析和传递到工作流下一环节。 - 忽略结构化输出是许多AI开发者的常见错误,上下文工程强调这些技术的重要性,尤其是在代理输出不一致时。
-
示例输出格式: id: str, query: str, source_type: str, ... priority: int,并附JSON示例。
子章节2.4: 工具(Tools)
-
使用工具(如n8n)集成动态上下文元素,例如当前日期/时间: The current date and time is: {{ $now.toISO() }}。 - 上下文工程要求开发者明确决定何时传递哪些上下文,以消除应用中的假设和不准确性。
-
日期/时间上下文对涉及时间敏感查询的任务至关重要,否则模型可能猜测日期导致次优结果。 -
示例:模型需基于当前日期和时间推断子任务的开始和结束日期。
子章节2.5: RAG与记忆(RAG & Memory)
-
在代理工作流中,使用向量存储缓存子查询,避免重复生成相同计划,从而减少延迟和成本。 - 上下文工程不仅是优化提示,还包括选择合适上下文以实现目标(如效率提升),创新性上下文工程是竞争优势。
-
例如,缓存相似查询的子任务结果,并通过向量存储检索,使应用更动态、廉价和高效。
子章节2.6: 状态与历史上下文(States & Historical Context)
-
代理系统可能需要访问先前状态和历史上下文,以优化结果(如修订查询或子任务)。 - 上下文工程涉及决策传递哪些历史信息,并强调评估的重要性:如果不测量性能,无法确认上下文工程是否有效。
-
例如,在修订阶段,提供子任务状态、历史结果等上下文,但需迭代优化。
章节3: 结语(Final Words)
-
许多上下文工程方面未在本文覆盖,如上下文压缩、管理技术、安全性和评估上下文有效性。 - 上下文可能被稀释或变得低效(包含过时和无关信息),这需要特殊评估工作流来捕捉问题。
-
上下文工程将继续发展为AI开发者的重要技能集,超越手动工程,自动化方法也值得探索。如群聊二维码过期,请添加 ayqywx 个人微信(黯羽轻扬微信),手动拉你群。


