跳转至

LLM 认知架构

概述

大语言模型(LLM)的出现催生了一种全新的认知架构范式:以 LLM 作为核心"认知引擎",配合结构化的记忆、工具和控制流来构建智能体。本文深入分析 CoALA(Cognitive Architectures for Language Agents)框架、RAISE 架构以及 LLM 如何映射到经典认知功能。


1. 为什么需要 LLM 认知架构?

LLM 本身只是一个"文本到文本"的函数:

\[ f_{\theta}: \text{String} \rightarrow \text{String} \]

要将 LLM 变成智能体,需要回答:

  1. 记忆:如何扩展有限的上下文窗口?
  2. 推理:如何实现多步、可回溯的推理?
  3. 行动:如何与外部世界交互?
  4. 学习:如何从经验中改进?
  5. 控制:如何协调这些组件?

认知架构为这些问题提供了系统化的答案。


2. CoALA 框架

CoALA(Cognitive Architectures for Language Agents)由 Sumers et al. (2024) 提出,是目前最完整的 LLM 智能体认知架构框架。

2.1 架构总览

graph TD
    subgraph CoALA 框架
        subgraph 记忆系统
            WM[工作记忆<br/>Working Memory]
            LTM[长期记忆<br/>Long-Term Memory]
            LTM --> EP[情景记忆<br/>Episodic]
            LTM --> SEM[语义记忆<br/>Semantic]
            LTM --> PROC[程序式记忆<br/>Procedural]
        end

        subgraph 决策过程
            LLM_CORE[LLM 核心<br/>推理引擎]
            DL[慎思循环<br/>Deliberation Loop]
        end

        subgraph 行动空间
            INT[内部动作<br/>推理 / 检索 / 学习]
            EXT[外部动作<br/>工具调用 / 环境交互]
        end

        ENV[外部环境] -->|感知| WM
        WM --> LLM_CORE
        LTM --> WM
        LLM_CORE --> DL
        DL --> INT
        DL --> EXT
        INT -->|更新| WM
        INT -->|存储| LTM
        EXT -->|观察| WM
        EXT --> ENV
    end

2.2 记忆系统

CoALA 将 LLM 智能体的记忆分为三个层次:

工作记忆 (Working Memory)

对应 LLM 的上下文窗口

组件 内容
系统提示 角色定义、行为规范
对话历史 用户消息和助手回复
检索结果 从长期记忆检索的相关信息
工具输出 工具调用的返回结果
中间推理 CoT 的思考步骤

工作记忆的容量受上下文窗口限制:

\[ |\text{WM}| \leq L_{\text{context}} \quad (\text{如 128K tokens}) \]

长期记忆子类

类型 存储内容 实现方式 对应经典概念
情景记忆 过去的交互经历 向量数据库 + 时间索引 ACT-R 声明式记忆
语义记忆 事实和概念知识 知识图谱 / 文档库 ACT-R 声明式记忆
程序式记忆 技能和操作方法 代码库 / 工具定义 / Few-shot SOAR 产生式规则

2.3 决策过程

CoALA 的决策过程是一个慎思循环(Deliberation Loop):

while task_not_complete:
    # 1. 感知:获取新信息
    observation = perceive(environment)
    working_memory.update(observation)

    # 2. 检索:从长期记忆获取相关信息
    retrieved = long_term_memory.retrieve(working_memory.query())
    working_memory.update(retrieved)

    # 3. 推理:LLM 基于工作记忆进行推理
    thought, action = llm.reason(working_memory)

    # 4. 行动选择与执行
    if action.type == "internal":
        # 内部动作:推理、记忆更新、学习
        result = execute_internal(action)
    elif action.type == "external":
        # 外部动作:工具调用、环境交互
        result = execute_external(action)

    # 5. 更新记忆
    working_memory.update(result)
    long_term_memory.store(episode=(observation, thought, action, result))

2.4 行动空间

CoALA 将智能体的行动分为内部和外部两类:

内部动作(不改变外部环境):

  • 推理 (Reasoning):CoT、ToT 等思考过程
  • 检索 (Retrieval):从记忆或知识库中查询信息
  • 学习 (Learning):更新长期记忆中的知识

外部动作(影响外部环境):

  • 工具调用 (Tool Use):调用 API、执行代码
  • 通信 (Communication):与用户或其他智能体交流
  • 环境操作 (Grounding):操作文件、浏览网页

3. RAISE 架构

RAISE(Reasoning, Acting, Interacting, Self-improving, Experience-learning)是另一个有影响力的 LLM 认知架构。

3.1 五大模块

graph LR
    R[推理模块<br/>Reasoning] --> A[行动模块<br/>Acting]
    A --> I[交互模块<br/>Interacting]
    I --> S[自我改进<br/>Self-improving]
    S --> E[经验学习<br/>Experience]
    E --> R

    R -.-> |CoT/ToT| R
    A -.-> |工具调用| A
    I -.-> |环境反馈| I
    S -.-> |反思| S
    E -.-> |记忆存储| E
模块 功能 关键技术
Reasoning 多步推理和规划 CoT, ToT, 自我一致性
Acting 执行动作和使用工具 Function Calling, Code Execution
Interacting 与环境和用户交互 对话管理, 反馈处理
Self-improving 反思和自我纠正 Reflexion, Self-Refine
Experience 经验积累和学习 记忆存储, 案例库

4. LLM 到认知功能的映射

4.1 认知功能映射表

