内容
<p align="center">
<img src="./docs/assets/social-preview.png" alt="文澜:一个适用于人工智能原生时代的个人知识库。" width="100%">
</p>
[](https://github.com/7xuanlu/wenlan/actions/workflows/ci.yml?query=branch%3Amain)
[](https://github.com/7xuanlu/wenlan/releases/latest)
[](https://www.npmjs.com/package/wenlan)
[](https://www.npmjs.com/package/wenlan-mcp)
[](https://modelcontextprotocol.io)
[](#license)
<p align="center">
<img alt="macOS" src="https://img.shields.io/badge/macOS-arm64%20%7C%20x64-A2AAAD?logo=apple&logoColor=white">
<img alt="Linux" src="https://img.shields.io/badge/Linux-x64%20%7C%20arm64-FCC624?logo=linux&logoColor=black">
<img alt="Windows" src="https://img.shields.io/badge/Windows-x64-0078D6?logo=windows&logoColor=white">
</p>
<p align="center">
<a href="#claude-code-in-30-seconds"><img alt="Claude Code" src="https://img.shields.io/badge/Claude%20Code-plugin-5D4E75"></a>
<a href="#mcp-only-setup"><img alt="OpenAI Codex" src="https://img.shields.io/badge/OpenAI%20Codex-MCP-111827"></a>
<a href="#mcp-only-setup"><img alt="Cursor" src="https://img.shields.io/badge/Cursor-MCP-111111"></a>
<a href="#mcp-only-setup"><img alt="VS Code" src="https://img.shields.io/badge/VS%20Code-MCP-007ACC"></a>
<a href="#mcp-only-setup"><img alt="Claude Desktop" src="https://img.shields.io/badge/Claude%20Desktop-MCP-D97757"></a>
<a href="#mcp-only-setup"><img alt="Gemini CLI" src="https://img.shields.io/badge/Gemini%20CLI-MCP-4285F4"></a>
<a href="#what-you-get"><img alt="Obsidian" src="https://img.shields.io/badge/Obsidian-Markdown%20pages-7C3AED"></a>
</p>
**一个适用于人工智能原生时代的个人知识库,由您的代理构建并基于其来源。**
文澜(Wenlan)得名于一个拥有中国最大藏书之一的帝国图书馆。您的代理在工作时会记录他们所学到的内容,您添加已经信任的页面和来源,这样知识库就可以从底层和顶层共同成长。文澜可以自行维护,保持更新,将捕获的内容提炼成有来源引用的维基页面。
每个会话都以简报开始,以交接结束,因此线程可以继续传递,而不是重新开始。
与静态的llm-wiki不同,它在会话之间不断演变。与黑盒记忆不同,每个页面都显示其来源,因此您可以阅读、信任或纠正它。
[](https://youtu.be/k37gjWVPHwI)
---
## 文澜的独特之处
1. **自行演变。** 大多数记忆工具只是返回您输入的内容。文澜在会话之间不断工作:它将捕获的内容重复、链接和聚类成有来源引用的维基页面,这些页面除了原子笔记外,还可以用于检索。 与静态的llm-wiki不同,知识库在您不维护的情况下仍然保持更新。
2. **一个家园,不受限制。** 每个MCP客户端都查询相同的本地守护进程,因此在一个工具中构建的上下文在下一个工具中可见。 Obsidian是一个可选视图,您可以将其链接到此处,但您的作品并不存储在这里。
3. **来源可靠,您可以信任。** 每个页面都引用了它来自的记忆,守护进程拒绝没有来源的页面,而不是让捏造的摘要进入。 低置信度的捕获和矛盾会浮现,供您确认或纠正,但日常流程不会因审批而停止。 修复一次,文澜会取代旧事实,而不是提供两者。
4. **真正的git版本控制。** 记忆、页面和会话的写入提交到`~/.wenlan/.git/`,因此您可以检查、差异、恢复或分支Markdown工件。
```text
a1b2c3d 页面:embedding-retrieval 已刷新(4个来源)
9f8e7d6 会话:handoff embedding-work
5a4b3c2 捕获:decision mem_abc123
```
---
## 快速开始
### 30秒内使用Claude Code
```text
/plugin marketplace add 7xuanlu/claude-plugins
/plugin install origin@7xuanlu
/init
```
如果Claude Code在安装后要求重启,请重启一次,然后运行`/init`。插件负责守护进程设置、MCP连线、本地记忆设置和首次往返检查。
然后在Claude Code中尝试`/brief`、`/capture <decision>`或`/handoff`。
插件详情和日常命令:[plugin/](plugin/.claude-plugin/README.md)。
### 仅MCP设置
如果您想在Claude Code中使用文澜工具而无需插件,或在Codex、Cursor、Claude Desktop、VS Code或Gemini CLI中使用。
```bash
npx -y wenlan setup
~/.wenlan/bin/wenlan mcp add claude-code # 或:codex, cursor, claude-desktop, vscode, gemini
```
MCP-only 提供给代理捕获、回忆、上下文、医生和页面蒸馏的工具。它不安装Claude Code的斜杠技能,如`/brief`、`/handoff`、`/distill`或`/init`。
### 终端运行时设置
设置本地文澜运行时:
```bash
npx -y wenlan setup
```
然后使用 `~/.origin/bin/origin status`、`~/.origin/bin/origin recall <query>` 或 `~/.origin/bin/origin store <text>` 开始。 CLI 详情:[crates/wenlan-cli](crates/wenlan-cli/README.md)。
服务管理:
```bash
origin install # 注册 + 启动守护进程(如果已运行则停止)
origin restart # 停止 + 启动守护进程 - 运行此命令以升级后
origin status
origin uninstall
```
升级文澜(`npx -y wenlan setup` 或 `install.sh`)后,新二进制文件已在磁盘上,但已运行的守护进程在您重启之前继续提供旧代码。 `wenlan install` 现在使用自动重启;如果您通过其他方式升级,请运行 `wenlan restart`。
---
## 文澜的工作原理
相同的循环在每个会话中运行:捕获工作中的内容,让守护进程在会话之间完善,然后返回已具备上下文的知识。
```text
┌──────── 循环返回 · /handoff 关闭每个传递 ─────────┐
▼ │
┌─────┴─────┐ ┌─────────────┐ ┌────────────────┐ ┌─────┴─────┐
│ 捕获 │ │ 守护进程 │ │ 一个存储 │ │ 回忆 + │
│ 在流程中 │ ─▶ │ 会话间优化 │ ─▶ │ (本地) │ ─▶ │ 简报 │
│ │ │ 重复/链接 │ │ · 记忆 │ │ 下一个 │
│ │ │ /蒸馏 │ │ · 维基页面 │ │ 会话 │
│ │ │ │ │ │ │ /回忆 │
└───────────┘ └─────────────┘ └────────────────┘ └───────────┘
一个本地守护进程 · 一个存储 · 每个MCP客户端都读取它
Claude Code · Cursor · Codex · Claude Desktop · VS Code · Gemini
```
每个传递都会让存储变得更智能。原本会作为松散片段存储的捕获会被重复、链接到相关的人和项目,并蒸馏成引用来源的页面,以便下个会话能带回知识,而不是原始历史。这就是循环被命名的原因。
这五个动词驱动它:
1. **会话开始。** `/brief [topic]` 加载项目状态、身份、偏好和主题相关的记忆,以便代理人具备上下文。
2. **工作期间。** `/capture <thing>` 在流程中保存决策、经验教训、注意事项或项目事实。 `/recall <query>` 查询任何内容。
3. **会话结束。** `/handoff` 编写更改的内容、未完成的内容和继续操作的位置,以便下次运行能顺利进行。
4. **会话之间。** 守护进程在后台重复捕获的记忆并链接相关想法。 `/distill` 在需要时将相关的记忆聚类成维基页面。
5. **下一个会话。** `/brief` 在Claude Code插件中带回记忆;MCP-only 客户端调用 `context` 工具获取相同的记忆。 回忆提取相关部分,而不是整个历史记录,以便上下文窗口适用于工作。
完整的技能参考:[plugin/skills](plugin/skills/README.md)。
无需API密钥、云账户或注册即可完全本地运行。捕获、回忆、混合搜索和图上下文不需要外部条件;仅需添加本地模型或API密钥即可进行自动页面蒸馏。无遥测。
---
## 您获得的内容
- **原子记忆层**:每个捕获首先存储为具有来源代理、置信度、稳定性以及替换元数据的 typed 记忆。
- **基于来源的页面**:页面保留来源记忆ID、停滞原因和修订状态,以便蒸馏可以刷新它们而不丢失出处。
- **libSQL上的混合检索**:记忆、页面、FTS5文本、向量嵌入和图上下文在一个本地存储中,您的MCP客户端可以查询,使用互惠排名融合。 可选的本地交叉编码器重新排序器可提高顶部结果的质量。
- **连接回忆**:人员、项目、工具和决策以链接的方式返回,因此记忆会带回周围的上下文,而不是单独存在。
- **蒸馏循环**:今天手动运行`/distill`,或添加本地模型/API密钥以进行后台提取、页面刷新、总结和更丰富的图链接。
- **自行保持更新**:后台传递链接实体、增长匹配页面,并从类型、访问和年龄更新每个记忆的有效置信度,因此最近和承载的记忆会浮现,而过时的记忆会淡出。
- **信任前审查**:低置信度的捕获、待处理修订、矛盾和替换可以浮现,而不是悄悄进入上下文。
- **显式空间**:使用`space=work | personal | client-X`标记记忆、页面和回忆。 自动从当前仓库或工作空间检测;如果未设置,则始终可覆盖。
- **您拥有数据**:所有内容都是`~/.wenlan/`下的纯Markdown,通过git版本控制。您可以grep、符号链接到Obsidian,或随时带走文件。 无锁定。
### 空间
记忆属于一个**空间**,如`wenlan`、`career`或
`ideas`。 按shell设置活动空间:
WENLAN_SPACE=career claude
或通过`~/.wenlan/spaces.toml`声明(参见
`plugin/examples/spaces.toml`)。 要从CLI管理空间:
wenlan space list
wenlan space add ideas --default
wenlan space show ideas
wenlan space move scratch career
`origin doctor`打印当前解析器状态,以便您准确看到哪个层选择了活动空间。
---
## 评估
**混合检索,透明评估。** BGE-Base-EN-v1.5-Q + FTS5 + 互惠排名融合;本地BGE-Reranker-Base交叉编码器重新排序器是启用时的默认路径,BGE-Reranker-V2-M3作为更高质量的选项提供。 下表仅限检索,不包括端到端答案质量。 ~168个token每查询。 评估工具:[`crates/wenlan-core/src/eval/`](crates/wenlan-core/src/eval/)。 自己运行。
更新工作流在[docs/eval](docs/eval/README.md)中。
<!-- EVAL_SNAPSHOT_START -->
| 基准测试 | Recall@5 | MRR | NDCG@10 |
|---|---:|---:|---:|
| LongMemEval (oracle,500 Q) | 93.6% | 0.857 | 0.883 |
| LoCoMo (locomo10) | 70.0% | 0.647 | 0.684 |
<!-- EVAL_SNAPSHOT_END -->
---
## 仓库地图
文澜是守护进程优先的。 `wenlan-server`拥有本地数据库、嵌入、蒸馏循环、知识图谱和`127.0.0.1:7878`上的HTTP API。 插件、MCP服务器、CLI和本地工具是该守护进程上的薄客户端。
| 路径 | 内容 |
| ------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [crates/wenlan-core](crates/wenlan-core/README.md) | 存储、搜索、嵌入、蒸馏循环、图、页面、导出、评估。 |
| [crates/wenlan-server](crates/wenlan-server/README.md) | 本地守护进程和HTTP API。 |
| [crates/wenlan-mcp](crates/wenlan-mcp/README.md) | MCP服务器、工具、npm包。 |
| [crates/wenlan-cli](crates/wenlan-cli/README.md) | 用户CLI,用于设置、服务管理、搜索、回忆、存储、列表、代理、模型/密钥设置和医生。 |
| [plugin/](plugin/.claude-plugin/README.md) | Claude Code插件(`plugin.json`、技能、钩子、`.mcp.json`)。 |
| [docs/eval](docs/eval/README.md) | 基准测试工作流和方法论。 |
完整贡献者地图:[CLAUDE.md](CLAUDE.md)。
---
## 从源代码构建
文澜在macOS(Apple Silicon + Intel)、Linux(x86_64 + ARM64;glibc)、Windows(x86_64)上本地构建。 npm包装器(`wenlan`、`wenlan-mcp`)和`install.sh`自动检测您的平台并拉取匹配的预构建版本。大多数用户应通过Claude Code插件或`npx`安装。对于本地开发:
```bash
git clone https://github.com/7xuanlu/wenlan.git
cd wenlan
cargo build --workspace
cargo run -p wenlan-server
```
构建详情见上述链接的crate READMEs。 跨平台特定项(服务注册、路径、Windows安装限制)位于[AGENTS.md](AGENTS.md#cross-platform).
---
## 了解更多
更长形式的AI工作记忆以及文澜的比较内容位于[useorigin.app/learn](https://useorigin.app/learn):
**概念**
- [什么是AI工作记忆?](https://useorigin.app/learn/ai-work-memory):文澜解决的问题形状
- [MCP记忆服务器](https://useorigin.app/learn/mcp-memory-server):文澜如何通过模型上下文协议公开内存
- [本地优先AI内存](https://useorigin.app/learn/local-first-ai-memory):数据、隐私和控制
- [Markdown + 本地索引](https://useorigin.app/learn/markdown-local-index-ai-memory):存储模型
- [AI代理交接循环](https://useorigin.app/learn/ai-agent-handoff-loop):会话结束时的纪律,防止上下文丢失
**比较**
- [文澜 vs 基本记忆](https://useorigin.app/learn/origin-vs-basic-memory):Markdown知识库 vs AI工作会话记忆
- [文澜 vs claude-mem](https://useorigin.app/learn/origin-vs-claude-mem):观察式Claude Code内存 vs MCP-first跨工具内存
- [文澜 vs Superlocal Memory](https://useorigin.app/learn/origin-vs-superlocal-memory):包括诚实的LoCoMo基准测试让步
**文档**
- [开始使用](https://useorigin.app/docs/get-started):安装 + 验证第一个本地内存循环:https://useorigin.app/docs/daily-workflow):捕获、交接、蒸馏
- [MCP客户端](https://useorigin.app/docs/mcp-clients):连接Claude Code、Cursor、Codex、Claude Desktop、Gemini CLI
---
## 文澜不是什么
- **不是生活操作系统。** 没有习惯、日历、日志或生活管理模块。文澜仅限于AI工作制品。如果您想要一个完整的操作系统,请查看 [PAI](https://github.com/danielmiessler/PAI)。
- **不是工作流套件。** 约30个MCP工具跨一个守护进程。如果您想要30多个技能、8个代理和一个自动研究循环捆绑,请查看 [pro-workflow](https://github.com/rohitg00/pro-workflow)。文澜为了专注而牺牲了广度。
- **不是内存基础设施SDK。** 适用于使用AI每日的内存,而非作为构建内存功能的应用程序的后端。
- **不适用于一次性聊天。** 最适合跨会话、项目和周的工作。
---
## 贡献
欢迎贡献漏洞修复、评估案例、文档和功能。从 [CONTRIBUTING.md](CONTRIBUTING.md) 开始。架构和开发规则位于 [CLAUDE.md](CLAUDE.md)。安全报告: [SECURITY.md](SECURITY.md)。请同时阅读 [行为准则](CODE_OF_CONDUCT.md)。
---
## 许可
文澜使用 **Apache-2.0** 许可。包括本地运行时、CLI、MCP服务器、共享类型和Claude Code插件文件在本仓库中。
宽容的许可使MCP客户端和下游本地工具的守护进程边界可用。
---
## 致谢
前辈们:
- [Karpathy的LLM-wiki笔记](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f)。原始到维基的蒸馏模式。
- Claude Code的`MEMORY.md`。最简单的版本。
同行们:
- [agentmemory](https://github.com/rohitg00/agentmemory)。代理端内存框架。
- [basic-memory](https://github.com/basicmachines-co/basic-memory)。Claude本地知识管理。
- [obsidian-mind](https://github.com/breferrari/obsidian-mind)。基于Obsidian的内存和编码代理审查循环。
- [pro-workflow](https://github.com/rohitg00/pro-workflow)。Claude Code生产力套件。
- [mcp-memory-service](https://github.com/doobidoo/mcp-memory-service)。MCP内存服务。
- [Memoria](https://github.com/matrixorigin/Memoria)。 "AI Agent Memory的Git" 通过Copy-on-Write。
- [OpenMemory](https://github.com/CaviraOSS/OpenMemory), [claude-memory-compiler](https://github.com/coleam00/claude-memory-compiler), [PAI](https://github.com/danielmiessler/PAI), Palinode。 邻近形状。
不同的形状,具有相同的问题。试试适合你的那个。
连接信息
猜你喜欢
暂无推荐服务器