DiffMem

GitHub
843 53 简单 1 次阅读 昨天Agent开发框架
AI 解读 由 AI 自动生成,仅供参考

DiffMem 是一款专为对话式 AI 智能体设计的轻量级记忆存储后端。它创新地利用 Git 版本控制系统来管理 AI 的长期记忆,旨在解决传统向量数据库在处理随时间演变的个人知识时容易变得臃肿、低效且难以追溯历史变化的问题。

与传统方案不同,DiffMem 不使用复杂的向量嵌入或专用数据库,而是将当前记忆状态存储在人类可读的 Markdown 文件中,同时利用 Git 的提交记录自动保存所有历史变更。这种设计让 AI 既能快速读取最新的“现状”以节省上下文窗口,又能按需通过 git diff 等命令深入挖掘记忆的演变过程,实现类似人类的“线索式”回忆。其核心技术亮点在于“差分智能”,即天然支持对事实变化进行时间轴追踪,且数据纯文本化,具备极高的可移植性和耐久性。

该工具非常适合希望构建具备长期记忆能力、能理解用户关系动态变化的 AI 应用的开发者及研究人员。目前,它已成功应用于生产环境,支持智能体在数千次对话中持续追踪细节并自动整合记忆。如果你正在寻找一种高效、透明且无需重型基础设施的记忆解决方案,DiffMem 提供了一个独特而优雅的选择。

使用场景

一位开发者正在构建一个需要长期陪伴用户的个人 AI 助手,该助手必须记住用户数月甚至数年的生活变化与偏好演变。

没有 DiffMem 时

  • 上下文膨胀严重:为了回答“我现在喜欢什么”,AI 被迫加载包含所有历史对话的庞大向量库,导致响应缓慢且 Token 消耗巨大。
  • 难以追踪变化脉络:当用户询问“我的职业目标是怎么变的?”时,传统数据库只能返回碎片化信息,无法直观呈现从“想当画家”到“成为设计师”的演变过程。
  • 数据黑盒难维护:记忆存储在二进制向量或专有图数据库中,开发者无法直接用文本编辑器查看或修正错误的记忆条目,调试极其困难。
  • 历史数据干扰当前判断:过时的偏好(如两年前的饮食禁忌)常与当前状态混淆,导致 AI 给出不合时宜的建议,除非编写复杂的清洗逻辑。

使用 DiffMem 后

  • 聚焦当前状态:DiffMem 仅将最新的用户画像以 Markdown 文件形式保留在仓库表层,AI 读取极小的上下文即可快速响应,大幅降低延迟与成本。
  • 原生差异智能:利用 Git 的 difflog 命令,AI 能精准回溯特定事实的修改记录,轻松梳理出用户兴趣随时间推移的完整故事线。
  • 人类可读可编辑:所有记忆均为纯文本 Markdown,开发者可直接像管理代码一样审查、版本控制和修复记忆数据,透明度高且易于备份。
  • 按需深度挖掘:系统默认隔离历史数据,仅在用户主动询问演变过程时才调用 Git 历史进行深度分析,完美平衡了反应速度与推理深度。

DiffMem 通过将 Git 的版本控制能力引入 AI 记忆,让智能体既能敏捷地活在当下,又能深刻地理解过去。

运行环境要求

操作系统
  • 未说明
GPU

不需要 GPU

内存

未说明

依赖
notes该工具无需向量数据库、嵌入模型或机器学习框架,仅依赖 Git 和 LLM API。运行前需设置 OPENROUTER_API_KEY 环境变量。由于是原型阶段,检索质量取决于所使用的 LLM 模型,且不支持多用户并发锁。
python3.11+
gitpython
openai
DiffMem hero image

快速开始

DiffMem:基于 Git 的差分内存,专为 AI 代理设计

许可证:MIT Python 3.11+ 原型 Ask DeepWiki