认知功能 经典实现 LLM 实现
感知 传感器 + 特征提取 多模态输入编码(文本/图像/音频)
注意力 特征选择 Self-Attention 机制 + 上下文窗口管理
工作记忆 容量有限的缓冲区 上下文窗口(有限但远大于人类 7±2)
长期记忆 知识库 / 语义网络 模型参数(隐式) + 外部存储(显式)
推理 逻辑推导 / 搜索 自回归生成 + CoT
规划 STRIPS / HTN 任务分解 + 多步生成
学习 参数更新 / 规则获取 In-context Learning + 经验记忆
语言 NLU/NLG 管道 端到端语言模型(天然优势)
元认知 元推理规则 自我反思 / Confidence 估计

4.2 LLM 作为"系统 1 + 系统 2"

借鉴 Kahneman 的双过程理论:

特征 系统 1(快思考) 系统 2(慢思考) LLM 实现
速度 快速、自动 缓慢、受控 直接生成 vs CoT
努力 低认知负荷 高认知负荷 短回复 vs 长推理链
意识 无意识 有意识 隐式知识 vs 显式思考
控制 难以控制 可有意控制 Temperature 低 vs 高

LLM 的"系统 1":直接生成回答(单次前向传播)

\[ y = \arg\max P(y \mid x; \theta) \]

LLM 的"系统 2":通过 CoT 进行慎思推理

\[ y = \arg\max P(y \mid x, t_1, t_2, \ldots, t_n; \theta) \]

其中 \(t_1, \ldots, t_n\) 是中间思考步骤。

交叉引用

思维链的详细讨论见 思维链与推理模式


5. 现代 LLM 智能体架构模式

5.1 标准 ReAct 架构

最基本的 LLM 智能体架构:

graph TD
    U[用户输入] --> LLM
    LLM --> T[Thought<br/>思考]
    T --> A[Action<br/>动作选择]
    A --> TOOL[工具执行]
    TOOL --> O[Observation<br/>观察结果]
    O --> LLM
    LLM --> |任务完成| R[Final Answer]

5.2 带记忆的增强架构

graph TD
    U[用户输入] --> WM[工作记忆组装]
    SYS[系统提示] --> WM
    MEM[长期记忆检索] --> WM
    HIST[对话历史] --> WM
    WM --> LLM[LLM 推理]
    LLM --> D{决策}
    D -->|思考| T[内部推理]
    D -->|行动| A[工具调用]
    D -->|反思| REF[自我评估]
    D -->|回答| R[最终回复]
    T --> LLM
    A --> O[观察] --> LLM
    REF --> MEM_W[写入记忆]
    MEM_W --> MEM

5.3 Anthropic 的智能体设计模式

Anthropic (2024) 在《Building Effective Agents》中总结的模式:

模式 描述 适用场景
增强 LLM LLM + 检索 + 工具,无循环 简单任务,单步可完成
Prompt Chaining 多个 LLM 调用串联,每步有明确输入/输出 可分解为固定步骤的任务
路由 根据输入类型分发到不同处理流 多类型输入,各类有专门处理
并行化 多个 LLM 同时处理子任务 独立子任务 + 结果聚合
编排-工作者 中心 LLM 分配任务给工作 LLM 复杂任务需要动态分解
评估-优化 一个 LLM 生成,另一个评估 有明确质量标准的生成任务
自主循环 智能体自主循环直到完成 开放式任务,需要探索

6. 设计 LLM 认知架构的关键决策

6.1 记忆策略

\[ \text{记忆效用} = \text{相关性}(q, m) \times \text{时近度}(t_m) \times \text{重要性}(m) \]
  • 什么信息放入工作记忆?(上下文窗口管理)
  • 什么信息存入长期记忆?(选择性存储)
  • 如何检索?(语义搜索、时间衰减、重要性加权)

6.2 推理深度

  • 何时使用"系统 1"(直接回答)?
  • 何时使用"系统 2"(CoT 深度推理)?
  • 何时需要树搜索(ToT)?
  • 推理深度与计算成本的权衡

6.3 行动粒度

  • 原子动作(单个 API 调用)vs 复合动作(预定义工作流)
  • 动作空间的大小与选择难度
  • 动作验证与安全检查

6.4 控制流

  • 固定循环(ReAct loop)vs 动态规划(Plan-and-Execute)
  • 何时停止?(终止条件设计)
  • 失败时如何恢复?(重试、回退、求助)

7. 开放挑战

  1. 幻觉问题:LLM 的"信念"可能是虚构的,缺乏接地
  2. 长期一致性:跨多轮对话保持一致的"信念"和"意图"
  3. 学习效率:In-context Learning 的样本效率远低于人类
  4. 元认知:LLM 难以准确评估自己"知道什么"和"不知道什么"
  5. 可扩展记忆:如何在不丢失关键信息的情况下管理不断增长的记忆
  6. 多模态整合:如何统一处理文本、图像、代码等不同模态

参考文献

  1. Sumers, T. et al. (2024). Cognitive Architectures for Language Agents. arXiv:2309.02427.
  2. Anthropic. (2024). Building Effective Agents. anthropic.com.
  3. Weng, L. (2023). LLM Powered Autonomous Agents. lilianweng.github.io.
  4. Kahneman, D. (2011). Thinking, Fast and Slow. Farrar, Straus and Giroux.
  5. Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. ICLR 2023.
  6. Wang, L. et al. (2024). A Survey on Large Language Model based Autonomous Agents. Frontiers of Computer Science.

评论 #