【免费下载链接】OpenLore
A minimal, extensible, agent-native knowledge repository that keeps shared context current and inspectable
OpenLore 是一个极简、可扩展、Agent 原生的知识库(knowledge repository):你把它指向一个 Markdown 文件夹,团队里的 Claude Code、Codex、Cursor 或 CI 任务就都能读到同一份文件。没有向量数据库、没有摄入流水线、没有 SDK——知识就是普通的 Markdown,却拥有了 Git 给不了你的权限、一致性与治理能力。
如果你正在用 Git 仓库当"多 Agent 团队的共享大脑",多半已经遇到这些场景:
- 想让某个 Agent只能读某目录、另一个 Agent只能投递新文档,Git 只有"整个仓库能不能 push";
- 每个 Agent 各自 clone 一份,更新后还要 pull、rebase、解冲突,知识版本开始漂移;
- 让 Agent 走 MCP 或专用 API,还得为它学一套新的检索接口。
OpenLore 正是为"多个 Agent、多个仓库、多个人需要同一份知识"而生的。下面这 5 个理由,说明它为什么比 Git 更适合承载多 Agent 团队的共享知识。
理由一:细粒度权限隔离,一个服务器管住所有知识 👀
Git 的权限粒度是"仓库级"的:能访问仓库,就几乎能看全部历史和内容。要隔离不同团队的知识,只能拆成多个仓库,而多仓库必然漂移。
OpenLore 用docset(文档集)解决这个问题:一个 docset 就是一组路径 + 一条访问策略,声明在lore.json里。
- 每个身份(SSH 密钥、passkey、OAuth 登录)只看到被授权的 docset——没授权的 docset 不列出、不可搜、按路径也摸不到,Agent 连
grep都 grep 不进来; - 权限分三档:
ro(只读)、publish(只能向收件箱投递)、rw(读写); - 同一个服务器、同一棵目录树,同时服务公开文档、各团队的 runbook、Agent 的私有工作区。
官方示例配置可以直接看 lore.json.example,策略模型详解在 docs/docsets.md 与 docs/auth.md。
一句话:你不再需要"信任 Agent 不乱看",它想偷看也偷看不了。
理由二:零摩擦更新,下一次读取就是最新版本 🔄
Git 模式下,知识更新意味着:commit → push → 各端 pull,稍有并行还要 rebase 和合并。对"每次会话都在读知识"的 Agent 来说,这是纯粹的摩擦。
OpenLore 是活的知识(live knowledge):
- 服务端更新一个文件,所有 Agent下一次读取拿到的就是新版本,没有 clone、没有缓存、没有同步步骤;
- 一条知识只有一份权威副本,从根上消灭"三个仓库里三份略有不同的 runbook";
- 接入也极简:一条命令起服务,见 docs/quickstart.md:
openlore ./docsSSH 监听2222,Web 视图与 MCP 共享8080,./docs的内容直接出现在根路径。
理由三:Agent 原生接入,cat / grep / find 就是检索 API 🤖
传统知识库(Confluence、Notion)和 RAG 方案都要求 Agent 学会一套专有接口:调 API、等检索、拿回一堆切块。
OpenLore 的思路反过来了——让 Agent 用它早已熟悉的工具:cat、grep、find、管道,直接跑在虚拟文件系统上。
- 任何会执行 shell 命令的 Agent(或 CI 任务)通过 SSH 即可接入;Claude Code、Codex、Cursor 等 MCP 客户端走同一个
/mcp端点,背后是同一个文件系统、同一套受限 shell; - 没有客户端库,能发命令字符串就能用,接入文档见 docs/transports.md 与 docs/usage.md;
- 安全上它也是"由构造保证"的:这个 shell 是纯 Go 实现的内存解释器,不是
bash——没有exec、没有curl、没有进程逃逸,完整威胁模型见 SECURITY.md。
理由四:受治理的写入,多 Agent 并发也不会互相踩 🔒
"让 Agent 把研究结论写回知识库"是共享知识的关键闭环,而 Git 的 commit/PR/merge 流程对 Agent 太重。
OpenLore 默认只读,开启写入后(readonly: false),所有写操作走唯一一条受策略管控的写入路径:
| 机制 | 作用 |
|---|---|
| 原子写 | 每次写入都是整对象原子替换,不会写出一半文件 |
| compare-and-swap | 文件在你读取后被改过?过期写入直接拒绝,而不是静默覆盖 |
| docset 授权 | 写目标受该身份在 docset 上的 grant 约束 |
publish收件箱 | 贡献者可以投递新文档,却改不动已有文件 |
一个典型的 Agent 协作场景:研究 Agent 拿到publish权限,把发现投递到/backend/inbox/;维护者审阅后再合入正式文档。完整玩法见 docs/writing.md 与 docs/publish-to-inbox.md。
Git 保护的是"文件不丢",OpenLore 保护的是"谁在什么授权下、在什么状态下改了什么**。
理由五:可观测 + 可扩展,知识第一次变成可运营的基础设施 📊
把 Markdown 放进 Git 后,你对知识的了解基本止于"文件还在"。OpenLore 把知识当成基础设施来运营:
- 仪表盘(
/dashboard/)展示:每个 Agent 在读什么、每个文件的 token 大小、哪些文档从未被触碰——让你知道哪些知识在创造价值、哪些是死文档,详见 docs/dashboard.md; - 插件体系:验证规则、读写中间件、提交后处理都能以插件形式扩展,而不破坏文件系统接口;
- 结构化而不引入新查询语言:frontmatter 可以用
lore meta导出为 NDJSON、再用jq查询,还能在写入侧校验 Google 的 Open Knowledge Format(OKF)与 Agent Skills; - 可移植的知识包:文档可嵌入自包含二进制、经 CI 构建跨平台版本,或打包成桌面 MCP 扩展,参考 docs/usage.md。
快速上手:3 条命令接入你的第一个 Agent ⚡
# 1. 安装并服务一个文件夹 brew install --cask aakarim/tap/lore openlore ./docs # 2. 接入 Claude Code(MCP) claude mcp add --transport http openlore http://localhost:8080/mcp # 3. 或者任何会 shell 的 Agent(SSH) ssh -p 2222 localhost "grep -r 'retry' /"还可以把接入说明直接写进AGENTS.md:ssh -p 2222 localhost agents >> AGENTS.md。服务器配置模板见 openlore.yml.example。
结论:Git 和 OpenLore,各守其位
官方文档对"为什么不再把 Markdown 留在仓库里"的回答很诚实:单 Agent、单仓库,就继续用 Git,那是对的。
OpenLore 针对的是 Git 的盲区——当多个 Agent、多个仓库、多个人需要同一份知识,且你必须说清楚"谁可以读、写、发布什么"时:
- docset + 角色给每个身份只留它该看的视野;
- 活的知识让更新即时生效,无需同步仪式;
- cat/grep/find + MCP让任何 Agent 零学习成本接入;
- 原子写 + 冲突检测 + 收件箱让写入安全可控;
- 仪表盘与插件让知识可观测、可运营、可扩展。
更多场景(团队制品库、Agent 共享记忆、Skills 共享、受治理贡献)与完整文档索引,可从项目首页 README.md 和 docs/introduction.md 开始阅读。
【免费下载链接】OpenLore
A minimal, extensible, agent-native knowledge repository that keeps shared context current and inspectable
相关推荐
优化Hermes Agent的启动时间:性能调优与依赖管理全攻略
优化Hermes Agent的启动时间:性能调优与依赖管理全攻略 在使用Hermes Agent的过程中,启动时间过长可能会影响工作效率和用户体验。本文将分享一
AI Agent人工智能AI 应用工具调用Agent 记忆交互助手RAG任务调度MCP 服务项目指令:电商平台后端
项目指令:电商平台后端 你的角色 你是资深全栈工程师,精通Node.js、TypeScript和微服务架构。具备丰富的电商系统开发经验,熟悉高并发场景下的性能优
AI 应用AI 插件代码智能体人工智能no-littering完全指南:从安装到高级配置的完整步骤
no littering完全指南:从安装到高级配置的完整步骤 no littering 是一款专为 Emacs 用户设计的实用工具,旨在帮助保持 ~/.conf
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考