🧪 Beta公测版本提示:教程主体已完成,正在优化细节,欢迎大家提Issue反馈问题或建议。
Skip to content

第 8 章 GenericAgent 系统全貌

在上一章中,我们建立了 GenericAgent(GA)的第一性原理——上下文信息密度最大化(Contextual Information Density Maximization),并了解了 LLM 在处理长上下文时面临的三重陷阱。我们还预告了 GA 通过四个核心机制来优化信息密度。

那么,GA 究竟是如何围绕这个原则构建整个系统的?在深入每个机制之前,我们先来鸟瞰 GA 的全貌——看看它的整体架构长什么样,各模块之间如何协作。本章的目标是为你建立一张"系统地图",后续章节则相当于逐个区域深入探索。

GA 的一个重要设计决策是模型无关(Model-Agnostic):底层的推理引擎(Claude、GPT、Gemini 等)可以替换,而不影响执行逻辑、工具接口或记忆架构 [1, Section 2.2]。这意味着,当更强的模型出现时,整体架构不需要改变,只需替换推理引擎即可获得能力提升。GA 的系统设计与具体模型的能力完全解耦。


8.1 统一 Agent 循环

8.1.1 直觉理解:像人一样工作

在理解 GA 的架构之前,我们先想想一个人是怎么完成一项复杂工作的:

  1. 接到任务:老板说"帮我整理一份季度报告"
  2. 回忆相关经验:你想起上次做报告时用了哪个模板、数据放在哪个文件夹
  3. 思考策略:先收集数据,再填模板,最后排版
  4. 动手执行:打开电脑,查找文件,复制数据
  5. 观察结果:看看填进去的数据对不对,格式是否正确
  6. 决定下一步:如果数据有误,回去重查;如果没问题,继续下一节

这个"接任务→调记忆→想策略→动手做→看结果→下一步"的循环会一直重复,直到任务完成。

GA 的工作方式与此极其相似。它的核心是一个统一 Agent 循环(Unified Agent Loop)——一个连续的"推理→行动→观察"闭环,驱动 GA 完成从简单文件操作到复杂多步任务的一切工作 [1, Section 2.2]。

8.1.2 深入理解:执行上下文的构建

让我们更精确地看看这个循环的每一步发生了什么。

第一步:构建执行上下文(Execution Context)

每一轮循环开始时,GA 将全局记忆当前任务规格组合,构建执行上下文 [1, Section 2.2]。这个上下文不是简单地把用户输入转发给 LLM,而是由多个组件精心组装而成:

执行上下文 = 系统提示词(System Prompt)
            + 始终在线记忆(Always-on Memory:元记忆 + L1 索引 + 工作目录上下文)
            + 工具定义(9 个原子工具的 Schema)
            + 当前任务规格(用户指令 + 约束条件)
            + 历史对话(经过压缩的交互记录)
            + 工作记忆(当前目标、约束、进度)

注意这里的每个组件都经过了信息密度的考量:始终在线记忆只注入索引层而非全量知识,工具定义只有 9 个而非几十个,历史对话经过了截断和压缩。这正是第 7 章所讲的"上下文信息密度最大化"原则在实践中的体现。

第二步:LLM 推理与决策

构建好的执行上下文被送入 LLM。模型基于这些信息进行推理,产出两种可能的结果:

  • 直接输出:模型认为可以直接回答用户问题,不需要使用工具(比如解释一个概念)
  • 工具调用(Tool Call):模型决定调用一个或多个工具来获取信息或执行操作(比如读取一个文件、运行一段代码)

第三步:工具执行与结构化反馈

如果模型发出了工具调用请求,统一分发器(Unified Dispatcher) 会将请求路由到对应的本地执行器。执行完成后,结果以结构化信号(Structured Signal) 的形式返回,更新系统状态 [1, Section 2.2]。

这里的"结构化"很关键——工具不是简单地返回一段原始文本,而是返回经过格式化的结果,包含执行状态(成功/失败)、核心输出内容、以及可能的元数据(如页面变化提示)。这使得模型可以快速判断执行结果,而不需要从一大段原始输出中"猜"发生了什么。

第四步:状态更新与循环继续

工具返回的结构化信号被追加到对话历史中,成为下一轮执行上下文的一部分。模型据此决定是否需要继续执行(再调一个工具)、调整策略(换一种方法),还是任务已经完成(向用户汇报结果)。任务完成后,执行轨迹会被压缩为结构化的长期表征,存入共享记忆,使积累的经验可以通过压缩和复用来改善未来的执行 [1, Section 2.2]。

