人工智能Agent 记忆MCP 服务CLI知识管理开发工具【免费下载链接】iweMarkdown knowledge graph — LSP for your editor, CLI MCP memory for your AI agents项目地址https://gitcode.com/gh_mirrors/iw/iwe点击查看免费下载iwe 是一个用 Rust 编写的 Markdown 知识图谱工具通过编辑器 LSP、命令行和 MCP 三种方式让 Markdown 笔记同时成为你和 AI Agent 的共享记忆。它的 Rust 核心能够在不到 1 秒内把 2 万个 Markdown 文件构建成可查询的知识图谱。本文带你拆解它的五 crate 分层架构、Arena 图数据结构和 BM25 索引看看这个秒级加载背后到底做了什么。为什么 Markdown 知识图谱的加载速度这么关键传统 Markdown 工具把每个文件当作孤立的文本而 iwe 要把整个笔记库变成一张有向图每个标题、段落、列表、代码块都成为图中的节点跨文档引用变成图上的边参见官方数据模型文档 docs/data-model.md。这种能力带来的直接问题是图必须整体在内存里构建好才能查询。文件越多构建成本越高。如果加载要 30 秒iwe find每次都要等半分钟而 LSP 和 MCP 服务则必须在编辑器打开的瞬间就绪。这就是 iwe 架构的第一性目标把读盘 → 解析 → 建图这条路径压到秒级。iwe 总体架构五个 Rust crate 各司其职整个工作区Cargo.toml由 5 个 crate 组成分层非常清晰Crate角色关键源码路径liwe核心引擎解析器、图模型、Arena、查询语言crates/liwe/src/graph.rsdiwe磁盘层文件遍历、加载、BM25 搜索、文件监听crates/diwe/src/loader.rsiwe命令行工具find / tree / stats 等crates/iwe/src/lib.rsiwesLSP 服务器补全、跳转、重命名crates/iwes/README.mdiwecMCP 服务器AI Agent 读写记忆crates/iwec/README.md依赖方向单向向下liwe不依赖任何上层 cratediwe基于liwe提供磁盘与搜索能力iwe/iwes/iwec三个入口共享同一套核心。图只在内存中构建一次——CLI 每次调用构建一次LSP/MCP 服务器启动时构建一次、整个会话复用这是性能设计的地基。核心数据结构图 Arena而不是 DOM 树liwe 的Graph由三部分组成crates/liwe/src/graph.rsArena竞技场分配器所有节点和文本行存放在两个FxHashMap中crates/liwe/src/graph/arena.rs用NodeId/LineId作为整数索引 O(1) 取回避免了指针和频繁的小对象分配RefIndex引用反向索引inclusion_edges和reference_edges两张 HashMap 直接回答谁引用了我让 backlinks反向链接查询不用全图扫描crates/liwe/src/graph/index.rs独立内容存储结构节点、边与文本frontmatter、正文分开存放——结构变更不需要搬运文本图操作因此非常快。这个结构与文本分离的取舍正是 iwe 能在内存里轻快维护上万节点的根源。让 2 万文件秒级加载的 3 个关键设计① rayon 并行读盘磁盘 I/O 是加载路径的第一道门槛。diwe在 crates/diwe/src/fs.rs 中用into_par_iter()把所有 Markdown 文件的读取分散到多个线程同时执行文件遍历基于ignorecrate天然尊重.gitignore不会误读构建产物。② 解析与建图零拷贝衔接文件内容直接进入liwe的解析器生成图节点边在GraphBuilder过程中就地写入RefIndex没有中间 DOM 结构需要整体拷贝。对超过 128 篇文档的语料BM25 索引的语料抽取阶段同样按文档并行。③ 搜索索引只做一次增量维护iwe find --lexical使用的 BM25 全文索引crates/diwe/src/search.rs只在冷启动时构建一次。LSP / MCP 服务器运行期间监听文件变化crates/diwe/src/watcher.rs只对单个被修改的文档重新建索引避免每次编辑都重建 2 万篇的全量索引。实测数据2 万文件958 毫秒加载iwe 用 criterion 基准框架在 Apple M3 Pro 上做了系统性压测完整方法与数据见 docs/benchmark.md。核心数字阶段一 · 全量加载含 BM25 索引语料规模纯建图含搜索索引索引开销5,000 篇144 ms204 ms42%10,000 篇329 ms435 ms32%20,000 篇705 ms958 ms36%阶段二 · 图上查询2 万篇语料查询类型耗时字段过滤field_eq12.1 ms全文检索find_full15.0 ms反向链接retrieve_backlinks7.4 ms被引用关系referenced_by499 µs可以看到加载不到 1 秒查询毫秒级。而且开销随规模近似线性增长BM25 索引约 12 µs/篇没有隐藏的平方级陷阱。基准代码位于 crates/iwe/benches/load.rs 与 crates/iwe/benches/query.rs。架构收益三个入口共享一份秒级记忆这套架构最终让三种使用方式都受益CLIiwe find、iwe tree、iwe stats每次调用支付一次加载成本约 1 秒脚本与终端工作流立等可用LSPiwes启动建图一次之后跳转定义、查找引用、自动补全、安全重命名全部打在内存图上编辑器体验零延迟MCPiwecAI Agent 通过iwe_find、iwe_retrieve等工具直接查询同一张图你的笔记真正成为 Agent 的共享记忆。如何快速上手阅读 iwe 源码建议按数据 → 结构 → 入口的顺序切入 先读 docs/architecture.md 与 docs/data-model.md建立图模型的直觉 再看 crates/liwe/src/graph.rs 中的Graph/Arena定义理解节点、行、索引三件套 然后看 crates/diwe/src/loader.rs 中graph_from_path如何从磁盘走到图 最后挑一个你熟悉的入口crates/iwe 或 crates/iwes看命令如何落到图上。总结iwe 的秒级加载并非来自某个魔法依赖而是三个朴素的 Rust 工程决策叠加——rayon 并行 I/O、Arena 化的图存储、一次构建 增量维护的索引策略。它证明了知识图谱不必以牺牲速度为代价2 万个 Markdown 文件不到 1 秒你和你的 AI Agent 就能共同想起一切。赞分享人工智能Agent 记忆MCP 服务CLI知识管理开发工具【免费下载链接】iweMarkdown knowledge graph — LSP for your editor, CLI MCP memory for your AI agents项目地址https://gitcode.com/gh_mirrors/iw/iwe点击查看免费下载相关推荐终极指南PyKEEN知识图谱嵌入核心技术与表示模块深度剖析终极指南PyKEEN知识图谱嵌入核心技术与表示模块深度剖析 PyKEENPython Knowledge Embedding是一个功能强大的开源知识图谱嵌终极bRPC深度架构剖析从核心机制到百万级实战优化指南终极bRPC深度架构剖析从核心机制到百万级实战优化指南 bRPC是一个高性能、低延迟的RPC框架专为大规模分布式系统设计。作为GitHub加速计划的重要组成后端RPC框架通信网络深入剖析KongLuaNginx架构如何支撑每秒万级API请求深入剖析KongLuaNginx架构如何支撑每秒万级API请求 你是否正面临API网关性能瓶颈当系统并发量突破10000 QPS时传统网关是否频繁出现API网关后端LLM 网关微服务人工智能创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考