ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

ai-memory Rust 9 Crate 架构详解:从 core 到 cli 全景图

ai-memory Rust 9 Crate 架构详解:从 core 到 cli 全景图 ai-memory Rust 9 Crate 架构详解从 core 到 cli 全景图【免费下载链接】ai-memorySolution for long term memory for agent coding CLIs and to facilitate handoff between different agent vendors项目地址: https://gitcode.com/GitHub_Trending/ai/ai-memoryai-memory 是一个用纯 Rust 编写的 AI 编码代理长期记忆系统它以单个二进制文件运行底层由 9 个职责单一的 Crate 协作完成“捕获 → 编译 → 召回 → 交接”的完整记忆闭环。本文将带你从最底层的ai-memory-core一路看到入口ai-memory-cli用一张全景图看懂这套 Rust 架构是如何设计的无需阅读源码也能建立清晰心智模型。30 秒看懂 ai-memory 是什么想象你正在用 Claude Code 改一个项目做到一半要切换到 Codex 或 Cursor 继续——传统做法是重新解释一遍架构、已失败的尝试和未解决的问题。ai-memory 干的就是把这一步去掉静默捕获各 Agent 的生命周期 Hook提示词、工具调用、会话边界被自动记录默认路径0 次 LLM 调用编译成 wiki会话结束时原始观察被编译成 git 版本化的 Markdown 页面——grep能查、Obsidian 能开、rsync 能搬跨工具交接下一个会话任何 Agent、任何机器拿到一份有边界的简报并可全文检索全部历史。capture ──▶ consolidate ──▶ recall ──▶ handoff hooks session-end search next agent, observe summaries as brief any harness silently wiki pages injection它原生支持 Claude Code、Codex、Cursor、Gemini CLI、Devin 等 20 多种 Agent CLI见 README.md 支持矩阵多用户、审计日志、按项目隔离都是内置能力。9 Crate 全景图分层、单一职责、零循环依赖打开根 Cargo.toml 就能看到工作区成员而 docs/ARCHITECTURE.md 的 “Crate layout” 一节给出了最精炼的官方分层crates/ ├── ai-memory-core/ 领域类型、错误、ID。零 IO。 ├── ai-memory-store/ SQLite 单写者 actor 读连接池 衰减计算 ├── ai-memory-wiki/ 原子 Markdown 写入、文件监视、git 版本控制 ├── ai-memory-mcp/ MCP 传输层 工具路由 ├── ai-memory-hooks/ 载荷 schema、清洗器、/hook 入口 ├── ai-memory-llm/ 提供方鉴权边界 LlmProvider / Embedder trait ├── ai-memory-consolidate/ Karpathy 式 ingest / lint / sweep / 自改进流水线 ├── ai-memory-workstream/ 只读原生转录 受管启动适配器 └── ai-memory-cli/ ai-memory 二进制入口 薄 HTTP 子命令依赖方向自下而上、不存在循环依赖跨 Crate 边界正是各条核心不变量如“wiki 是唯一事实源”的强制点Crate一句话职责依赖的上游 Crateai-memory-core领域类型、错误、ID、页面/观察/交接模型无地基ai-memory-storeSQLite 存储层单写者 actor FTS5/实体/向量索引coreai-memory-wikiMarkdown 读写、原子落盘、git 版本控制core, store, llmai-memory-hooksHook 载荷校验与隐私清洗不可信文本唯一入口core, store, wiki, llm, consolidateai-memory-mcpMCP 服务器传输 19 个记忆工具路由core, store, wiki, hooks, llm, consolidateai-memory-llmAnthropic / OpenAI / Gemini / Copilot 等统一提供方抽象coreai-memory-consolidate会话摘要、lint、遗忘清扫、自动改进core, store, wiki, llmai-memory-workstream跨工具“会话级”连续性只读转录导入与启动规划coreai-memory-cli唯一二进制ai-memory的入口聚齐以上全部能力全部 另有 ai-memory-web 提供只读浏览器视图--enable-web启动以及仅用于测试、绝不随发布走的 ai-memory-test-support。逐层拆解每个 Crate 在解决什么问题1️⃣ ai-memory-core零 IO 的领域地基crates/ai-memory-core/src/lib.rs 定义了pagewiki 页面、observation原始观察、handoff交接、sanitize隐私清洗、ids、slots等模块。它不做任何 IO——所有上层 Crate 共享的“词汇表”都在这里这是整套架构可维护的根基。2️⃣ ai-memory-storeSQLite 单写者存储层crates/ai-memory-store/src/lib.rs 内含 writer actor、读连接池、衰减计算与迁移。关键设计所有写操作串行通过唯一写者配合 migrations/ 下 60 多个 SQL 迁移文件保证多会话、多用户并发下状态一致。检索侧提供 FTS5 全文、实体匹配与链接邻居图。3️⃣ ai-memory-wikiMarkdown 是唯一事实源crates/ai-memory-wiki/src/lib.rs 负责原子 Markdown 写入、文件监视和 vendored git 版本控制。数据库只是可从文件随时重建的派生索引——这意味着你的记忆永远不会被二进制“绑架”。4️⃣ ai-memory-hooks不可信文本的消毒门crates/ai-memory-hooks/src/lib.rs 是 Agent 世界进入存储世界的唯一入口Hook 载荷 schema 校验 类型化隐私边界清洗。被丢弃的敏感事件不会进入 spool、队列、日志或存储中的任何一环。5️⃣ ai-memory-mcpAgent 的 19 个记忆工具crates/ai-memory-mcp/src/lib.rs 承载 MCP 服务器与工具路由暴露memory_query多路 RRF 融合检索、memory_handoff_begin/accept类型化、一次领取的交接、memory_feedback、memory_lint等 19 个工具完整工具表见 docs/ARCHITECTURE.md。6️⃣ ai-memory-llm统一提供方抽象crates/ai-memory-llm/src/lib.rs 以 trait 统一了 Anthropic、OpenAI含 OAuth/Codex、Gemini、GitHub Copilot 及任意 OpenAI 兼容端点Ollama、LM Studio覆盖 LLM 与 Embedding 两类提供方还支持无 API key 的本地嵌入模型。7️⃣ ai-memory-consolidate记忆的“编译器”crates/ai-memory-consolidate/src/lib.rs 是最有“Karpathy LLM Wiki”味道的 Crate会话观察 → 会话摘要页 →concepts/、decisions/、gotchas/多页编译外加 lint 矛盾检测、遗忘清扫TTL 硬删 冷页驱逐 墓碑清理与自动改进调度器。提示词模板就在 crates/ai-memory-consolidate/prompts/。8️⃣ ai-memory-workstream跨工具的会话连续性crates/ai-memory-workstream/src/lib.rs 提供只读原生转录导入与受管启动规划支撑ai-memory run claude/ai-memory run codex这类“换工具、接着干”的连续工作流详见 docs/managed-workstreams.md。9️⃣ ai-memory-cli聚齐一切的单一入口crates/ai-memory-cli/src/main.rs 是最终入口commands/ 目录下 50 多个子命令——init、serve、install-mcp、install-hooks、backup、reindex、purge——全部薄薄地包装在 HTTP/领域层之上。一次请求的旅程一条记忆如何诞生把 9 个 Crate 串起来数据流就是 docs/ARCHITECTURE.md 描述的稳态循环Agent 触发 Hook→ai-memory-hooks清洗载荷、判定ObservationKind入队写命令写者落库→ai-memory-store单写者串行写 SQLite同时追加log.md会话结束→ai-memory-wiki原子写出sessions/id.md摘要页并 git 自动提交同时开启一条 Handoff可选编译→ 配置了 LLM 时ai-memory-consolidate把摘要改写为更耐久的多页 wiki下次会话→ 任意 Agent 经ai-memory-mcp注入有界简报memory_query以 FTS5 实体 链接邻居 可选向量RRF 融合召回后台维护→ 遗忘清扫、自动改进、备份backup/restore按 [maintenance] 计划运行。编译后的 wiki 长什么样左侧是concepts/、decisions/、gotchas/、sessions/目录树右侧是最近活动——这就是 9 个 Crate 协作的最终产物快速上手两条命令接入你的 Agentai-memory --data-dir ~/.local/share/ai-memory \ --config ~/.config/ai-memory/config.toml init ai-memory install-mcp --client claude-code --apply ai-memory install-hooks --agent claude-code --apply之后每次提示词与工具调用都会自动进入记忆下一个会话启动即见交接简报。完整安装手册AUR、Docker、远端服务器、多用户在 docs/install.md只想翻一翻记忆内容加--enable-web启动即可得到上文的两页浏览器视图。为什么这套架构值得参考依赖即文档9 个 Crate 的依赖图本身就是架构说明core零 IO 强制类型纯粹边界即不变量清洗、单写者、wiki 事实源都固化在 Crate 边界上而非约定单二进制交付10 余个工作区成员最终只产出ai-memory一个可执行文件unsafe_code forbid全工作区生效。想继续深入建议按序阅读docs/ARCHITECTURE.md数据流与不变量、docs/design-decisions.md完整 v1 规格、docs/companion-crates.md外围边界规划。【免费下载链接】ai-memorySolution for long term memory for agent coding CLIs and to facilitate handoff between different agent vendors项目地址: https://gitcode.com/GitHub_Trending/ai/ai-memory创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表