编者按: 本文深入探讨了如何通过优化动态上下文信息(Dynamic Context)来提升 AI Agents 的工作效率和准确性。文章首先概述了五种常见的技术策略,包括信息标识(Message Labeling)、针对不同需求设定不同上下文、优化系统提示词(System Prompts)、精简 RAG 系统中冗余信息,以及其他处理上下文的高级策略。
随后,作者分享了一些技术实施细节和经验教训,这些教训虽然源自与 Multi-agent 团队在实际生产环境中的长期合作实践,但对于 single agent 系统也具有广泛的适用性和指导意义。
文中强调,AI Agents 不应仅局限于使用固定提示词指令来定义,还应包含自己的动态上下文配置。通过简明的上下文类型划分,为每个 AI Agent 量身打造不同的上下文配置,将极大拓展其应用潜能。本文所述的动态上下文配置(Dynamic Context)仅是 AI Agents 系统架构的冰山一角,欢迎各位读者就此主题深入交流探讨。
AI Agents 之间往往存在很大差异(配图源自 MidJourney)
01 内容简介 Introduction
AI Agents 的行为主要由两点决定: (1) 它所运行的基础模型,以及 (2) 输入给该模型的上下文信息。上下文信息输入的方式直接影响着 Agents 任务执行效果。甚至可以说,即使使用同一模型,不同的上下文内容输入也能造就各具特色的 Agents 行为模式。那么,何为 Agents 所需的“上下文信息”呢?可通过查阅下方的 “Types of Context” 图示了解相关信息。
本文将深入探讨一系列 Agents 进阶策略,依据 AI Agents 的具体需求优化上下文信息,从而提升其工作效率与准确性。本文首先将概述五种常见技术策略,然后会分享一些实施细节。 文中总结的经验教训,虽源自于和 multi-agent 团队在实际生产环境中合作的长期实践经验,但这些经验对于 single agent 系统亦具有广泛的适用性和指导意义。
AI Agents 所涉及的上下文类别(图片由原文作者提供)
02 理解上下文信息需求
网络上大多数在线示例及教程都倾向于采取简化手段处理上下文信息(例如设定一个固定的上下文长度限制)。然而,在实际的 AI 应用中需要更加细腻和成熟的方法。
依据手头任务的不同,各种 Agents 对上下文信息的需求大相径庭。 有的 Agents 或许只需当前的信息,而有些 Agents 为了确保回答精准,则可能需要依靠大量的历史数据。因为存在这种差异性,需要针对每一个 Agent 制定个性化的上下文管理策略。
下面是一位用户与两个 Agents(用于软件开发的 Agent 和用于软件测试的 Agent)间的交流场景:
python复制代码1 User: “Please improve the sorting function I wrote from the uploaded file”
2 System_prompt_for_coder: “You are a SW developer, you help the user to
develop …”
3 Coding_agent: “read_file_function”
4 Function_response: “coding snippet: ```some returned code```”
5 System_prompt_for_coder: “You are a SW developer, you help the user to
develop …”
6 Coding_agent: “I’ve improved your code by adding … and … to your code,
here is the new function …”
7 System_prompt_for_reviewer: “you are a SW code reviewer, you …”
8 Code_reviewer_agent: “After reviewing the improved code, there
are a few more things that I would add to the code …"
9 System_prompt_for_coder: “you are a SW developer, you help the user to
develop …”
10 Coding_agent: “ … ”
在上述案例中,上下文的组织方式显然存在冗余且效率不高。多条对话内容都存在不必要的信息重复(比如 system prompts),同时每个 Agent 都接收到了超出其范围的上下文内容。为此,我们有必要了解改进上下文管理的几种策略。