热门产品

MemoryCustodian

MemoryCustodian

为Codex、Claude Code等编码智能体提供持久的项目记忆,让开发者通过Markdown管理上下文,提升自动化效率。

热门评论

PH 用户
嘿,Product Hunt 👋

我做了MemoryCustodian,因为编码智能体越来越强大,但每个新会话还是会忘记项目为什么会是现在的样子。

重要的决策、约束、被否决的方案和反复修正往往只留在旧对话里——或者被复制到越来越庞大的指令文件中。

MemoryCustodian用了另一种方式:将持久项目记忆以纯Markdown的形式存在仓库里。

一个小的manifest告诉智能体哪些记忆文件与当前任务相关,这样记忆可以增长,而不用强迫每个会话加载整个项目历史。

不同之处在于:repo原生且纯文本——没有不透明的记忆数据库;通过普通的Git工作流可审查、可版本化、可共享;选择性加载,而不是把所有记忆注入每个prompt;显式支持记忆的更新、纠正和安全遗忘;兼容Codex、Claude Code、Gemini和通用编码智能体工作流;免费、开源、本地优先。

仓库里还包含一个可复现的NightNotes演示,展示新智能体会话如何恢复已有的架构决策并避开已经被否决的实现路径。

我尤其希望得到关于记忆结构、跨智能体工作流以及安装体验是否简单到能用在真实项目上的反馈。

谢谢你们来瞧瞧!
PH 用户
把repo原生纯Markdown作为记忆载体是正解,我自己也手工维护类似的东西,把记忆和代码一起版本化正是防止它腐烂的关键。我一直在卡的点不是检索,而是写入纪律:什么才会真正触发一条新记录?如果让智能体自己判断什么时候"值得记住",那要怎么防止constraints.md里塞满对话上下文噪音,而那些其实从来都不是持久决策?
PH 用户
在变成持久记忆之前有审查步骤吗,还是智能体觉得值得保留就直接写进去了?
PH 用户
喜欢这种repo原生的思路。陈旧记忆或与另一条笔记矛盾时你怎么处理?智能体在信任那段上下文之前会被提醒,还是得有人审查时发现?
PH 用户
"删除像是代码"这种说法其实比看上去负担更重。删除一个记忆文件会把它移出工作树,但如果它曾经被commit过,就会留在历史里、每个clone里、每个fork里。所以"遗忘"对于持有该repo的任何人是可逆的。

这之所以重要,是因为被否决的方案记录正是敏感材料聚集的地方。比如"我们不能用X因为和Y有合同"或"这个被限流因为供应商Z给我们封顶N"。在私有repo、员工之间还好,但一旦合同工clone了它,或者项目开源了,就没那么好了。

不是反对repo原生,我仍然认为这个权衡在你的方向上成立。只是安全遗忘可能需要在文档里加一行说明它覆盖了什么、没覆盖什么……
PH 用户
Congrats on the launch. Recording rejected approaches is the part most memory systems skip entirely, and it might be the highest value item on your list, because without it an agent will cheerfully re-propose the thing you already ruled out last month.

The manifest is the interesting design call. How do you handle relevance drifting, where a file was genuinely relevant when written but is not for the task at hand, and the agent cannot tell the difference until it has already loaded it?

Plain Markdown in the repo is the right default either way, since it means a human can actually audit what the agent believes about the project.
热门产品Zekun Wang2026-07-29原文

相关内容