DiffMem 是一种轻量级、基于 Git 的内存后端,专为 AI 代理和对话系统设计。它使用 Markdown 文件进行人类可读的存储,利用 Git 通过差异追踪时间演化,并配备一个原生 Git 检索代理,该代理通过 Shell 命令(grep、git log、git diff、git blame)探索仓库,构建有针对性的上下文。无需向量数据库、无需嵌入、无需 BM25——只需 Git 和一个大语言模型。

在核心理念上,DiffMem 将内存视为一个版本化的仓库:知识的“当前状态”存储在可编辑的文件中,而历史变更则保存在 Git 的提交图中。这种分离使代理能够在不引入历史数据开销的情况下,针对精简、最新的表层数据进行查询和搜索,同时在需要时深入探究其演化过程。

已投入生产

DiffMem 为 Annabelle 提供支持,这是一款模拟智能体,在 WhatsApp 和 Messenger 上持续维护着数千次对话的记忆。

在生产环境中,DiffMem 使 Annabelle 能够:

  • 引用数周前对话中的细节
  • 长期跟踪关系的演变
  • 构建对她所交谈的每个人的结构化理解
  • 随着对话的增多自动整合记忆

与 Annabelle 对话体验查看 DiffMem 如何逐章处理新内容

路线图

  • PoC 中的索引策略需要更加 robust,目前过于消耗内存且并无必要。
  • 实现检索上下文容量的参数化方法。
  • 有时某个实体会变成“万能容器”,导致过度负载。
  • 添加检索历史功能,以便构建“关联实体”模型来支持维基化。
  • PDF 导出功能。
  • 研究 PoC:用于上下文压缩的可视化检索。

为什么选择 Git 作为 AI 内存?

传统的 AI 代理内存系统通常依赖于数据库、向量存储或图结构。这些方案在特定规模下表现良好,但在处理长期、不断演化的个人知识时,可能会变得臃肿或效率低下。DiffMem 则另辟蹊径,充分利用 Git 的优势:

  • 聚焦当前状态:内存文件仅存储信息的“当下”视图(例如当前的关系、事实或时间线)。这减少了查询和搜索的表面面积,使得操作更快、在 LLM 场景中更节省 token。历史状态默认不会被加载——它们存在于 Git 的历史记录中,按需访问。

  • 差分智能:Git 的差异和日志提供了一种自然的方式来追踪记忆如何演变。代理可以询问“这个事实在过去是如何变化的?”,而无需扫描整个历史,只需提取相关提交即可。这类似于人类记忆通过线索重构事件,而非完整重现。

  • 持久性与可移植性:纯文本 Markdown 确保记忆对人类可读且不依赖特定工具。Git 的分布式特性意味着数据易于备份,且不会被锁定在专有格式中。

  • 代理的高效性:通过将“表层”(当前文件)与“深度”(Git 历史)分离,代理可以灵活选择——快速响应时加载当前状态,分析任务时深入差异。这样既能保持上下文窗口简洁,又能实现丰富的时序推理。

这种方法对于长期运行的 AI 系统尤为适用,因为这些系统的记忆会随时间积累多年;它可以在不造成数据膨胀的情况下扩展规模,同时保持可审计性,并通过修剪实现“智能遗忘”,又保留了可重构性。

工作原理

DiffMem 以可导入模块的形式组织,无需服务器。关键组件包括:

  • 写入代理writer_agent):分析对话记录,识别并创建实体,在 Git 的工作树中暂存更新。提交是显式的,确保原子性更改。

  • 检索代理retrieval_agent):一个多轮 LLM 代理,仅有一个 run(command="...") 工具,可通过沙箱化的 Shell 命令探索内存仓库。它读取 index.md,探测 Git 历史中的时间模式,并输出一个结构化的检索计划(文件片段、Git 差异、提交日志),最终转化为上下文。

  • API 层api.py):用于读写操作的干净接口。示例如下:

    from diffmem import DiffMemory
    
    memory = DiffMemory("/path/to/repo", "alex", "your-api-key")
    
    # 获取对话上下文(代理通过 Git 探索相关部分)
    context = memory.get_context(conversation, max_tokens=15000)
    
    # 处理并提交新记忆
    memory.process_and_commit_session("今天和妈妈一起喝了咖啡...", "session-123")
    