这个循环创建了推理与环境反馈之间的持续交互,论文将其称为工具锚定的迭代执行(Tool-Grounded Iterative Execution) [1, Section 2.2]。我们可以用一个流程图来概括:

                    ┌──────────────────────┐
                    │     构建执行上下文     │
                    │ (记忆+工具+任务+历史)  │
                    └──────────┬───────────┘


                    ┌──────────────────────┐
                    │      LLM 推理决策     │
                    └──────┬───────┬───────┘
                           │       │
                    直接输出│       │工具调用
                           ▼       ▼
                    ┌──────┐  ┌──────────────┐
                    │ 回复  │  │ 统一分发器    │
                    │ 用户  │  │ → 本地执行器  │
                    └──────┘  └──────┬───────┘


                              ┌──────────────┐
                              │ 结构化反馈    │
                              │ 更新系统状态  │
                              └──────┬───────┘


                              继续下一轮循环

这个循环看起来简洁,但它的威力在于通用性:无论是读写文件、操作浏览器、执行代码、还是管理记忆,所有任务都通过同一个循环来驱动。不需要为不同类型的任务设计不同的执行流程。


8.2 两种执行模式

GA 的统一循环支持两种不同的启动方式,论文称之为两种执行模式(Execution Modes) [1, Section 2.2]:

8.2.1 交互模式(Interact Mode)

这是最常见的模式——用户发起任务,GA 响应执行。你在第一部分应用篇中使用的所有场景都属于交互模式:

  • 用户说"帮我把桌面的 PDF 按年份整理到文件夹"
  • GA 接收指令,开始执行 Agent 循环
  • 每完成一步,GA 可能向用户汇报进度或请求确认
  • 任务完成后,GA 返回结果

交互模式的特点是用户驱动:需要用户指令来触发,涵盖代码执行、信息检索、文件操作等任务。GA 在执行过程中可以随时通过 ask_user 请求人类介入。

8.2.2 反射模式(Reflect Mode)

这是 GA 的另一面——无需用户指令,自动触发的后台任务 [1, Section 3.2]。反射模式持续监控环境变化,当检测到特定条件或事件时自动触发相应任务,包括两种触发方式:

  1. 看门狗(Watchdog):监控环境变化(如新文件出现、错误日志产生),一旦检测到就立即触发 GA 任务
  2. 定时任务(Scheduled Task):基于时间规则在特定间隔或精确时间点生成 GA 任务

反射模式的实现机制非常简洁:一个轻量级脚本定期检查条件,当规则被触发时,脚本将返回的字符串作为标准任务分发给 GA CLI [1, Section 3.2]。

关键设计决策:两种模式共享同一套基础设施。 交互模式和反射模式使用完全相同的 Agent 循环和记忆系统,仅在触发方式和输出处理上有所不同 [1, Section 2.2]。这意味着:

  • 反射模式可以使用与交互模式完全相同的工具来读写文件、执行代码
  • 反射模式产生的结果和记忆更新,会在下一次交互执行中被自动利用
  • 不需要维护两套独立的系统

8.2.3 执行边界与可控性

为了支持长期运行,GA 定义了明确的执行边界(Execution Bounds),在保持可中断性和范围约束的同时确保可控性 [1, Section 2.2]:

  • 轮次上限:每次任务执行有最大轮次限制,超过后强制终止或请求用户介入
  • 故障升级策略:当执行遇到失败时,GA 遵循三步渐进升级——① 分析错误信息,做小幅修正后重试;② 若持续失败,切换到全新策略或搜索环境中缺失的信息;③ 若所有自动化尝试均失败,暂停并请求人类介入 [1, Section 2.1.3]
  • 可中断性:用户可以随时中断执行,GA 会保存当前进度到工作记忆

这些边界确保了 GA 在拥有强大自主能力的同时,始终处于可控范围内。


8.3 四大核心机制预览

在统一循环和两种执行模式的基础上,GA 围绕"上下文信息密度最大化"这一核心目标,设计了四个协同工作的核心机制。下表给出每个机制的一句话定位:

机制核心问题一句话定位详见章节
最小原子工具集Agent 需要多少工具?用 9 个原子工具覆盖完整能力环,从源头减少上下文固定开销第 9 章
分层记忆架构如何管理跨任务知识?四层分级存储 + 按需加载,让"记住更多"不再等于"上下文更长"第 10 章
上下文截断与压缩对话越来越长怎么办?四阶段流水线主动"瘦身",确保每轮上下文都在预算之内第 11 章
反思驱动的自我进化能不能越用越聪明?将成功经验蒸馏为可复用的 SOP 和代码,让未来的上下文更精炼第 12 章

这四个机制不是独立拼凑的功能模块,而是围绕同一目标协同设计的有机整体。它们分别在信息生命周期的不同阶段发挥作用:

