文章摘要
本文拆解AI Agent依托上下文编排驱动任务完成的核心原理,明确了上下文定义与模型的三层信息边界,讲解了Agent依托工具反馈形成闭环推进任务的流程,介绍了工具技能接入、长任务上下文管理、多Agent协作信息分配、动态任务变更处理的方法,总结了上下文编排的核心步骤。

当前市面上的Agent类产品覆盖了代码开发、办公辅助、情感陪伴等多个场景,尽管各自的定位不同,但核心逻辑都是通过编排上下文来驱动模型完成任务。本文将从原理层面拆解Agent工具如何通过上下文编排,让模型逐步推进任务并输出最终结果,全程用通俗易懂的语言展开讲解。

在使用Agent的过程中,我们可以观察到,模型每次做出判断前,系统都会准备特定的信息:此前读取的资料、中途获取的反馈、后续保留的信息,都会直接影响最终的输出结果。

模型当前的信息边界

当模型接收到请求时,它的输出行为可以分为两大类:

  • 已有足够的上下文信息,直接输出结果

  • 缺少必要的上下文,或者需要执行特定动作,此时会通过工具调用来获取信息或完成操作

举个简单的例子,当用户询问“什么是用户登录”时,模型可以凭借自身预训练的知识直接回答。但如果用户问“我们网站为什么登录失败”,就需要额外提供该网站的代码、运行环境和报错信息才能完成分析。

将报错信息粘贴给模型后,它就获得了一条关键线索;如果需要进一步检查项目,模型还需要通过工具读取相关代码文件。哪怕文件就在当前目录下,也需要先找到该文件,再将相关内容整合到请求中。

这些随请求提供的指令、对话记录、参考资料和工具返回的结果,共同构成了我们常说的“上下文”。模型能够依据哪些信息做出判断,很大程度上取决于上下文的内容。

上下文会随着任务的推进不断更新:当前的任务要求和约束规则限定了任务范围,历史对话记录交代了任务的前情背景,工具返回的结果则补充了最新的事实信息,系统会将这些内容整合为发送给模型的完整请求。

因此,我们需要明确三个不同的信息范围:

  • 本地存储的全部内容

  • 会话过程中产生的所有记录

  • 模型当前接收到的请求内容

比如用户向AI上传一份新文件,本质上是为当前任务补充上下文,但这个过程并不会将文件中的知识永久训练到模型中。

总的来说,Agent生成的结果既依赖于模型本身的能力,也依赖于编排的输入材料。

从单次判断到闭环执行

Agent会将模型提出的操作指令交给对应的工具执行,而工具返回的结果又会作为新的上下文,供模型进行下一轮判断。

我们可以用一个实际场景来演示:当用户让Agent“找出网站报名失败的原因”,它会先搜索与报名相关的文件,梳理出提交逻辑后执行检查。如果检查返回错误,提示页面提交的字段与服务端要求不一致,那么系统会将这个错误信息加入后续的请求中,让模型基于新的依据修改对应的代码并再次检查。这样就形成了一个循环:模型提出操作,工具执行任务,返回结果,模型再次进行判断。

从用户视角来看,Agent正在执行一项持续数小时的任务,但在系统内部,其实已经完成了多轮模型请求、文件读取、代码修改和命令执行等操作。

工具不仅让模型能够执行具体动作,还能为模型提供新的信息。搜索工具可以扩大模型的动态上下文范围,视觉校验类工具可以让模型确认之前的修改是否生效。过去一年里,“生成代码”和“完成任务”之间的差距正在被快速缩小,这背后正是这类工具的支撑。

Agent正是通过依赖各类外部反馈,不断执行写入、运行、检查和修正的循环,逐步推进任务完成。

工具与技能的按需接入

可用的工具越多,模型需要了解的使用说明也就越多,但在实际任务中,通常只会用到其中的一小部分工具。比如处理表格时,可能只需要计算、整理和导出功能,如果将视频剪辑、网页设计等无关工具的说明全部传入,就会占用原本留给任务材料的上下文空间。

对于技能,系统可以采用渐进加载的方式:先向模型提供技能的名称、简要描述和调用位置,当模型判断需要使用某项技能时,再加载详细的使用说明。

技能提供的是完成任务的方法流程:遇到特定情况时应该按照什么步骤处理,最终如何验证结果是否正确。而工具则提供具体的操作能力,比如读取文件、运行程序、获取外部数据。只有先掌握了处理流程,再调用对应的工具,才能完成完整的动作。

举个例子,制作演示文稿的技能可能要求先确定文稿结构,再生成单页内容,最后检查版面布局。模型只有读到这份技能说明,才能明确整套处理流程,而能否实际生成文件、检查页面效果,则取决于系统中实际配置的工具。

外部能力还可以通过MCP协议接入,简单来说,MCP是一种连接约定,让Agent能够发现并调用外部服务提供的工具,每次调用返回的内容都会被整合到任务上下文中。

插件则可以将相关的技能、命令和MCP服务配置整合在一起,方便统一安装和管理。这几个概念分别回答了不同的问题:技能说明如何完成任务,工具提供具体操作能力,MCP负责接入外部服务,插件则简化了资源的分发和管理流程。

