本博客发过一篇《什么是“上下文工程”?提示词工程要更新换代了!》,当时只讲到上下文工程是提示词工程的升级换代,更复杂更系统,但还没有理解到它实际上是多步思考模型和智能体应用的必须(且不止于此),它其实可以看成是一个大模型应用产品(包括智能体)的所有环境变量的集大成。这里根据最近的上下文工程的进展再做一些介绍。
什么是上下文工程?
上下文工程是指设计和构建动态系统,以便在正确的时间以正确的格式向大型语言模型(LLM)提供正确的信息,以完成特定任务。简单来说,它涉及到恰到好处地打包大型语言模型的“上下文窗口”,也就是其输入区域。
上下文工程并非一个全新的概念,它被视为提示工程在构建AI应用程序(如AI代理)时复杂提示的演进。虽然传统的提示工程仍然适用于与聊天机器人(如ChatGPT)进行来回对话,但当您需要利用多步骤的思考模型,构建一个能够处理多种场景和任务的AI应用程序/智能体时,上下文工程就变得至关重要了。正如Andre Kaparthy所说,LLM是CPU,而上下文窗口是RAM。
为何上下文工程如此重要?
上下文工程的重要性体现在其能够使AI应用具备处理复杂、多样化场景的能力。例如,一个客户服务AI代理需要处理各种查询,包括账单问题、退款、登录问题,甚至处理用户的不当言论,并在必要时升级给人类。要让AI代理完成这些复杂的任务,它的提示会变得越来越大,越来越复杂,甚至开始像带有XML标签和Markdown的代码。这就是上下文工程发挥作用的地方,它确保AI代理能够接收到全面且结构化的指令和资源来执行其职责。
AI代理:上下文工程的应用场景
上下文工程主要与构建AI应用程序,特别是AI代理密切相关。AI代理被定义为使用AI追求目标并代表用户完成任务的软件系统。这包括各种类型,例如:
- 客户服务AI代理,用于回答客户查询。
- 销售助理AI代理,用于筛选潜在客户和跟进。
- 编码代理,用于辅助编程。
无论AI代理的类型如何,它们都由六个基本组件构成,就像汉堡的组成部分一样:
- 模型(Model):每个AI代理都需要一个AI模型,可以是GPT、Claude、Gemini或开源模型等。
- 工具(Tools):工具允许代理与外部系统交互,例如个人助理代理需要访问Google日历的工具来预订约会。
- 知识与记忆(Knowledge and Memory):大多数代理需要存储和检索信息的方式,例如治疗AI代理需要记忆来记住之前的对话,法律AI代理需要特定的知识库来筛选案件。
- 音频与语音(Audio and Speech):赋予AI代理音频和语音能力可以使其互动更自然、更便捷。
- 护栏(Guardrails):这些是安全机制,确保代理行为得当,例如防止客户服务代理对用户说脏话。
- 编排(Orchestration):这些系统用于部署、监控和改进AI代理,确保其随着时间推移保持良好运行。
上下文工程师的角色,就是为AI代理提供“指令手册”。这个手册详细说明了所有组件如何协同工作,例如如何使用工具、如何访问记忆、知识库中有什么、何时使用语音功能等。这个精心设计的提示对于AI代理成功运行至关重要,人们会花费大量时间进行上下文工程以获得完美的提示。
深入上下文工程的实践:一个AI研究助理的例子
视频中展示了一个为AI研究助理设计的上下文工程提示的完整例子。这个系统提示通常包含以下结构化部分,使用Markdown格式(如井号标签)和XML标签进行组织,以提高清晰度:
- 角色(Role):定义代理的身份和核心职责。例如,“你是一个AI研究助理,专注于识别和总结AI领域的最新趋势。”
- 任务(Task):详细说明代理需要完成的具体步骤。这通常是一个多步骤流程,例如:
- 将用户查询分解为可操作的子任务。
- 根据参与度(如观看次数、点赞)和来源权威性(如出版物声誉)进行优先级排序。
- 生成特定JSON格式的输出。
- 计算正确的日期范围。
- 将所有发现总结为一份简洁的趋势摘要(例如,最多300字)。
- 明确输入和输出的格式要求,如用户查询在XML标签内,输出为特定JSON格式,包含ID、子查询、源类型、时间段、领域、优先级和日期。
尽管这个例子被认为是“非常简单的提示”,但它已经展示了上下文工程的复杂性。通常,更复杂的任务可能会拆分为多代理系统,例如一个代理负责搜索信息,另一个代理负责总结。
高级上下文工程策略
为了进一步提升AI应用的性能,可以利用一些高级的上下文工程策略,特别是针对多代理框架:
- 始终在代理之间共享上下文:确保不同的代理之间能够共享必要的信息。
- 行动隐含着决策,决策点需谨慎处理:在设计代理架构和上下文工程时,需要特别注意任何涉及决策的地方。
此外,Langchain还提出了四种常见的上下文工程策略:
- 写入上下文(Writing Context):允许LLM记录信息以便将来使用。
- 选择上下文(Selecting Context):从外部来源提取信息以帮助代理执行任务。
- 压缩上下文(Compressing Context):当信息量大时,使用技术以更紧凑的方式压缩信息。
- 隔离上下文(Isolating Context):在不同环境和位置之间分离上下文。
结论
上下文工程是构建健壮AI应用程序(尤其是AI代理)的核心,它通过精心设计和组织LLM的输入来确保其以正确的方式执行复杂任务。掌握上下文工程的技巧,对于开发出超越概念验证阶段的实用AI应用至关重要。

留下评论