信息的生命周期
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  ① 注入阶段          ② 加载阶段          ③ 运行阶段          ④ 沉淀阶段
  ┌────────────┐    ┌────────────┐    ┌────────────┐    ┌────────────┐
  │ 最小工具集   │    │ 分层记忆     │    │ 截断与压缩   │    │ 自我进化     │
  │ (第 9 章)   │    │ (第 10 章)   │    │ (第 11 章)   │    │ (第 12 章)   │
  └────────────┘    └────────────┘    └────────────┘    └────────────┘
        │                 │                 │                 │
   减少工具定义的       控制记忆注入的       压缩历史对话的       将经验蒸馏为
   固定 token 开销      按需 token 开销      累积 token 开销      未来可复用的
                                                              精炼知识

下面这张图展示了 GA 的整体架构,以及四个核心机制如何在统一循环中协同工作:

GA 整体框架

图 8-1:GenericAgent 整体框架。GA 围绕统一 Agent 循环构建,从当前任务和记忆中组装执行上下文,生成输出或工具调用,并通过结构化反馈更新系统状态。四大核心机制——最小原子工具集(右侧)、分层记忆(左侧)、自我进化(底部)和上下文截断与压缩(贯穿运行时)——在信息生命周期的不同阶段协同优化信息密度。(来源:论文 Figure 2 [1])


8.4 从全貌到细节:一个具体例子

为了让上面的抽象架构更加具体,我们来追踪一个完整的任务执行过程,看看各个模块是如何协作的。

场景:用户说"帮我从 HuggingFace 下载 IMDB 数据集"。

第一轮循环

  1. 构建上下文:系统注入始终在线记忆(L1 索引中包含"HuggingFace 下载"相关的 SOP 指针)、9 个工具的 Schema、用户指令
  2. LLM 推理:模型发现 L1 索引中有相关 SOP,决定先读取它
  3. 工具调用file_read(path="memory/L3/huggingface_download_sop.md")
  4. 结构化反馈:返回 SOP 内容(经 file_read 截断控制,只返回相关部分)

这里模型通过 L1 索引中的指针定位到 L3 层的 SOP 文件,然后用 file_read 按需加载——这就是第 10 章将详细介绍的 L1→L3 路由链。

第二轮循环

  1. 构建上下文:上一轮的工具返回结果被追加到历史中
  2. LLM 推理:模型根据 SOP 中的步骤,决定执行下载代码
  3. 工具调用code_run(script="from datasets import load_dataset; ds = load_dataset('imdb')...")
  4. 结构化反馈:返回执行结果(成功/失败 + 输出摘要)

第三轮循环

  1. 模型确认下载成功,向用户汇报结果
  2. 任务完成

幕后(自我进化)

  • 如果这是 GA 第一次执行 HuggingFace 下载任务,GA 会在任务成功完成后通过 start_long_term_update 将这次成功的执行经验蒸馏为一条新的 SOP,存入 L3 记忆层
  • 下次遇到类似任务时,L1 索引会路由到这条 SOP,GA 可以直接按 SOP 执行,跳过探索阶段

注意在这个例子中,四个机制都参与了工作:工具集提供了 file_readcode_run 两个原子操作;分层记忆让 GA 快速定位到相关 SOP;对话历史经过截断与压缩控制在合理范围内;自我进化将成功经验沉淀为可复用的 SOP 知识。


8.5 本章小结

本章从全局视角介绍了 GA 的系统架构。我们了解到:

  1. 统一 Agent 循环是 GA 的执行引擎——"构建上下文→LLM 推理→工具执行→结构化反馈"的闭环驱动所有任务
  2. 两种执行模式(交互模式 + 反射模式)共享同一套基础设施,分别负责用户驱动的任务执行和环境驱动的自动触发
  3. 四大核心机制(工具集、记忆、压缩、进化)围绕信息密度最大化协同设计,在信息生命周期的不同阶段分别发挥作用

现在,你已经拥有了 GA 的"系统地图"。从下一章开始,我们将沿着信息生命周期的顺序,逐一深入每个核心机制。

第一站,是 GA 最引人注目的设计选择:为什么只用 9 个工具就够了?

参考文献

[1] Advantage AI Agent Laboratory. (2025). GenericAgent: A Self-Evolving LLM Agent via Contextual Information Density Maximization. Technical Report V1.0, Sections 2.1–2.3 & 3.1–3.2.

[2] Yao, S., et al. (2023). ReAct: Synergizing Reasoning and Acting in Language Models. ICLR.

[3] Sumers, T. R., et al. (2024). Cognitive Architectures for Language Agents. TMLR.