内容
# dukememory
[](LICENSE)
[](Cargo.toml)
[](#MCP-Server)
[](#Local-First)
[](TRADEMARKS.md)

**AI 编程代理的项目记忆。**
`dukememory` 是 Codex、Claude、Cursor 等编程代理的本地记忆层。它存储项目知识,以便在聊天中保持一致:
决策、约束、命令、已知问题、任务状态、用户偏好和设计笔记。
它的目的是为代理提供最小的有用上下文,而无需将聊天历史记录转储到每个提示中。

## 为什么
编程代理会忘记重要的项目上下文。长提示浪费令牌。
基于记录的记忆很快就会变成噪音。
`dukememory` 给你:
- `.agent/memory.db` 中的持久项目记忆
- 编码前的微小任务简介
- 编辑前的文件和符号影响检查
- 结构化卡片代替聊天记录
- 本地优先存储,支持可选的语义回忆
- 用于检查、编辑和审计记忆的网页界面
- MCP 服务器和 Codex 技能,用于代理原生使用
- 自主维护,支持回滚友好操作
## 记忆内容
| 记忆 | 示例 |
| --- | --- |
| 目标 | 产品方向、项目目的 |
| 决策 | 接受的架构或 UX 选择 |
| 约束 | 代理必须遵循的规则 |
| 命令 | 构建、测试、部署、设置命令 |
| 已知问题 | 错误、风险、注意事项、脆弱路径 |
| 任务状态 | 工作停止的地方和下一步骤 |
| 设计笔记 | 值得重用的实现细节 |
## 工作原理
1. 将持久事实存储为类型化的记忆卡。
2. 在任务开始时检索紧凑的 `简介`。
3. 在编辑前检索文件、符号或子系统的 `影响` 记忆。
4. 默认使用 SQLite FTS,或添加嵌入以进行语义回忆。
5. 通过可观察、可逆的自主维护保持记忆健康。
结果是减少重复解释、减少遗忘约束和降低上下文成本。
## 安装
```bash
cargo build --release
target/release/dukememory update-install \
--from target/release/dukememory \
--to ~/.local/bin/dukememory
```
## 快速开始
```bash
cd /path/to/project
dukememory onboard --root . --install-autonomous
dukememory install-skill
dukememory memory-contract --write
```
## 每日命令
```bash
dukememory brief "修复结账验证" --budget-profile tiny
dukememory impact src/checkout.ts --budget-profile tiny
dukememory recall "结账验证" --max-chars 1200
dukememory drift --root . --json
```
保存持久知识:
```bash
dukememory add decision \
"结账验证首先在客户端进行" \
"服务器验证保持权威;客户端验证改善反馈。" \
--link file:src/checkout.ts
dukememory embed-index
```
## 本地优先
`dukememory` 默认情况下将数据存储在项目中:
```text
.agent/memory.db
.agent/config.toml
.agent/MEMORY_CONTRACT.md
```
不需要云服务。嵌入是可选的。
## 嵌入
```bash
export DUKEMEMORY_EMBED_PROVIDER=ollama
export DUKEMEMORY_EMBED_ENDPOINT=http://localhost:11434
export DUKEMEMORY_EMBED_MODEL=bge-m3:latest
dukememory embed-index
dukememory embed-status --json
```
## 网页界面
```bash
dukememory serve-http --host 127.0.0.1 --port 8765
```
打开 `http://127.0.0.1:8765/`。
使用它来搜索记忆、检查证据、查看 inbox 项目、监视使用情况和检查自主健康状况。
## MCP 服务器和 Codex
```bash
dukememory serve-mcp
dukememory install-skill
dukememory codex-doctor --json
```
代理规则:读取 `简介`,使用 `影响`,在广泛编辑前运行 `漂移`,仅写入持久结果,然后在重要写入后重新索引嵌入。
## 自主维护
```bash
dukememory autonomous install --force --level normal
dukememory autonomous status --json
dukememory autonomous rollback --json
```
## 开发
```bash
cargo fmt --check
cargo test
cargo test --features vec
cargo clippy --all-targets --all-features -- -D warnings
cargo build --release
```
## 许可证
Apache-2.0。
## 品牌
代码在 Apache-2.0 下获得许可,但 `dukememory` 名称、商标、截图和项目品牌不允许在衍生产品或服务中使用。参见 [TRADEMARKS.md](TRADEMARKS.md)。