name: tree-ring-memory
description: “Use Tree Ring Memory for local-first AI-agent memory lifecycle work: recall, evidence, audit, forgetting, and consolidation without transcript dumping.”
category: development
risk: safe
source: community
source_repo: TerminallyLazy/Tree-Ring-Memory
source_type: community
date_added: “2026-07-08”
author: TerminallyLazy
tags: [agent-memory, local-first, recall, privacy, codex, sqlite, cli]
tools: [claude, codex, cursor, gemini, antigravity, opencode]
license: “Apache-2.0”
license_source: “https://github.com/TerminallyLazy/Tree-Ring-Memory/blob/main/LICENSE”
Tree Ring Memory(年轮记忆)
概述
Tree Ring Memory 是一个与框架无关、本地优先的 AI 智能体记忆生命周期层。
当智能体需要回忆、保存、审计或遗忘持久的项目记忆,而不把原始对话记录当作记忆时,请使用本技能。
公开运行时是一个 Rust CLI/TUI,具有本地 SQLite/FTS 存储、限定范围的回忆、
证据记录、审计、确定性整合、维护、DOX/Revolve 源适配器、框架发现、
脱敏(redaction)和显式遗忘功能。
何时使用本技能
- 在恢复一个项目之前使用,如果该项目中之前的决策、警告、偏好或失败的方法可能仍然重要。
- 在更改架构、存储、安全、隐私、发布或智能体记忆行为之前使用。
- 当用户要求记住、回忆、审计、脱敏、遗忘或整合智能体记忆时使用。
- 在测试、审查、事故或生产行为验证了未来智能体应保留的经验教训之后使用。
- 当项目包含
.tree-ring/SKILL.md、.tree-ring/CLI.md或其他 Tree Ring 桥接文件时使用。
工作原理
步骤 1:发现本地指导
检查当前项目是否已有 Tree Ring 指导:
test-f.tree-ring/SKILL.md&&sed-n'1,220p'.tree-ring/SKILL.mdtest-f.tree-ring/CLI.md&&sed-n'1,220p'.tree-ring/CLI.md将项目本地的.tree-ring文件视为比本技能中的通用示例更具权威性。如果 CLI 已安装,在假设标志位之前先检查当前命令界面:
tree-ring--helptree-ring recall--helptree-ring remember--helptree-ring evidence--helptree-ring audit--helptree-ring forget--help如果 Tree Ring 未安装,不要自动运行远程安装命令。请将用户引导到项目仓库或安装文档,并询问他们是否需要安装帮助。
步骤 2:在冒险工作之前先回忆
首先使用窄范围、限定项目的回忆:
tree-ring recall"release behavior"--scopeproject tree-ring recall"sqlite migration"--scopeproject tree-ring recall"user preference"--scopeglobal将回忆到的记忆作为上下文而非权威。在做出更改之前,对照当前的源文件、测试、文档、问题、拉取请求、日志和运行时状态进行核实。
步骤 3:只写入持久的记忆
仅在可能对未来智能体有帮助时写入简洁的记忆:
tree-ring remember"Run project-scoped recall before release changes."--event-type lesson--scopeproject在本地支持的情况下优先使用特定的事件类型:
decision(决策)lesson(经验教训)warning(警告)correction(更正)user_preference(用户偏好)tool_result(工具结果)summary(摘要)hypothesis(假设)
存储持久的经验教训、决策、警告或后续事项。不要存储完整的对话。
步骤 4:为已评估的结果记录证据
对测试运行、事故、已审查的更改或其他已评估的结果使用证据记录:
tree-ring evidence\--outcomeobserved\--summary"Installer smoke test passed in an isolated HOME."\--evidence-ref"ci/install-smoke/2026-07-08"结果指导:
promoted(提升):由有力证据支撑的持久事实rejected(拒绝):失败或已回滚的方法,值得保持可见deferred(推迟):未解决的想法或未来的选项observed(观察):正常的已评估结果
不要将薄弱、过时或未经审查的主张提升为持久事实。
步骤 5:谨慎使用源适配器
当仓库具有结构化的源记录时,先运行试运行:
tree-ring doxsync--source-root.--dry-run tree-ring revolvesync--source-root revolve --dry-run tree-ring integrations scan --source-root.仅当适配器摘要简洁、与源关联、有用且隐私安全时才写入。导入的记忆不会替代底层的AGENTS.md、Revolve 记录、测试、拉取请求、问题或文档。
年轮选择
使用最符合需求的持久年轮(ring):
cambium(形成层):活动或近期任务上下文outer(外层):近期决策和任务经验教训inner(内层):较早的压缩项目知识heartwood(心材):持久的、高置信度的事实scar(疤痕):失败、回归、被拒绝的方法、警告seed(种子):未解决的想法、假设、后续事项
除非用户确认持久性或证据充分,否则优先使用outer或seed。
最佳实践
- 在冒险或重复工作之前先回忆。
- 保持项目记忆限定于项目范围,除非它是持久的跨项目用户偏好。
- 附加源引用,如文件路径、问题 ID、PR ID、评估运行或文档路径。
- 在根据回忆到的记忆行动之前,重新检查当前的源文件和运行时状态。
- 在收尾时询问未来智能体应记住、避免或重新审视什么。
- 当记忆错误、过时、敏感或已被更新的决策取代时,使用脱敏、删除或取代(supersession)。
安全与注意事项
- 切勿将 Tree Ring Memory 用作隐藏的记录器。
- 不要存储机密、凭据、令牌、私钥、恢复代码、原始思维链或临时草稿内容。
- 除非用户明确要求且保留边界安全,否则不要存储敏感的个人数据。
- 除非是允许的短摘要,否则不要存储受版权保护的源代码文本。
- 未经用户明确批准和明确的目标环境,不要运行安装程序、网络、破坏性或变更命令。
- 将所有示例视为需要根据本地
--help检查后调整的命令,而不是保证可用的命令界面。
局限性
- Tree Ring Memory 不能替代源代码控制、问题跟踪器、文档、测试、日志或实时运行时验证。
- 回忆到的记忆可能过时或错误。在使用它们做出更改之前,务必对照当前项目核实重要声明。
- CLI 界面在不同版本之间可能发生变化。优先使用本地
.tree-ring指导和tree-ring --help,而不是复制的命令示例。 - 它不应被用于机密存储、全面的对话存档、合规保留或未经审查地收集敏感个人数据。
- 跨智能体互操作性取决于每个工具调用本地 CLI 或读取项目本地指导文件的能力。
常见陷阱
问题:回忆到的记忆与当前源代码冲突。
解决方案:将源文件、测试、文档和运行时证据视为权威;取代或遗忘过时的记忆。问题:记忆开始变成对话记录存储。
解决方案:只存储持久的决策、警告、偏好、结果和后续事项。问题:一条经验教训很有用但包含敏感细节。
解决方案:存储脱敏后的摘要,或者干脆不存储。
相关技能
@agent-memory-systems- 用于广泛的智能体记忆架构选择。@agent-memory- 用于列出的混合记忆 MCP 系统。@planning-with-files- 当简单的持久文件就足够时使用。
其他资源
- Tree Ring Memory 仓库:https://github.com/TerminallyLazy/Tree-Ring-Memory
- Codex 插件包装器:https://github.com/TerminallyLazy/tree-ring-memory-codex-plugin