因此,安装一个插件只是让相关能力有机会参与到任务中,具体的信息仍然需要经过发现、选择和调用的过程,才能真正成为模型当前判断的依据。

长任务的上下文管理

Agent在持续工作的过程中会积累大量的信息,但模型单次能够处理的上下文存在容量限制。比如代码搜索可能返回数百条结果,命令执行可能输出很长的日志,同一个文件也可能被多次读取和修改,如果将所有内容原样保留,后续的请求很快就会达到上下文容量上限。

系统可以在多个环节处理这些信息:工具返回结果时,可以先限制输出的体积,对过长的内容进行截断或保存到本地文件,只返回预览信息;在发起后续请求之前,系统也可以检查历史上下文的长度,按照既定策略对历史信息进行整理或压缩。

经过历史压缩后,任务可以继续推进,但模型接收到的上下文内容可能已经发生变化。用户在界面上看到的历史记录,未必会完整地出现在当前的模型请求中。

此时,本地文件和上下文的区别就更加明显了:原始日志可以保存在本地文件中,当前上下文只保留定位问题所需的关键信息,如果后续需要查看细节,可以通过工具重新读取本地文件。

“记住某件事”其实存在不同的层次:可以将信息保留在当前上下文中,也可以存储在会话记录里,或者写入项目文件中。仅仅保存在后两种介质中,并不意味着模型在下一次请求中一定能用到这些信息,还需要通过对应的恢复或读取流程才能获取。

对于长期任务来说,进度记录非常重要。任务的目标、已经完成的步骤、有依据的判断结果、尚未完成的内容,都可以明确保存下来,方便后续接手任务时参考核对。

将任务要求写入项目约定的作用也是如此,它让相关信息获得了被后续发现和加载的机会,但保存、读取和遵守这些要求,仍然是三个需要分别完成的环节。

多Agent协作的信息流转

当将复杂任务交给多个Agent协作完成时,需要将信息合理分配给不同的参与者。比如整理一份研究报告,可以让一个Agent负责查找产品资料,另一个核对数据,还有一个检查最终结论。每个子Agent都需要独立的任务说明、相关背景信息和可用工具,在各自的上下文中独立工作。

子Agent可以在独立的会话中运行,它具体继承哪些指令、获取哪些材料,由系统设计、任务配置和信息交接方式决定。主Agent已经读取的内容,不能默认所有子Agent都同步知晓。

这种分工方式可以减少主会话中的细节堆积:负责核对数据的Agent可能阅读了大量表格,最终只返回统计数字、数据来源和发现的问题,主Agent可以基于这些信息继续组织报告内容。

但如果返回的结果过于精简,也可能丢失关键的依据。比如子Agent只回复“数据没问题”和详细说明“核对了哪些数据、依据是什么、存在哪些疑问”,对后续判断的帮助完全不同。

因此,多Agent协作需要同时明确两件事:谁负责哪部分任务,以及完成后需要交回什么样的信息。任务拆分决定了并行工作的范围,而信息交接则决定了结果能否被后续环节直接使用。

工作流还可以为信息交接增加结构约束,比如要求某一步的结果必须遵循固定格式,并在提交时进行校验。如果不符合要求,就反馈具体问题,让Agent在限定次数内修正。

比如规定每条结论必须附上来源,可以先检查来源字段是否填写完整,但来源是否可靠、能否支撑结论,还需要进一步核对。结构化交接只能解决其中的一部分问题。

动态适配任务变更

当Agent正在执行任务时,用户中途补充的新要求也需要被纳入后续的处理流程中。比如Agent正在修改登录页面,用户突然要求“先暂停修改,告诉我失败的原因”,系统需要接收这条新输入,在合适的处理时机将其交给Agent,同时处理此前已经开始的操作。

一种常见的处理方式是,由系统为运行中的用户输入和后台通知设置消息队列。子Agent完成工作、用户补充要求等信息,都需要按照各自的规则进入任务流程,消息的顺序也会影响模型的下一轮判断。

工具调用和返回结果之间存在配对关系,某个工具已经开始执行,它的返回结果属于哪次调用,必须保留明确的对应关系。系统可以将部分消息延后处理,避免插入新消息时破坏这种配对关系。

从这个角度来看,上下文不仅包含“有哪些信息”,还包含“信息出现的顺序”。同样一条报错信息,如果放在代码修改之前,是定位问题的重要线索;如果放在修改之后,则可能说明之前的修改并没有解决问题。

当任务切换到另一个界面时,同样需要接续当前的任务状态。如果连接的是同一个已有会话,可以沿用原来的任务状态;如果新建会话,则需要重新组织上下文。项目文件可以继续保留,但此前讨论的取舍和疑问,需要通过记录或信息交接传递到新的会话中。

总结

以上就是Agent工作时上下文编排的常见做法:

  • 先将任务相关的材料加载到上下文中

  • 将工具返回的结果作为新的上下文,供模型进行下一轮判断

  • 根据任务的长度对历史上下文进行整理和压缩

  • 按照任务分工将信息分配给不同的Agent

这些步骤会被不断重复,模型决定下一步的操作,而系统则持续组织模型判断所需的信息。用户在使用Agent时感受到的流畅连贯的体验,正是这些环节共同作用的结果。

以上内容不代表本平台立场,仅供读者参考