关于 aidimag
aidimag 为编码 Agent 提供仓库记忆,将经审核的声明与证据一同保存,并随代码变化重新验证。其 MCP 服务支持实时检索与记录,验证机制和护栏则帮助避免过时信息误导开发。
主要功能
- 01带证据的仓库记忆
- 02人工审核的捕获队列
- 03Git 钩子验证与过期检测
- 04关键词与向量混合检索
- 05护栏与提交前检查
- 06为非 MCP 工具生成上下文文件
适用场景
- 01跨编码会话查询仓库约定
- 02审核从提交和聊天中提取的建议
- 03发现因代码变化而失效的记忆
- 04在提交前应用仓库规则
MCP 相关
其 MCP 服务向兼容 Agent 提供记忆搜索、建议提交、实时笔记、会话采集、评议和工单查询。非 MCP 工具可使用生成的上下文文件。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y aidimagAIDIMAG_REPOAbsolute path to the git repository whose memory store to serve. Optional: defaults to walking up from the current working directory.AIDIMAG_LLMLLM provider for extraction features (chat_harvest, knowledge ingestion): openai | ollama | off. Optional: auto-detected.OPENAI_API_KEY密钥OpenAI API key, used only if the OpenAI provider is selected/detected for extraction features.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
AI Dimag — 面向 AI 编码 Agent 的可信记忆
你的编码 Agent 会忘记代码库。AIDimag 不会。
文档 • 为什么选择 AIDimag? • 快速入门 • 使用场景 • 基准测试 • AI Dimag Cloud • 定价
什么是 AI Dimag?
AI Dimag 是一个面向软件工程的记忆系统,而不是通用的“AI 记忆”应用。它为任何兼容 MCP 的 Agent(Claude、Cursor、Copilot、Windsurf 等)提供可跨会话保留的代码库记忆——包括决策、约定、注意事项、失败的方案、护栏和可复用的技能,并将其作为带有佐证证据、可证伪的声明存储在代码旁边的 .aidimag/ 目录中。
记忆的对象是你的代码仓库,而不是你的偏好或聊天记录。每项功能——证据、git 钩子验证、护栏、提交前检查、按路径限定的记忆检索、会话暂存区——都是为了服务日常开发工作而设计的。
区别:声明并验证,而不是存储并检索
大多数记忆系统会存储文本,之后再检索相似内容——存储的事实会被假定永远正确。这在代码库中很危险,因为检索到一个已过时却言之凿凿的事实,比没有记忆更糟糕。
每条 AI Dimag 记忆都带有证据(shell 检查、固定到提交的证据或测试),dim verify 会针对当前代码仓库重新运行这些检查——并通过 git 钩子,在每次拉取、检出和变基时自动执行。已不再成立的判断会变为过时状态(STALE),而不会悄无声息地误导 AI。
适用于所有 AI 工具
- MCP 工具(Claude、Cursor 等)通过 MCP 服务获取实时记忆
- 非 MCP 工具(Copilot、Windsurf 等)获取静态上下文文件(
.cursorrules、CLAUDE.md、AGENTS.md等)
安装
npm install -g aidimag
需要 Node 22+。提供两个功能相同的二进制文件:dim(短名称)和 aidimag。
快速入门
cd your-repo
dim init # creates .aidimag/, installs additive git hooks
dim bootstrap # optional: LLM-survey the repo into a starter memory set
dim review # approve what enters memory (nothing is stored unreviewed)
dim remember "All DB access goes through src/db/store.ts" -k INVARIANT -p src \
-e "STATIC_CHECK:! grep -rl better-sqlite3 src --include=*.ts | grep -v store.ts"
dim recall db access
dim verify # re-run all evidence; stale beliefs get flagged
dim brief # session-start briefing: in-scope memory, guardrails, gaps
# For non-MCP tools (Copilot, Cursor without MCP, etc.):
dim generate-context --format all --auto # creates .cursorrules, CLAUDE.md, AGENTS.md, etc.
一键设置
dim setup --yes # init + git hooks + MCP configs for detected agents + context files
dim setup-ollama # install Ollama + pull a free local embedding model for semantic search
dim doctor # verify everything is wired correctly
连接到你的 AI Agent(MCP)
添加到 Agent 配置中(例如,Claude Code 的 .mcp.json):
{
"mcpServers": {
"aidimag": {
"command": "npx",
"args": ["-y", "aidimag", "mcp"],
"env": { "AIDIMAG_REPO": "/path/to/your/repo" }
}
}
}
MCP 工具包括 memory_search、memory_propose、context_note(实时记录聊天中的事实)、chat_harvest(实时、与工具无关的会话收集,并在服务端自动删除密钥)、memory_critique(基于已验证记忆的第二位评审者)、会话开始简报、会话结束提取等。
非 MCP 工具:dim generate-context -f all 会将已验证的记忆写入 .cursorrules、CLAUDE.md、AGENTS.md、.windsurfrules 和 .github/copilot-instructions.md(使用 --auto 可使其保持更新)。
Hermes Agent:dim hermes install 可将 aidimag 注册为原生 Hermes 记忆提供程序——只需一条命令,无需 pip 或 venv。一个仅使用 Python 标准库的桥接程序会委托 MCP 服务处理:会话简报会注入系统提示词,每轮对话都会预先提取相关记忆,会话中的经验则作为待审核的提案提交(绝不静默写入)。然后执行:hermes config set memory.provider aidimag。
主要功能
人工审核后采集
提交记录、PR、AI 聊天记录(Claude Code、Codex、Copilot、Cursor)以及粘贴的文档都会被提取为提案。只有你在 dim review 中批准后,内容才会进入记忆(系统会优先对最佳提案进行自动分类;批量处理可使用 approve all --min-score 0.7)。
验证生命周期
证据类型包括 STATIC_CHECK / COMMIT_REF / TEST_RESULT / EXEC_TRACE / HUMAN_ATTESTED。验证失败会将记忆标记为 STALE,并自动起草恢复提案。若未重新确认,置信度会逐渐降低。
证据信任门控
通过团队同步收到的 Shell 命令证据,在你检查并批准之前,绝不会执行(dim verify --trust)。
混合语义检索
支持 FTS5 关键词检索和向量 KNN(OpenAI、本地 Ollama 或 AWS Bedrock;除需显式选择的 Bedrock 外,其他会自动检测;没有这些服务时也可仅使用关键词检索)。
防护规则与技能
行为规则(never / ask-first / always)和分步操作流程由 dim check(提交前检查)和 memory_critique 强制执行。
团队模式,可自托管
dim serve + dim sync:本地优先的副本、设备代码登录、限定于特定知识库的 API 密钥、哈希凭据,以及跨设备验证共识。
知识库收件箱
将设计文档 / ADR / PDF / DOCX 放入 knowledge/,系统会将其总结为经过审核并固定的记忆。
临时记录与来源审计
dim scratch(以及 scratchpad_* MCP 工具)用于保存短期会话笔记——会在 TTL 到期后清除,不会同步,也不会成为持久记忆。dim audit 会列出依据最薄弱的记忆(由 Agent 编写、没有证据、已过时或长期未验证),方便你像审计仓库依赖项那样修正知识。
Web 仪表板与扩展
dim ui——通过浏览器运行检查、查看会话简报、初始化、收集数据并生成上下文——另提供 VS Code 和 IntelliJ 扩展。
工单系统集成
提交记录会告诉你发生了什么变化;工单则记录了为什么变化。aiDimag 可连接到你的工单系统,让上下文流入记忆——工单标题、类型和状态会显示在 dim review 中提取的提案旁,Agent 还可以通过 ticket_get MCP 工具获取工单。
支持的提供商
Jira、GitHub Issues、Linear、GitLab Issues、Azure DevOps、ClickUp、Shortcut、YouTrack、Asana、Trello、Notion、Pivotal Tracker、自定义 HTTP 中间件,或远程(团队同步服务端,无需本地凭据)。
快速开始
# Connect a provider (interactive)
dim ticket connect
# Check status
dim ticket status
# View a specific ticket
dim ticket show XXX-2100
# Share credentials with your team (admin)
dim ticket share
按仓库存储凭据
工单凭据按仓库存储在 .aidimag/config.json 的 tickets.token 中(文件权限模式为 0o600),与云同步令牌采用相同的方式。不同项目之间的凭据不会泄露。你也可以设置 AIDIMAG_TICKET_TOKEN 环境变量,其优先级高于配置文件。
团队共享工单(远程提供方)
一位管理员通过同步服务器共享其工单凭据(dim ticket share)。团队成员选择 “Remote (team sync server)” 作为提供方,通过服务器解析工单,本地不保存任何工单凭据。关联云服务器后,仪表板会自动发现团队的工单提供方,并显示 “Connect now” 按钮。
分支约定
定义分支命名约定,并让 aiDimag 在违反约定时发出警告或阻止操作:
dim ticket branch-rule # manage the convention
dim branch XXX-2100 # create a conforming branch (fetches title for slug)
| 强制方式 | 效果 |
|---|---|
off | 不检查 |
warn | 创建分支时提示(post-checkout) |
push | 阻止推送不符合约定的分支(pre-push) |
完整指南:连接工单
对比
AI Dimag 采用 声明并验证 模式;其他记忆系统采用 存储并检索 模式。简而言之:
| 对话记忆层 | 向量存储记忆插件 | 手动维护的上下文文件 | AI Dimag | |
|---|---|---|---|---|
| 为谁而构建 | 记住 用户 的聊天助手 | 对嵌入文本进行通用回忆 | 面向编码 Agent 的静态指令 | 面向持续演进的代码仓库中的编码 Agent |
| 记忆单元 | 提取的事实 / 聊天摘要 | 嵌入的文本块 | 文字内容 | 可证伪的类型化声明及其证据 |
| 如何写入记忆 | 自动捕获 | 自动嵌入 | 手动编辑 | 人工审核队列 |
| 代码更改时 | 毫无变化——存储的事实仍被视为“真实” | 毫无变化 | 文件悄然过时 | 通过 git 钩子重新运行证据验证;失效声明会变为 STALE |
| 信任模型 | 写入时标记,之后从不复查 | 相似度 ≈ 信任 | “文件里写了” | 验证状态 + 逐渐衰减的置信度;按信任度排序检索 |
| 强制措施 | 无——仅注入 | 无 | 希望模型会读取 | 防护措施 + pre-commit dim check + memory_critique |
| 失效模式 | 自信地回忆过时事实 | 检索相似内容,不论真假 | 指令与现实脱节 | 明确表示“此项已变为 STALE”,而不是猜测 |
与知名工具对比
aiDimag 与人们常问到的记忆工具之间的关系。这些工具解决的是不同问题(记住 用户和对话);aiDimag 记住的是你的 代码仓库,并证明其中的记忆依然真实:
| aiDimag | Mnemosyne | mem0 | Letta | Honcho | SuperMemory | Hindsight | ChromaDB | |
|---|---|---|---|---|---|---|---|---|
| 记忆对象 | 你的代码库 | 聊天 / Agent 会话 | 用户和 Agent 的事实 | Agent 自身的上下文 | 用户 / 同伴推理 | 个人 + Agent | Agent 记忆 | —(向量数据库) |
| 本地优先 | ✅ 每个代码仓库使用 SQLite | ✅ SQLite | ⚠️ 混合 | ❌ Docker+PG | ⚠️ PG+worker | ❌ SaaS | ✅ SQLite | ✅ 嵌入式 |
| MCP 服务 | ✅ 内置 | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ |
| 依据代码验证记忆 | ✅ 通过 git 钩子重新运行证据验证 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 人工审核写入 | ✅ 审核队列 | ❌ 自动捕获 | ❌ 自动 | ❌ | ❌ | ❌ | ❌ | — |
| 强制措施 | ✅ 防护措施 + pre-commit + 评议 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 开源 | ✅ MIT | ✅ MIT | ✅ Apache 2.0 | ✅ Apache 2.0 | ⚠️ AGPL | ❌ 专有 | ✅ MIT | ✅ Apache 2.0 |
| 已发布的基准测试 | 自有测试套件:过时检测率 100%,误报率 0% | BEAM 65.2% / LongMemEval 98.9% R@All@5(自行报告) | LoCoMo | LoCoMo 83.2% | LongMemEval 90.4% | MemoryBench 85.2% | BEAM 73.4% / LongMemEval 94.6% | — |
聊天记忆基准测试(LoCoMo、LongMemEval、BEAM)衡量的是对 对话历史 的回忆能力,因此不适用于 aiDimag——它的记忆对象是代码仓库。相应地,aiDimag 发布了自己的可复现测试套件(见下文),其中包括一项聊天基准测试都未衡量的指标:代码更改时,记忆是否会察觉?
基准测试
可复现的性能和质量测试套件位于 benchmark/
(npm run bench、npm run bench:quality)。核心结果(Apple M4、Node 24、
10,000 条记忆的脑库——完整表格见 aidimag.com/benchmarks):
| 指标 | 结果 |
|---|---|
| FTS 关键词搜索 | 1.45ms p50 |
| 向量 KNN(768 维,sqlite-vec) | 4.15ms p50 |
| 记忆写入(事务处理,含 FTS + 事件日志) | 约 5,400 次/秒 |
CLI 冷启动(dim --help) | 约 41ms p50 |
| 陈旧状态检测(失效的声明 → STALE,真实 git 测试样例) | 100%(4/4) |
| 误报(完好的声明被错误标记) | 0%(0/4) |
| 检索,关键词查询(Recall@1 / MRR,仅 FTS) | 1.00 / 1.00 |
| 检索,释义查询(仅 FTS;混合检索可弥补这一差距) | 0.25 / 0.27 |
文档
|
入门 |
概览 |
指南 |
完整文档:aidimag.com
参与贡献
欢迎贡献!有关开发环境设置、项目原则和 PR 检查清单,请参阅 CONTRIBUTING.md。所有参与行为均受我们的行为准则约束。
许可证与定价
AI Dimag 基于 MIT License 开源——所有人均可永久免费使用,不限团队规模。使用它、派生它、将它嵌入其他项目。
整个本地优先产品均可免费使用:CLI、MCP 服务、验证、防护措施、技能、IDE 扩展、本地控制面板,以及可自托管的团队同步(dim serve)。
想要团队同步,但不想运行服务?AI Dimag Cloud 是可选的托管同步订阅服务——项目正是通过它获得资金支持并保持开源。请参阅定价。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。