文章目录前言1. 先说说这事有多烦1.1 记忆碎成渣的日常2. 这项目到底干了啥2.1 一句话版本2.2 两个反常识的设计2.2.1 Markdown 是原件SQLite 是复印件2.2.2 默认不花钱零 LLM2.3 还有三个惊喜2.3.1 交接协议2.3.2 混合检索2.3.3 管理式 workstream3. 架构长啥样3.1 写入路径3.2 记忆状态机3.3 检索3.4 安全边界4. 上手三分钟4.1 命令行日常4.2 局域网共享5. 数字说话5.1 检索成绩单5.2 项目体检5.3 增长曲线6. 适合谁、不适合谁7. 最后说两句P.S. 无意间发现了一个巨牛的人工智能教程非常通俗易懂对AI感兴趣的朋友强烈推荐去看看 传送门https://blog.csdn.net/qq_34419312前言写代码这件事现在最大的敌人已经不是 bug 了是失忆。工具越换越多记忆越切越碎。Claude Code 记得你上周拍的架构决策Codex 在旁边一脸茫然Gemini CLI 觉得你在讲天书Cursor 和 OpenCode 互相交换了个眼神这哥们是不是换人了你每换一个 CLI就得把项目背景、踩坑记录、待办事项重新讲一遍。讲完对方还未必记得住。这体验比跟一条鱼解释什么叫昨天还绝望——毕竟鱼只是记性差它至少不会反过来问你你刚说的那个数据库迁移是什么数据库来着1. 先说说这事有多烦以前写代码工具就是编辑器加终端记忆全靠自己脑容量够用。现在不一样了你手底下二十多个 AI 工具每个都有自己的小脾气也都有自己的小记忆。问题在于这些记忆之间不互通。你在 Claude Code 里花了仨小时才搞明白的部署流程切到 Codex 那边它一脸真诚地问你这个项目用的什么框架来着那一刻你想把三个小时的回放视频直接甩它脸上。1.1 记忆碎成渣的日常记忆碎片化的后果很直接每次切换工具都是一次重新入职。自我介绍、项目背景、技术债清单全套流程走一遍一个都不能少。换台电脑更惨上下文直接归零。比搬家的断舍离还彻底——至少搬家你还知道东西装在哪个箱子里换电脑是你连箱子都没了。2. 这项目到底干了啥今天这个项目就是来治这个病的。名字叫 ai-memoryGitHub 上 7.9K starsRust 写的MIT 协议随便用。它不是再给你加一个聊天记录搜索框——那种东西你装过不下十个了每一个都躺在收藏夹里吃灰偶尔打开一次还得跟它重新认识。它是把 Agent 会话里的提示词、工具调用、暂停点整理成一个 Git 化的 Markdown Wiki再用 SQLite 建索引做检索和交接。Claude Code / Codex / Gemini / OpenCode / Kimi ... │ │ lifecycle hooks: SessionStart / UserPrompt / ToolUse / Stop / SessionEnd ▼ /hook ingress → sanitizer → writer actor → observations/session/handoff │ ├─ wiki/pages: Markdown source of truth └─ SQLite: FTS5, entities, links, audit, optional embeddings2.1 一句话版本给编码 Agent 做跨工具、跨机器、甚至跨团队的长期记忆层。说得更通俗点给每个 AI 工具配一个公共大脑。谁干活谁用干完活都往里写下一个工具接着读。谁也不用重新自我介绍。2.2 两个反常识的设计这项目有两个设计跟市面上大多数记忆方案是反着来的。2.2.1 Markdown 是原件SQLite 是复印件第一个反常识Markdown 文件是事实源数据库只是可重建的派生索引。市面上大多数方案是把一切丢进向量库数据库就是一切数据库一崩记忆跟着陪葬。ai-memory 反着来原件是一堆你能用记事本打开的 Markdown 文件数据库丢了重建。索引过期了重建。向量库塌了还是重建。这就像你家房产证是手写的复印件被复印机吃了——慌什么原件还在再印一份不就完了。2.2.2 默认不花钱零 LLM第二个反常识默认路径一个 LLM 都不调用。你没听错。捕获会话、全文搜索、交接记录全部本地跑不需要 API key不需要花钱。配置了 LLM 之后才解锁更强的会话整理、语义检索、rerank 这些高级功能。默认本地 embedding 用的是 all-MiniLM-L6-v2一个勤俭持家的老牌小模型。这年头一个开源项目默认不烧你的钱已经算是一种温柔了。2.3 还有三个惊喜除了上面两个反常识还有三个点值得单独拿出来说。2.3.1 交接协议handoff 是 typed、带 owner、claim-once 的记录。翻译成人话A 工具干到一半写一张未完成事项交接单B 工具只能领取一次领了就得干活不能领完又扔回去。这比公司里某些离职交接还正规。至少它不会出现交接文档写了但没人看的经典事故——因为它根本不允许你装没看见。2.3.2 混合检索检索不是一条道走到黑。FTS5 全文搜索、实体匹配、图邻居三个结果先做 RRF 融合配置了向量再加一路最后还可以加一道可选的 LLM rerank。说白了就是鸡蛋不放一个篮子里关键词、文件路径、实体、向量谁靠谱听谁的。对代码记忆来说这招特别实用。很多查询是上次那个 migration 名字是啥“这个模块为什么不能删”——这种问题关键词和文件路径经常比 embedding 靠谱得多。2.3.3 管理式 workstream还有一个叫 managed workstream 的东西ai-memory run 一条命令选择或恢复工作流启动指定 Agent把之前的可见上下文注入进去进程退出后自动导入记录和 Git checkpoint。野心很大复杂度也肉眼可见。文档里把 lease、claim、递归注入过滤这些边界写得极其细致——细到让我怀疑作者是不是当年被这种 bug 坑到怀疑人生才写得这么较真。3. 架构长啥样整体可以拆成四个平面看捕获、知识、注入、治理。capture/storage plane agent hooks → bounded event payload → typed sanitizer → single SQLite writer → observations / sessions / handoffs / audit → Markdown wiki commits knowledge plane wiki markdown pages → FTS5 index → entity index → wikilink graph → optional local/cloud embeddings → hybrid retrieval injection plane MCP / CLI / managed run → scope resolver: workspace project actor → briefing / query / handoff accept → bounded startup packet → next Agent session governance plane users / bearer / OIDC / API keys → attribution → audit log → purge / backup / restore / reindex → pending auto-improve proposals3.1 写入路径写入路径的设计哲学一句话热路径短重活后移。Agent 每次工具调用都可能触发 hook如果 hook 写入链路慢你的编码体验会被当场拖垮。所以 hook 事件先走短超时发出去服务器入口做清洗和类型归一化写入交给一个单写者 actor 串行化。会话结束才触发总结和 handoffLLM 整理又是可选项。翻译前台收银只管收钱清点库存这种重活等关门以后再说。客人还在排队呢你蹲在柜台后面盘货像话吗。代码结构也守这条线各干各的crates/ ├── ai-memory-core domain types, ids, errors ├── ai-memory-hooks hook payload schemas and sanitizer ├── ai-memory-store SQLite writer actor, reader pool, decay math ├── ai-memory-wiki Markdown file writes, watcher, git history ├── ai-memory-mcp MCP transport and tool router ├── ai-memory-llm provider auth and embedder traits ├── ai-memory-consolidate consolidation, lint, sweep, auto-improve ├── ai-memory-workstream managed run and native transcript adapters ├── ai-memory-web read-only web UI └── ai-memory-cli binary entry and thin commands3.2 记忆状态机这项目有个很轴的细节原始输入不是记忆条目而是 Agent 的生命周期事件。session-start、user-prompt、pre-tool-use、post-tool-use、pre-compact、post-compaction、notification、stop、session-end……一共归一到一个封闭集合未知事件默认收敛成 other。第三方扩展可以保留自己的事件但不能绕过清洗、背压和 writer actor。这个设计思路很朴素它不猜你想记什么它只记录发生了什么。就像日记本不负责替你筛选今天值不值得记它只负责把日子写下来。observation stream ├─ prompts ├─ tool calls ├─ compaction notes └─ stop/session-end │ ▼ rule-based session summary │ ├─ optional LLM consolidation → concepts / decisions / gotchas / procedures └─ automatic handoff → pending → accepted / expired / cancelled3.3 检索memory_query 默认先跑 FTS5、实体匹配、链接邻居的 RRF配了 embedder 就加向量 cosine配了 reranker就在最终候选上再排一遍。rerank 失败、超时、结果非法、并发饱和就自动退回本地排序。这种高级功能挂了就自动降级的设计比某些高级功能挂了就直接报错的软件体面太多了。人家至少给你留了条回家的路。3.4 安全边界安全这块文档把事分得很开一点不含糊默认 loopback-only只绑 127.0.0.1非 loopback 无认证直接拒绝启动局域网部署要 bearer token、allowed hostsTLS 交给 Caddy、nginx、Cloudflare Tunnel 这类成熟反代本地静态数据不搞花活靠 OS 文件权限。local-only default ├─ server binds 127.0.0.1:49374 ├─ no telemetry ├─ wiki SQLite live under operator-controlled data dir └─ local embeddings can run without API key external-data opt-ins ├─ cloud embedding provider: page text leaves host ├─ assistant final-turn capture: double opt-in └─ LLM reranker: query bounded snippets leave host一句话总结默认只爱自己社交恐惧友好型软件。当然边界也很诚实没有每页 RBAC。多用户共享服务器能做身份、归属和审计但它不是强隔离的多租户知识库。打个比方这是合租不是酒店。合租能分清谁住哪个房间但衣柜里的衣服是共用的。你要酒店级别的隔离出门左转那得加钱。4. 上手三分钟说那么多上手才是硬道理。官方给了 Docker 路线先装一个 host wrapper带校验和验证防中间人再跑容器最后接入你的工具。mkdir -p ~/.local/bin wrapper_tmp$(mktemp -d) trap rm -rf $wrapper_tmp EXIT wrapper_basehttps://github.com/akitaonrails/ai-memory/releases/latest/download/ai-memory-wrapper curl -fsSL $wrapper_base -o $wrapper_tmp/ai-memory-wrapper curl -fsSL $wrapper_base.sha256 -o $wrapper_tmp/ai-memory-wrapper.sha256 expected$(awk NR 1 { print $1 } $wrapper_tmp/ai-memory-wrapper.sha256) actual$(shasum -a 256 $wrapper_tmp/ai-memory-wrapper | awk { print $1 }) [ -n $expected ] [ $actual $expected ] || { echo wrapper checksum mismatch 2; exit 1; } install -m 0755 $wrapper_tmp/ai-memory-wrapper ~/.local/bin/ai-memory rm -rf $wrapper_tmp trap - EXIT启动本机服务docker run -d --name ai-memory \ --restart unless-stopped \ -p 127.0.0.1:49374:49374 \ -v ai-memory-data:/data \ docker.io/akitaonrails/ai-memory:latest接入 Claude Code两条命令搞定ai-memory install-mcp --client claude-code --apply ai-memory install-hooks --agent claude-code --apply4.1 命令行日常装好之后日常操作就这么几条清清爽爽# 查看状态 ai-memory status # 搜索 Wiki 记忆 ai-memory search database migration rollback # 读取某个页面或者按查询取最相关页面 ai-memory read-page --path decisions/0001.md ai-memory read-page why did we change auth middleware # 手动结束没有 SessionEnd hook 的 agent 会话 ai-memory finalize-session --agent codex想走 managed workstream 也行ai-memory run claude ai-memory run codex --yolo ai-memory continue4.2 局域网共享想给团队用先搞个 token再改成非 loopback 绑定。TOKEN$(ai-memory generate-auth-token) docker run -d --name ai-memory \ --restart unless-stopped \ -p 0.0.0.0:49374:49374 \ -v ai-memory-data:/data \ -e AI_MEMORY_AUTH_TOKEN$TOKEN \ -e AI_MEMORY_ALLOWED_HOSTSserver-ip,localhost,127.0.0.1 \ akitaonrails/ai-memory:latest ai-memory install-mcp --client claude-code --apply \ --server-url http://server-ip:49374/mcp --auth-token $TOKEN ai-memory install-hooks --agent claude-code --apply \ --server-url http://server-ip:49374 --auth-token $TOKEN注意这只是参数形态。真实部署还得加 TLS 反代和 host 白名单。别裸奔上公网——公网不是你家后院是野生动物园。5. 数字说话5.1 检索成绩单项目自带 eval harness 跑出来的数字条件写得挺清楚commit、数据集 sha256、硬件、模式都有记录。放出来给大家看看模式指标结果说明zero-llmpre-2.0 FTSoverall hit50.617旧 FTS 基线zero-llmstopword-filtered FTSoverall hit50.668去停用词后的本地检索local embeddings2.0 defaultoverall hit50.823FTS5 entity graph 本地向量融合从 0.617 到 0.823加了实体和图再加本地向量一路从勉强能用爬到了相当能打。5.2 项目体检版本面得分开看不能糊成一团版本面观测值来源最新 GitHub Releasev2.4.0GitHub 元数据main 分支 Cargo workspace2.3.2Cargo.tomlRust 工具链rustc 1.95.0rust-toolchain.toml 与本地 rustc --version默认分支 HEAD5157c6b本地浅克隆Docker 镜像akitaonrails/ai-memory:latestREADME 快速上手还有一份源码体检712 个 Git 跟踪文件295 个 Rust 文件约 25 万行 Rust。25 万行 Rust 是什么概念写的时候有多快乐编译的时候就有多痛苦。这已经不是 README 驱动的小壳了是实打实的工程量。5.3 增长曲线仓库 2026-05-21 创建到 2026-09-22 快照124 天7,893 颗星。粗算平均每天 63.7 颗。这增长速度比我发际线后退的速度还稳定。羡慕。顺便看下当天 Trending 榜单快照没保留每日新增就不编数字了RankRepositoryLanguageStarsForks1BuilderIO/agent-nativeTypeScript6,1825582trycua/cuaHTML25,8501,7783Open-Dev-Society/OpenStockTypeScript18,0922,2254akitaonrails/ai-memoryRust7,8935305coder/coderGo16,5361,5726anthropics/financial-servicesPython35,9695,2787cloudflare/quicheRust12,4411,1398mvt-project/mvtPython13,7291,3359zhouxiaoka/autoclipPython8,5321,58910ruanyf/weekly-104,2864,46011Crosstalk-Solutions/project-nomadTypeScript38,0233,77612yynxxxxx/Codex-XRust3,800468旁边那一堆熟面孔就不展开聊了今天的主角是排第四这位。6. 适合谁、不适合谁场景适合程度原因个人同时使用 Claude Code、Codex、Gemini CLI高共享一个项目级 Wiki 和 handoff减少重复交代上下文团队内部共享 Agent 项目记忆高支持多用户归属、API key、审计日志和局域网部署对外部 LLM API 敏感的代码库中高默认零 LLM可用本地检索但仍要管好本机数据目录和日志想把会话沉淀成可读知识库高Markdown Wiki 是事实源适合人工审阅和 Git diff只想要简单向量搜索中它能做检索但完整系统包含 hook、handoff、server、MCP、运维动作可能偏重强多租户 SaaS 记忆平台低文档明确没有每页 RBAC本质是自托管单租户/团队工具生产级远程共享服务中有认证、审计和部署文档但还需要 TLS、备份、权限、监控等运维配套一句话总结单人多工具、团队共享、想要可审计知识库的都是高适配想拿它搞强多租户 SaaS 的洗洗睡。7. 最后说两句这项目最有意思的地方是它拒绝把记忆简化成 embeddings。事实源回到文件系统Markdown 页面、Git 历史、SQLite 派生索引、MCP 工具、hook 捕获、handoff 协议。这堆东西不轻但方向是对的。等 Agent CLI 变成日常工具真正难的不是模型能不能回答而是上一轮的工作怎么可靠地交给下一轮。个人用loopback Docker 起步就够了团队试点先想清楚三件事数据目录放哪、谁能访问、什么内容允许发给外部 provider。把这三件事讲清楚文件优先的架构会比黑盒记忆服务更容易被工程团队接受。毕竟能 grep 的记忆才是好记忆。P.S. 无意间发现了一个巨牛的人工智能教程非常通俗易懂对AI感兴趣的朋友强烈推荐去看看传送门https://blog.csdn.net/qq_34419312
企业数字化 ERP 产品动态
相关推荐
新手装修必看:西夏区装修流程与材料选择全攻略 对于首次在西夏区置业的业主而言,了解西夏区装修材料的选择逻辑和整体装修流程,是顺利完成家装工程的前提。本文从西北住宅户型特点出发,系统梳理西夏区装修过程中涉及的材料认知、施工工序与验收要点,帮助新手建立完整的装修知识… · 2026/9/27 8:55:40
线程库的真相-TCB藏在用户态tid是地址join在等什么 线程库的真相:TCB 藏在用户态、tid 是地址、join 在等什么(8-12 ~ 8-15)
我的github:(https://github.com/xcx55/ubuntu-linux-project)
感谢各位大佬参观我的github!!
上一篇说了轻量级进程的概念… · 2026/9/27 8:55:34
Apache Pulsar 连接器管理实战:部署、配置、运行与监控 Pulsar IO Connectors 消息队列后端流处理 【免费下载链接】pulsar Apache Pulsar - distributed pub-sub messaging system 项目地址: https://gitcode.com/gh_mirrors/pulsar28/pulsar 点击查看 免费下载 Apache Pulsar 的 Pulsar IO 机制让 Pulsar 能够与 Cassandra、Kafka、Aerospik… · 2026/9/27 8:55:34
变电站巡检机器人通信协议怎么对接?三种主流方案 一、为什么巡检机器人必须先谈协议
巡检机器人落地失败的常见原因,不是机器人走不动,而是数据进不了站端系统。机器人一天采回几千条红外测温、可见光图像和表计读数,如果这些数据只能躺在机器人自己的后台里,运维人员看不到、辅… · 2026/9/27 9:29:39
地质公园网站建设避坑指南:源码下载前必看的5个成本细节 地质公园网站建设避坑指南:源码下载前必看的5个成本细节 自己不会代码想做网站,第一反应往往是去网上找【源码下载】,觉得有代码就能跑。但在地质公园这类对合规性、视觉表现力要求极高的项目中,直接套用通用模板或廉价源码,往往导致后期备案受阻、加载… · 2026/9/27 9:29:33
spring cloud alibaba (4)-sentinel实现容错 0.背景
Sentinel 是由阿里巴巴中间件团队开发的开源项目,是一种面向分布式微服务架构的轻量级高可用流量控制组件。Sentinel是对 Hystrix的进一步优化,和Sentinel的对比如下: Sentinel 分为两个部分:
核心库(Java 客户端&#… · 2026/9/27 9:29:27
第249篇_电商预售定金尾款与价保信息采集 【Python爬虫实战】第249篇:拆解定金膨胀与价保规则——电商预售定金尾款与价保信息采集实战 所属专栏:【Python爬虫实战】从零到企业级爬虫工程师(CSDN 付费专栏) 本篇篇目:第 249 篇(全专栏共规划 300+ 篇,每篇都是一个可独立上手的实战项目) 难度等级:进阶级,需要… · 2026/9/27 9:29:14
Media Encoder ME2026保姆级安装教程 前言
Media Encoder ME2026 是 Adobe 旗下的一款专业视频渲染与媒体处理工具,支持各类音视频格式的转码输出。不管你是在做视频剪辑、后期包装还是批量媒体处理,ME2026 都能帮你把渲染效率提上来。这篇 Media Encoder ME2026安装教程 会把从下载到安装的… · 2026/9/27 9:29:08
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01