1
2
-
总结(Summarization):比如,Agent在执行了一系列网页搜索后,会产生大量的工具调用输出。我们可以让另一个模型或一个精心设计的Prompt,将这些冗长的输出总结成几句关键结论,再放回上下文中。
-
压缩(Compression):将信息进行结构化、有损或无损的压缩,剔除冗余部分。
-
索引(Indexing)与向量搜索(Semantic Search):适用于大规模、非结构化数据的快速语义匹配。
-
文件系统(File System)与简单搜索工具:例如,通过`glob`(文件路径模式匹配)和`grep`(文本内容搜索)等命令,在代码库或日志文件中进行精准查找。
3
-
卸载(Offload):在`Scope`阶段,Agent会先制定一份详细的研究计划纲要。这份纲要被立刻“卸载”并保存到外部文件中,而不是留在上下文中,因为它在`Research`阶段会不断被其他信息填充。当进入`Write`阶段时,这份计划纲要会被重新“检索”回来,作为撰写报告的核心指引。 -
减少(Reduce):在`Research`阶段,Agent会进行多轮网页搜索和资料分析,产生大量消耗Token的观察结果。系统会运用“减少”策略,将这些冗长的搜索结果实时地总结成精炼的要点。 -
隔离(Isolate):`Scope`、`Research`、`Write`这三个阶段可以由不同的子智能体负责,每个子智能体拥有独立的上下文,专注于自己的任务,互不干扰,这就是“隔离”思想的体现。
4
-
触发时机:Manus通过大量评估测试发现,模型的上下文窗口远在达到1M的上限之前(通常在128K到200K之间)就会开始“腐烂”。他们将这个“预腐烂阈值”作为触发“减少”操作的信号。
-
“压缩”优先,且可逆:触发后,系统首先启动“压缩”。例如,一个文件写入操作包含`路径`和`内容`两个字段,在压缩格式中,可以安全地舍弃超长的`内容`字段,仅保留`路径`。因为聪明的Agent后续可以通过路径重新读取文件,信息并未丢失,只是被外置了。这种可逆性至关重要,因为你永远不知道历史记录中的哪个细节会在未来变得关键。
-
谨慎“总结”,并备份:当多轮“压缩”后效果甚微时,系统才启动“总结”。但在总结前,会先将原始的、未压缩的上下文内容卸载备份到日志文件中,以便随时通过`grep`和`glob`检索恢复。同时,总结会特意保留最近几次完整的工具调用细节,以帮助模型理解中断位置,保持执行风格和语气的连贯性。
-
通过通信(Communicating):适用于简单、独立的任务。主Agent向子Agent发送一个清晰的Prompt,子Agent的上下文仅包含该Prompt。主Agent不关心过程,只关心结果。这有点像任务外包,高效且隔离彻底。
-
共享上下文(Shared Context):适用于需要完整历史记录的复杂任务(如DeepResearch)。子Agent可以看到主Agent的全部历史上下文(工具调用、观察结果等),但拥有自己独立的System Prompt和行为空间。这样做避免了让子Agent重新读取所有外部文件造成的延迟和Token浪费,但成本较高,因为无法复用KV缓存。
-
第一级:Function Calling:仅保留数量固定的原子级核心功能,如读写文件、执行Shell、搜索等。它们边界清晰,可组合性强。 -
第二级:沙箱实用工具(Sandbox Utilities):在虚拟机沙箱中,预装大量实用程序(如格式转换器、语音识别工具)。Agent通过执行Shell命令来调用它们,完全不占用Function Calling的上下文空间。 -
第三级:软件包和API(Package & APIs):对于需要大量计算或外部数据的任务(如分析全年股票数据),Agent可以在沙箱中运行Python脚本,调用各种库和API完成计算,然后仅将最终的总结结果返回到上下文中。
5
-
卸载 (Offload) + 检索 (Retrieve) = 更高效的 缩减 (Reduce)
-
稳定的 检索 (Retrieve) 是确保 隔离 (Isolate) 安全的前提
-
隔离 (Isolate) 会拖慢上下文处理速度,但同时也降低了 缩减 (Reduce) 的频率
-
过度的 隔离 (Isolate) 和 缩减 (Reduce),会损坏 缓存 (Cache) 的效率及输出质量
6
-
`我修改过的文件`: [文件列表]
-
`用户的核心目标`: [目标描述]
-
`我上次中断的地方`: [状态描述]


