AgentKnowledgeAgentKnowledgeAgentKnowledge
知识文档AI热点经典好文
AgentKnowledgeAgentKnowledgeAgentKnowledge

深入 Agent,构建你的专属。致力于打造体系化的 AI Agent 开发者学习平台。

学习路径

DocsAI BasicsAgent 工具Agent 实战

社区

GitHub

账号

User CenterLogin

© 2026 AgentKnowledge.cn. 保留所有权利。

  • Agent
  • System Prompt
  • Prompt
  • Prompt Engineering
  • Zero-shot / Few-shot
  • Chain of Thought(CoT)
  • ReAct
  • SKILL(Agent技能)
  • Memory(Agent记忆)
  • RAG
  • Retrieval
  • Embedding
  • Embedding Model
  • Vector Database
  • Cosine Similarity
  • MCP(Model Context Protocol)
  • Tool Calling
  • Function Schema
  • Structured Output
  • OpenClaw
  • Harness Engineering(驾驭工程)
  • Token
  • Context Window
  • Temperature
  • Top-p
  • Transformer 架构
  • 向量数据库
  • Embedding 模型
  • 数据源接入
  • Web Search
  • Memory 系统
  • Function Calling
  • 实战沙箱
  • 模块五 · 上下文管理

    Memory 系统

    让 Agent 拥有记忆能力。LLM 的上下文窗口有上限,多轮对话中早期信息会被「挤出」。 Memory 系统解决的是:Agent 如何在有限资源下记住更多、记得更准。

    为什么 Agent 需要 Memory

    上下文窗口有上限

    GPT-4o 是 128K tokens,约 10 万汉字。 长对话积累下来,迟早超出。

    对话历史不能全塞进去

    塞太多无关的历史,噪声淹没重点, LLM 反而更容易「失焦」。

    需要跨会话积累经验

    Agent 不应该每次新会话都从零开始。 好的 Memory 让 Agent 越用越懂你。

    Memory 词条上下文窗口词条

    Memory 的三种类型

    工作记忆(Working Memory)

    生命周期:单次推理内存储:LLM 上下文⭐ 简单

    Agent 当前正在处理的信息,如当前任务的中间步骤、已收集的信息碎片。

    实现方式:直接放在 context 里,无需额外存储。

    会话记忆(Session Memory)

    生命周期:当前会话(可配置)存储:内存 / Redis / Supabase⭐⭐ 中等

    同一会话中的对话历史,让 Agent 知道「你们之前聊过什么」。

    实现方式:存储对话历史,会话结束时清理或归档。

    长期记忆(Long-term Memory)

    生命周期:跨会话持久化存储:向量数据库 / 图数据库⭐⭐⭐ 复杂

    Agent 的「个人经验」——跨会话积累的知识、偏好、已完成的任务记录。

    实现方式:任务完成后提炼关键信息,存入向量库 / 图库。

    工作记忆:上下文窗口管理

    当对话历史超过窗口上限时,需要压缩。最常见的方式是「摘要」:

    分层摘要策略

    # 对话历史结构示例
    conversation = [
        # 最近 3 轮:详细保留
        {"role": "user", "content": "帮我查一下 XX 项目的进展"},
        {"role": "assistant", "content": "好的,正在查询..."},
        {"role": "user", "content": "谢谢"},
    
        # 更早的对话:只保留摘要
        {"role": "system", "content": "[摘要] 用户讨论了 YY 项目需求,"
         "决定采用方案 A,技术栈为 Next.js + Supabase"}]
    
    什么时候压缩?

    当 context 使用率超过 70% 时,触发摘要。每完成一个完整任务,也做一次总结。 摘要 prompt 示例:「将以下对话压缩成 200 字的摘要,保留关键信息、决定和待办。」

    会话记忆:Redis / Supabase 方案

    Supabase 实现会话存储

    -- 创建会话表
    CREATE TABLE sessions (
      id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
      user_id UUID REFERENCES auth.users(id),
      messages JSONB DEFAULT '[]',
      created_at TIMESTAMPTZ DEFAULT now(),
      updated_at TIMESTAMPTZ DEFAULT now()
    );
    
    -- 设置过期时间(7 天后自动清理)
    ALTER TABLE sessions SET (
      timescaledb.job_queue前景 = 'interruptive'
    );
    
    -- 读取会话历史
    SELECT messages FROM sessions
    WHERE user_id = auth.uid()
    ORDER BY created_at DESC LIMIT 1;

    会话搜索

    「查找上次关于 XX 的讨论」:将 messages 向量化,检索相关历史。

    会话归档

    重要会话可标记为「重要」,不设置过期,持久保存为长期记忆。

    长期记忆:向量 + 图数据库

    向量记忆(Vector Memory)

    经验、总结、已完成任务的记录,存入向量数据库。检索时召回。

    • • 每次任务完成后提炼关键信息
    • • 用户偏好(喜欢的回答风格)
    • • 常用工具和参数组合
    • • 相关文档摘要

    工具:Supabase Vector / Pinecone / Chroma

    图记忆(Graph Memory)

    实体 + 关系存储,支持推理查询。比向量更擅长回答「A 和 B 是什么关系」类问题。

    • • 人物关系:张三 - 同事 - 李四
    • • 项目依赖:A - 被 B 阻塞
    • • 事件因果:X 导致 Y

    工具:Neo4j / Supabase(用 JSONB 模拟简单图关系)

    记忆写入时机

    Agent 每完成一个任务 → 自动提炼关键信息(LLM 摘要)→ 判断存入哪种记忆 → 写入向量库 / 图库。不需要每次对话都写入,只写入「有价值的沉淀」。

    Memory 与 RAG 的关系

    M

    Memory = Agent 的「经历记录」

    Agent 自己产生的信息——对话历史、任务记录、个人偏好

    R

    RAG = Agent 的「知识库查询」

    外部导入的信息——文档、网站、结构化数据

    =

    两者共同构成 Agent 的认知体系

    收到问题时,Agent 同时从 Memory(自身经验)和 RAG(外部知识)两个维度检索, 合并作为上下文输入 LLM。

    Memory 词条Web Search(上一个模块)Function Calling(下一个模块)