Zing 论坛

正文

Elephant/Goldfish 模式:构建可复用的智能体工作流

elephant-goldfish 项目提出了一种创新的智能体设计模式,通过分离长期记忆(Elephant)和短期上下文(Goldfish),为构建可复用、可扩展的 Agent 工作流提供了清晰架构。

Elephant/Goldfish智能体架构记忆管理长期记忆短期上下文Agent 设计模式RAG工作流
发布时间 2026/05/06 06:15最近活动 2026/05/06 06:20预计阅读 8 分钟
Elephant/Goldfish 模式:构建可复用的智能体工作流
1

章节 01

导读 / 主楼:Elephant/Goldfish 模式:构建可复用的智能体工作流

Elephant/Goldfish 模式:构建可复用的智能体工作流

设计模式的由来

在构建 AI 智能体系统的过程中,开发者经常面临一个核心挑战:如何在保持上下文连贯性的同时,避免历史信息的无限膨胀。大语言模型虽然能够处理长文本,但过长的上下文会导致注意力稀释、成本上升和响应延迟。

Elephant/Goldfish 模式正是为解决这一问题而设计的架构模式。它借鉴了动物记忆的隐喻——大象以其出色的长期记忆力著称,而金鱼的记忆周期则相对短暂。在智能体系统中,这两种记忆特性分别对应着不同类型的信息存储需求。

这一模式由 vshvedov 开源的 elephant-goldfish 项目实现,提供了一套可复用的工作流模板,帮助开发者构建结构清晰、易于维护的智能体应用。

核心架构理念

双重记忆系统

Elephant/Goldfish 模式的核心在于将智能体的记忆系统划分为两个层次:

Elephant(大象)—— 长期记忆层

大象层负责存储持久化的知识和历史信息。这些数据具有以下特征:

  • 持久性:跨会话保存,不会因单次对话结束而丢失
  • 结构化:通常以向量数据库、知识图谱或结构化文档形式存储
  • 可检索:支持语义搜索和关键词匹配,按需召回相关信息
  • 可更新:随着新信息的积累,长期记忆可以动态更新和演进

典型的 Elephant 存储包括:用户画像、历史对话摘要、领域知识库、任务执行记录等。

Goldfish(金鱼)—— 短期上下文层

金鱼层管理当前会话的即时上下文。其特征包括:

  • 临时性:仅在当前会话或任务周期内有效
  • 紧凑性:经过精心筛选,只保留最相关的信息
  • 高优先级:直接影响当前决策和响应生成
  • 易变:随着对话推进,旧信息会被新信息替换

Goldfish 通常以提示词中的上下文窗口形式存在,包含当前用户输入、最近的对话轮次和从 Elephant 检索到的相关记忆片段。

信息流转机制

两个记忆层之间通过精心设计的流转机制协同工作:

写入流程(Goldfish → Elephant)

当会话结束时,系统会对 Goldfish 中的信息进行提炼和总结,将有价值的洞察持久化到 Elephant 存储中。这个过程包括:

  1. 信息重要性评估:判断哪些内容值得长期保存
  2. 摘要生成:将详细对话压缩为关键要点
  3. 结构化存储:以适合检索的格式写入长期记忆
  4. 去重与更新:合并相似信息,避免冗余存储

读取流程(Elephant → Goldfish)

在新会话开始时,系统根据当前上下文从 Elephant 检索相关信息,注入到 Goldfish 中:

  1. 查询生成:基于用户输入构建检索查询
  2. 语义搜索:在向量空间中查找相关内容
  3. 相关性排序:按匹配度筛选最相关的记忆片段
  4. 上下文组装:将检索结果格式化为提示词的一部分

工作流实现细节

模块化组件设计

elephant-goldfish 项目将工作流拆分为独立的模块化组件,每个组件负责特定的功能:

记忆管理器(Memory Manager)

负责协调 Elephant 和 Goldfish 之间的数据流转,提供统一的接口供其他组件使用。主要功能包括:

  • 初始化新的 Goldfish 上下文
  • 执行向 Elephant 的写入操作
  • 管理记忆的生命周期和过期策略
  • 处理并发访问和一致性保证

检索引擎(Retrieval Engine)

实现从长期记忆中高效检索相关信息的能力:

  • 支持多种检索策略(语义搜索、关键词匹配、混合检索)
  • 实现重排序(Reranking)提升检索质量
  • 提供检索结果的可解释性(为什么选中这些记忆)
  • 支持多模态检索(文本、图像、代码等)

上下文组装器(Context Assembler)

将检索到的记忆组装成适合 LLM 处理的提示词格式:

  • 优先级排序:确保最重要的信息位于上下文窗口的关键位置
  • 格式转换:将原始数据转换为自然语言描述
  • 长度控制:在信息完整性和上下文长度限制之间取得平衡
  • 动态调整:根据模型和任务特性调整组装策略

总结生成器(Summarization Generator)

在会话结束时生成长期记忆的更新内容:

  • 增量摘要:基于新信息更新现有摘要
  • 关键信息提取:识别值得长期保存的洞察
  • 结构化输出:生成便于存储和检索的格式
  • 质量评估:判断生成内容是否达到存储标准

可复用工作流模板

项目提供了多种预定义的工作流模板,覆盖常见的智能体应用场景:

对话助手模板

适用于构建具有记忆能力的聊天机器人:

  • 维护用户画像和偏好设置
  • 记录历史话题和讨论要点
  • 支持跨会话的话题延续
  • 自动总结长期对话历史