仓库遵循结构化的布局(详情请参阅 repo_guide.md),当前状态存储在 Markdown 文件中,而演化记录则保存在 Git 提交中。检索代理使用与开发者相同的 Git 命令来导航这一结构。

为何有效

DiffMem 的 Git 中心设计解决了 AI 内存系统中的关键挑战:

  • 减少查询面:默认情况下,仅探索当前状态的文件。检索代理会读取 index.md 以了解实体格局,然后精准加载相关内容。当需要历史信息时,它会提取有针对性的差异(例如 git diff HEAD~3 file.md),而不是加载完整的档案。

  • 可扩展的演化追踪:Git 能够高效地处理超过 50 年的变化。代理可以重建过去的状态(git show <commit>:file.md),而不会使活跃内存膨胀。

  • 开发者友好:无需数据库模式或迁移——直接编辑 Markdown 文件即可。Git 提供免费的版本控制、分支管理(例如每月的时间线)和协作功能。

  • 轻量级:进程内运行,依赖项极少(gitpython、openai)。无需机器学习模型、无需嵌入、无需向量数据库。

原型状态与局限性

已实现的功能:

  • 根据对话记录创建或更新实体。
  • 基于 Git 的原生代理检索,具备时序推理能力。
  • 针对性上下文组装(文件片段、差异、提交日志)。
  • 当代理失败时,可回退到基础用户实体。

已知局限性:

  • 检索代理的质量取决于所使用的 LLM 模型。
  • 缺乏多用户并发锁机制。
  • 写入代理的提示词调优仍在进行中。

我们以开源研发的形式分享此项目,旨在引发讨论。欢迎提出反馈!

未来愿景:这项技术的发展方向

DiffMem 展示了一个 AI 记忆系统如同代码一样具备版本管理和协作能力的未来。试想:

  • 代理驱动的修剪:大型语言模型通过将低权重的记忆归档到 Git 分支中来“遗忘”,从而模拟神经可塑性。

  • 协作式记忆:多智能体系统共享仓库,并通过合并请求实现“记忆对齐”。

  • 时序代理:专门的模型可以查询 Git 日志,回答“我是如何变化的?”——从而实现 AI 的自我反思能力。

  • 多提供商检索:在 OpenRouter、Cerebras 或任何兼容 OpenAI 的服务提供商之间切换检索代理。

  • 开源生态系统:支持语音输入、移动端同步,或与 Obsidian 等工具集成的插件。

随着 AI 代理逐渐成为长期陪伴的伙伴,类似 Git 的系统将使它们能够在不形成数据孤岛的情况下持续进化。我们非常期待社区能将这一方向推向更广阔的领域——也许会朝着分布式、以隐私为先的个人 AI 发展。

本项目由 Growth Kinetics 公司研发,这是一家专注于 AI 赋能的小型数据解决方案机构。我们正在探索差分记忆如何为下一代智能体提供动力。我们欢迎各方合作、提交 Pull Request,以及坦诚的反馈,以不断完善它。

快速上手

  1. 克隆仓库:git clone https://github.com/alexmrval/DiffMem.git
  2. 安装依赖:pip install -r requirements.txt
  3. 设置环境变量:export OPENROUTER_API_KEY=your_key
  4. 运行示例:python examples/usage.py

更多完整演示请参阅 examples/ 目录。

参与贡献

欢迎 Fork、实验并提交 PR!我们期待:

  • Git 同步优化;
  • 高级搜索插件;
  • 实际场景中的集成方案。

欢迎提出问题或提交 PR。让我们携手共建 AI 记忆的未来。

许可证:MIT
Growth Kinetics © 2025

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

156.8k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|5天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|5天前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架