
Memmy架构深度剖析如何用TypeScript、Electron和SQLite打造Local-First的Agent Runtime【免费下载链接】memmy-agent A personal AI agent local memory hub for all AI agents, gives every AI one shared, fully controlled memory and persistent context — all AI remember the same you. Now supports Claude Code, Codex, OpenClaw and Hermes Agent etc.项目地址: https://gitcode.com/gh_mirrors/me/memmy-agentMemmy 是一个 Local-First 的个人 AI Agent Runtime 与本地记忆中枢Memory Hub。它完全用 TypeScript 构建通过 Electron 提供桌面应用用 SQLite 作为本地持久化底座让 Claude Code、Codex、OpenClaw、Hermes 等所有 AI 共享同一份完全由你控制的持久记忆。本文将从 Monorepo 结构、Memory 服务、桌面壳到 Agent Runtime带你完整剖析这套架构的设计思路。总体架构一个本地记忆底座 多个入口Memmy 的核心设计理念是所有 Agent 和入口桌面 App、CLI/TUI、外部 Agent 适配器都共享同一个本地 Memory 服务和 Agent Runtime数据不离开本机。整体分为四层层说明关键目录桌面端Electron 壳 React 前端App/shell/desktop、App/frontend/desktop本地后端Fastify 路由 SQLite 应用状态App/backend记忆底座Memory 服务默认:18960Memory/Agent Runtime消息循环、工具、MCP、渠道、技能App/memmy-agent核心概念速览可见官方文档 docs/cn/concepts/architecture.mdx。Monorepo 组织9 个 Workspace 各司其职项目根目录通过 npm workspaces 组织了整个工程结构如下定义在 package.jsonMemory/— 记忆服务本体memmy/memory含服务端、CLI、存储、检索、演化算法App/backend— 桌面端本地 API 后端Fastify SQLiteApp/shell/desktop— Electron 主进程壳App/frontend/*— React Vite 桌面渲染层App/memmy-agent— Agent Runtime模型调用、工具、MCP、渠道接入、TUIAgentSourceCore/、Knowledge/、Migrations/— Agent 来源扫描、知识库、运行时配置迁移这种分层让每个模块可以独立构建和测试构建顺序由脚本串联如memory:build→workspace:build版本则通过 scripts/sync-project-version.mjs 统一同步。Memory 服务SQLite 是 Local-First 的基石Memmy 的记忆底座是一个绑定127.0.0.1的本地 HTTP 服务入口在 Memory/src/server/index.ts默认监听:18960。存储层有两个亮点单一 SQLite 文件搞定全部持久化基于better-sqlite3开启 WAL 模式与 5 秒 busy_timeout见 Memory/src/storage/db.ts迁移前自动执行VACUUM INTO生成备份升级零数据丢失。FTS5 全文检索 sqlite-vec 原生向量检索双通道在 Memory/src/storage/backend.ts 中声明了fullText: fts5与vector: native关键词搜索和语义搜索跑在同一个数据库里无需额外向量库。可插拔后端同一套StorageBackend接口下同时实现了sqlite-local和openmem-cloud-rest两种后端本地优先但架构上为云端同步留好了扩展位。服务启动时还包含用户级锁acquireUserServiceLock与 SQLite 文件锁保证同一时刻只有一个服务实例运行这对 Local-First 场景的并发安全至关重要。桌面端Electron 壳 React 前端桌面应用由两部分组成Electron 主进程App/shell/desktop/package.json 中使用 Electron 38 与 electron-builder 打包主进程负责拉起 Memory 服务、管理本地 Runtime、处理屏幕采集等系统能力。React 渲染层App/frontend/desktop基于 Vite 构建页面、状态、i18n 按pages/、state/、i18n/组织通过api/目录调用本地后端。后端 App/backend/package.json 则使用 Fastify 暴露本地 API配合 SQLite 的 app-state-store含 30 余个 SQL 迁移文件持久化应用状态并内置权限管理permission/permission-manager.ts保证桌面端所有敏感操作都经过本地授权。Agent RuntimeMemmy 自己也是 AgentApp/memmy-agent是项目的大脑描述为 TypeScript refactor of memmys agent runtime。它具备完整的 Agent 能力多模型 ProviderOpenAI、Anthropic、AWS Bedrock、本地模型等支持 BYOKMCP 集成通过modelcontextprotocol/sdk接入工具生态多渠道接入Telegram、Slack、Discord、飞书、钉钉、微信等TUI 交互基于 Ink/React 的终端界面支持斜杠命令菜单运行入口 App/memmy-agent/src/main.ts 提供memmy agent、memmy serveOpenAI 兼容 API:18990等命令Linux 下通过 systemd 用户服务常驻memmy-memory.service/memmy-gateway.service。跨 Agent 记忆架构的最终形态Memmy 最有价值的架构产出是跨 Agent 任务连续性——用 AgentSourceCore/ 中的读取适配器解析 Codex、Claude Code、Cursor 等各 Agent 的本地会话文件把散落在各处的历史统一汇入同一份 SQLite 记忆库实现所有 AI 记住同一个你。数据始终留在本地关键源码路径速查模块路径Memory 服务入口Memory/src/server/index.ts存储后端抽象Memory/src/storage/backend.tsSQLite 连接与迁移备份Memory/src/storage/db.ts本地后端FastifyApp/backend/src/index.tsElectron 壳App/shell/desktop/Agent RuntimeApp/memmy-agent/src/架构文档docs/cn/concepts/architecture.mdx总结Memmy 的架构可以概括为三点TypeScript 全栈统一从 Memory 服务、Fastify 后端到 Electron 主进程与 React 前端同一语言贯穿所有层类型契约local-api-contracts跨层共享SQLite 即数据库、向量库、全文索引better-sqlite3 FTS5 sqlite-vec 让 Local-First 不需要任何额外基础设施Electron 只负责体验Memory 才是核心Memory 服务可脱离桌面端独立运行memmy-memoryCLI systemd 服务Agent、脚本、CLI 都能接入同一份本地记忆。这就是一个 Local-First Agent Runtime 的完整答案把记忆做成独立、可移植、本地可控的基础设施让所有 AI 工具围绕它协作。【免费下载链接】memmy-agent A personal AI agent local memory hub for all AI agents, gives every AI one shared, fully controlled memory and persistent context — all AI remember the same you. Now supports Claude Code, Codex, OpenClaw and Hermes Agent etc.项目地址: https://gitcode.com/gh_mirrors/me/memmy-agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考