任务执行模板

面向需要多步骤执行的任务型智能体:

  • 追踪任务进度和执行状态
  • 存储中间结果和检查点
  • 支持任务中断后的恢复
  • 积累任务执行经验

知识问答模板

针对基于知识库的问答系统:

  • 管理领域知识的增量更新
  • 记录常见问题和标准答案
  • 追踪知识缺口和用户反馈
  • 支持多文档交叉引用

技术优势分析

成本效益

Elephant/Goldfish 模式通过智能的上下文管理,显著降低 LLM 调用成本:

  • 减少 token 消耗:只有精选的相关信息进入 Goldfish,避免冗余内容
  • 降低模型要求:较小的上下文窗口允许使用更轻量级的模型
  • 优化缓存利用:重复查询可以命中缓存,减少 API 调用

性能优化

双重记忆系统带来多方面的性能提升:

  • 更快的响应速度:紧凑的 Goldfish 减少模型处理时间
  • 更好的注意力聚焦:关键信息不被噪声淹没
  • 可扩展的架构:长期记忆的存储可以独立于推理层扩展

可维护性

清晰的分层架构带来更好的代码可维护性:

  • 职责分离:每个组件有明确的边界和职责
  • 易于测试:模块化设计支持单元测试和集成测试
  • 灵活替换:可以独立升级 Elephant 存储或 Goldfish 策略

应用场景示例

个人知识管理助手

构建一个帮助用户管理个人知识的智能体:

  • Elephant 存储用户的笔记、文档和阅读历史
  • Goldfish 包含当前对话主题和近期检索的相关笔记
  • 系统能够基于长期积累的知识回答复杂问题
  • 新阅读的内容自动整合到知识库中

客户支持智能体

为企业客户服务场景设计的智能体:

  • Elephant 存储产品知识库和历史工单数据
  • Goldfish 包含当前客户信息和对话上下文
  • 支持基于相似历史工单推荐解决方案
  • 自动学习新出现的问题和解决方法

代码助手

面向开发者的编程辅助工具:

  • Elephant 存储项目代码库、技术文档和最佳实践
  • Goldfish 包含当前编辑文件和最近的相关代码片段
  • 支持基于项目上下文的智能代码补全
  • 积累代码审查经验和常见错误模式

与其他架构模式的对比

与 RAG 的关系

Elephant/Goldfish 模式与检索增强生成(RAG)有相似之处,但侧重点不同:

维度 传统 RAG Elephant/Goldfish
记忆范围 静态知识库 动态演化的长期记忆
更新机制 手动维护 自动总结和写入
上下文管理 单次检索 多轮会话维护
应用场景 知识问答 交互式智能体

实际上,Elephant 层通常会使用 RAG 技术实现检索能力,两者是互补关系。

与 LangChain Memory 的对比

LangChain 提供了多种记忆组件,Elephant/Goldfish 可以看作是对这些组件的结构化组织:

  • ConversationBufferMemory:类似于 Goldfish 的原始形式
  • VectorStoreRetrieverMemory:类似于 Elephant 的检索机制
  • ConversationSummaryMemory:Goldfish 向 Elephant 写入时的摘要功能

Elephant/Goldfish 模式的价值在于提供了清晰的架构指导和最佳实践,而非简单的组件封装。

实施建议

技术选型

根据项目需求选择合适的 Elephant 存储方案:

  • 向量数据库:Pinecone、Weaviate、Chroma 等,适合语义检索场景
  • 图数据库:Neo4j、Amazon Neptune,适合关系复杂的知识网络
  • 文档数据库:MongoDB、Elasticsearch,适合结构化文档存储
  • 混合方案:结合多种存储,发挥各自优势

调优要点

实现高效的双重记忆系统需要关注以下调优点:

  1. 检索阈值:设置合适的相似度阈值,平衡召回率和精确率
  2. 上下文长度:根据模型能力和任务复杂度调整 Goldfish 大小
  3. 摘要策略:选择合适的摘要算法,保留关键信息的同时控制长度
  4. 更新频率:确定 Elephant 的更新时机,避免过于频繁的写入操作

常见陷阱

在实施过程中需要注意避免以下问题:

  • 记忆膨胀:缺乏有效的清理机制导致 Elephant 无限增长
  • 检索噪声:不相关的记忆干扰当前任务执行
  • 上下文截断:Goldfish 组装不当导致关键信息被截断
  • 一致性风险:并发写入导致记忆状态不一致

总结与展望

Elephant/Goldfish 模式为 AI 智能体的记忆管理提供了清晰而实用的架构指导。通过分离长期记忆和短期上下文,开发者可以在保持智能体连贯性的同时,控制成本和复杂度。

elephant-goldfish 项目的开源实现降低了采用这一模式的门槛,让更多开发者能够构建具有持久记忆能力的智能体应用。随着 LLM 应用的不断演进,这种结构化的记忆管理方案将变得越来越重要。

未来,这一模式可能会在以下方向进一步发展:

  • 多模态记忆:支持图像、音频、视频等非文本记忆的存储和检索
  • 层次化记忆:在 Elephant 和 Goldfish 之间引入更多记忆层级
  • 协作记忆:支持多个智能体共享和同步记忆状态
  • 隐私保护:在记忆管理中集成差分隐私等保护机制

对于正在构建智能体系统的开发者来说,Elephant/Goldfish 模式是一个值得深入研究和实践的设计模式。