把文档变成可导航的图谱,让智能体精准取用知识
37.5/100
综合分
9
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/JimmyWesley/MonkeyLLM.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
5 张 · 点击查看大图功能亮点
- 文档转为知识图谱
- 智能体MCP导航
- 表格上执行SQL
展开完整介绍(164 字)↓
给智能体用的知识引擎:你的文档变成 git 版本管理的 markdown 知识图谱,智能体通过 MCP 在上面导航。精选摘要、带类型的边、带引用的回答、直接在表格上跑 SQL,不做分块。同一个 12B 本地模型:做 top-k RAG 时多跳问题 0/11,做导航器时 11/11。Python,Apache-2.0,可自托管。
README
由 DeepSeek 最新模型翻译生成MonkeyLLM
面向 AI 智能体的知识引擎:一种查询数据的新方式。 你的文档会变成一个由 git 版本管理的 markdown 知识图谱,智能体通过 MCP 在其上导航:经过整理的摘要、带类型的边、带引用的答案、对电子表格执行 SQL,没有任何内容被切分成匿名片段。
这个仓库不是应用程序。知识存在于一片森林中:一棵由 git 版本管理的 markdown 节点树,每个节点都携带一份经过整理、带有气味线索的护照。AI 不会拿到一份检索转储。它会导航:通过搜索进入,沿着带类型的边前进,只读取它需要的那个节点,并种下它学到的东西。成功的搜寻会留下信息素并铸造快捷链接,因此语料库本身会从使用中学习。
一片真实的森林:49 个分支中的 1,877 个节点。每个簇都是一个分支,每个点都是一个节点;实线是经过整理的小径,虚线是某次搜寻发现的快捷路径,光晕是使用留下的信息素。
让我们把它写下来的那个数字:在一个每个问题都需要 ≥3 次链式跳转的基准上,同一个 12B 本地模型作为经典 top-k RAG 阅读器得分为 0 / 11,而作为森林导航者得分为 11 / 11(100%),每个正确答案的 token 成本是迭代式 RAG 基线的 0.66×,并且运行在单张消费级 GPU 上。如果你的第一反应是“我需要测试它是否真的适用于我的场景”,很好。
展开完整文档(README 剩余 1 节)
MonkeyLLM
面向 AI 智能体的知识引擎:一种查询数据的新方式。 你的文档会变成一个由 git 版本管理的 markdown 知识图谱,智能体通过 MCP 在其上导航:经过整理的摘要、带类型的边、带引用的答案、对电子表格执行 SQL,没有任何内容被切分成匿名片段。
这个仓库不是应用程序。知识存在于一片森林中:一棵由 git 版本管理的 markdown 节点树,每个节点都携带一份经过整理、带有气味线索的护照。AI 不会拿到一份检索转储。它会导航:通过搜索进入,沿着带类型的边前进,只读取它需要的那个节点,并种下它学到的东西。成功的搜寻会留下信息素并铸造快捷链接,因此语料库本身会从使用中学习。
一片真实的森林:49 个分支中的 1,877 个节点。每个簇都是一个分支,每个点都是一个节点;实线是经过整理的小径,虚线是某次搜寻发现的快捷路径,光晕是使用留下的信息素。
让我们把它写下来的那个数字:在一个每个问题都需要 ≥3 次链式跳转的基准上,同一个 12B 本地模型作为经典 top-k RAG 阅读器得分为 0 / 11,而作为森林导航者得分为 11 / 11(100%),每个正确答案的 token 成本是迭代式 RAG 基线的 0.66×,并且运行在单张消费级 GPU 上。如果你的第一反应是“我需要测试它是否真的适用于我的场景”,很好。每个数字都可以通过已提交的脚本复现,整个设计都写在论文中。
这个仓库中的其他一切,都是围绕那个引擎存在的。你在截图中看到的 Studio 控制台不是产品。它是管理层:人们观察、治理和教授引擎所服务内容的地方。
规范就是真相:最新的 docs/monkeyllm-spec-v.md 是规范性的;代码遵循它,而不是反过来。
引擎,在你自己的代码中
这个引擎是一个普通的 Python 包(Apache-2.0),不附带宿主、服务器或 UI。把它指向一个文件夹,你就拥有了一片森林;在你自己的 Python 中操作它:
pip install monkeyllm # the monkeyllm package + vine CLIbash
vine init --forest ./brain --title "My brain" # 一片空森林,git 等一应俱全
直接从源码安装,无需等待发布:
pip install "git+https://github.com/JimmyWesley/MonkeyLLM.git"。需要 Python
3.11+;G 部分的文件转换器是额外组件(pip install "monkeyllm[ingest]"),贡献者则需要更下方的可编辑安装方式。
python
from monkeyllm import Vine
from monkeyllm.harvest import harvest
vine = Vine("./brain")
vine.plant({"id": "inbox/_index", "type": "branch", "parent": "_index",
"title": "Inbox", "summary": "Loose notes before they find a branch."})
vine.plant({"id": "inbox/first-note", "type": "note", "parent": "inbox/_index",
"title": "First note", "summary": "Where this brain begins.",
"body": "Planted from my own code."})
vine.locate("where does this brain begin?") # ranked entry points, BM25, zero embeddings
harvest(vine, "first note") # one-shot retrieval: evidence + snippets, zero LLM
智能体使用的每一个原语都依托同一个对象(locate、look、 move、pick、scan、sniff、query、plant、graft、tend),每一个都有 token 预算,每一次截断都明确可见。园丁(vine adopt / vine sync)将现有的文档树镜像为一片森林,而护林员(vine ranger)则长期维护它的健康。
而且同一片森林可以直接从 CLI 以 MCP 与任何智能体对话: bash vine serve --forest ./brain # stdio MCP server vine serve --forest ./brain --transport http # or over HTTP
Claude Code,或任何支持 MCP 的运行时,随后便掌握了这片森林的工具:没有主机,没有账户,你的机器,你的生态系统。
你喂给它的任何东西都变得可导航
你不需要为引擎准备文件。你只需把它们交出去,园丁便会转换、总结并提交每一个文件,无论它从命令行(vine adopt)、从控制台,还是从你的浏览器运行,都走同一条流水线:
| 你放入的内容 | 它变成什么 |
| .md、.markdown、.txt | 一个 note;文本本身即是正文 |
| .docx | 一个 document:标题和段落转为 markdown |
| .pdf | 一个 document,通过一行转换器钩子,使用你信任的任何 CLI 提取器(方法) |
| .csv | 一个数据集:一张真正的 SQLite 表,用只读 SQL 查询 |
| .json | 若是扁平表格则为数据集,否则为承载 JSON 的 document |
| .xlsx、.xls | 每个工作表一个数据集,类型自动推断 |
| .db、.sqlite、.sqlite3 | 整体收养:数据库本身成为载荷,附带生成的查询手册和示例行 |
| .png、.jpg、.jpeg、.gif、.webp | 一个 media 节点;在绑定了 vision 模型的 Station 上,它还会获得一段可被搜索找到的文字描述 |
| .mp3、.wav、.m4a、.ogg、.flac | 一个携带其护照的 media 节点 |
| 其他任何内容 | 在报告中按名称列为 unsupported,这样你就能确切看到哪些内容没有落地 |
表格文件不再是文档:电子表格变成智能体用 SQL 查询的表,其护照中写有 ## Query manual 和示例行,这样模型在查询之前就知道存在哪些表和列。它们意味着什么,是机器唯一无法推断的东西,所以由人在 ## Notes 部分中写下来,该部分随数据集在所有被读取的地方一同传递。
.docx、.xlsx 和 .xls 需要可选的 ingest 附加项(pip install -e ".[ingest]")。PDF 需要转换器钩子,因为好的提取器是重量级(通常是 copyleft)依赖,本项目不会强加给你:在 _meta/gardener.yaml 中指定工具,它就会加入流水线。表中的其他所有内容开箱即用。
从 Ingest 控制台将文件送入森林
拖入文件、镜像主机可读取的整个文件夹,或就地编写文档:每一个都会带着精心整理的护照到达,而一批就是一个你可以观看的任务。没有任何内容被分块后遗忘。每个文档都会变成一个节点,带有名称、摘要和边。
以及来自浏览器
Clipper(apps/clipper/)是一个 Chrome/Edge/Brave 扩展,可将你正在阅读的页面变成一片森林:可读文章或仅你的选择作为 markdown,截图或拖拽区域作为 media 节点。拖拽区域,通过其手柄调整,进行标注(箭头、方框、笔、文本标签),并为 Gardener 留下备注,可键入或口述。剪辑落地时会附带页面地址,因此始终可以追溯。
一键:剪辑、捕获、编写,或向森林提问。
拖拽一个区域,标注它,留下备注,然后捕获。
它持有自己的一对配对密钥,绝不是你的密码,而 Station 在 /clipper.zip 提供构建产物,并在控制台自己的侧栏中提供:一个只能缩小你访问权限的密钥是自助的,所以获取扩展也是如此。
快速开始(开发) bash
pip install -e ".[dev]" && pip install -e apps/station
python -m pytest -q
python forests/scripts/build_fixture.py
python -m monkeyllm.cli validate --forest forests/forest-fixture
管理层(Station + Studio)当一片森林必须是共享的、受治理的资产,而非个人目录时,Station(规范 Part J)会以身份、按森林策略、审计和模型绑定来包装未经改动的引擎,在 /v1 下提供 REST 服务,在 /mcp 下提供 MCP 服务。它还提供 Studio,即 Web 控制台:
提出自带来源的问题,以活图的形式遍历树,用 SQL 查询数据集,通过上传和浏览器 Clipper 为森林提供内容,授予限定范围的访问权限,并把你自己的 AI 交给那项让森林成为其持久记忆的技能。控制台是引擎的可能性变得可见的地方,但无论它显示什么,持有同一密钥的 API 客户端也能获取:不存在特权路径。
文档
The MonkeyLLM Handbook:安装它,首次登录,使用并喂养森林,通过 MCP 连接你自己的 AI(包括 Studio 生成的 Claude Code 技能),并治理部署。提供英语、葡萄牙语和西班牙语版本,并附有截图。
论文
MonkeyLLM: Stigmergic Navigation of Knowledge Forests,用小型语言模型的智能体觅食取代检索增强生成。森林、气味契约、十个有预算的原语、信息素经济,以及森林原则(把智能花在环境上,这样你就能在模型上花得更少),每一个基准数字都可从本仓库复现。
路线图
引擎、Station、Studio 和 Clipper 已经构建并经过测量;下面的阶段是接下来要做的事。完整计划及各阶段的退出标准见 docs/monkeyllm-roadmap.md;当前工作待办见 tasks/。
| 下一步 | 含义 | 当前进展 |
| 正式发布 Monkey Bench | 发布完整基准运行及其轨迹,对照 top-k 和迭代式 RAG 基线 | 4 项退出标准中已满足 3 项;第 4 项按每正确 token 数重新测量(0.66×) |
| 收敛曲线 | 证明随着森林被使用,回答所需跳数会下降*:信息素经济开始见效,也是论文的标志性图表 | 已测量一次;标准尚未满足,而发现本身(地板效应、信息素串扰)就是结果 |
| The Troop | 带评判者的并行觅食者:目前是准确率放大器,还不是速度放大器 | 两组均为 8/8 准确率;墙钟时间标准需要更深的语料库 |
| 摄取时的实体和类型化边 | Gardener 提取人物、地点和关系,超越当前的摘要和 related-to 提议 | 已设计(Part G),需要规范升级 |
| Station 加固 | OIDC 登录、按主体配额 | Part J 的其余部分今天发布 |
| 发表 | 论文以 DOI 存入(Zenodo / arXiv) | 已撰写;存入待定 |
| 阶段 3:更快的核心(有条件) | 在相同契约背后用 Rust 实现 Catalog + Canopy,仅当遥测证明瓶颈时 | 有意未开始;目前 SLM 主导成本 |
项目对自身坚持的规则:在前一阶段通过其退出标准之前,任何阶段都不得开始;没有测量证明其合理性,就不进行任何优化。 基准是裁判,而不是直觉,这就是为什么未通过的标准被写在上方,而不是被悄悄丢弃。
布局
| 路径 | 其中内容 |
| src/monkeyllm/ | 引擎:vine CLI、10 个原语、harvest、Gardener(摄取)、Ranger(维护)、catalog、Canopy |
| apps/station/ | 可部署主机:REST /v1、MCP /mcp,为 Studio 提供服务 |
| apps/studio/ | Web 控制台(React/Vite,构建进 Station 镜像) |
| apps/clipper/ | 浏览器扩展:将你正在阅读的页面剪藏进森林 |
| paper/ | 论文:设计、词汇、基准、作者身份 |
| forests/ | 生成的森林(除 forests/scripts/ 外被 gitignore);重建,绝不编辑 |
| bench/ | Monkey Bench:chunker、RAG 基线、runner |
| scripts/ | 基础设施 + 测量(本地模型、bench、策展指标) |
| docs/ | 规范、手册(docs/guide/)和设计笔记 |
| tasks/ | 待办事项,每个任务一个文件 |
运行整个环境(Docker)
一个容器同时服务前端和后端;数据持久化在命名卷中: bash
cp .env.example .env # fill in what you use
docker compose up --build -d
完整演练请参见 deploy/README.md,包括 Dokploy 和可选的本地 llama.cpp 推理。
许可证
两个许可证,沿架构已经划定的界线拆分:
- 引擎(src/monkeyllm/、规范、基准、工具): Apache-2.0。MCP 契约旨在传播。
- 主机(apps/station/、apps/studio/、apps/clipper/): AGPL-3.0-only。自托管免费且不受限制;将其作为托管服务提供意味着开放你的技术栈。
完整地图、商业选项和贡献的 DCO 要求请参见 LICENSING.md。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
JimmyWesley/MonkeyLLM
把文档变成可导航的图谱,让智能体精准取用知识
相关插件 · 搜索 / 抓取
LLM 知识平台Tencent/WeKnora
概览 ·快速开始 ·新特性 ·功能 ·客户端 ·文档 ·开发
★ 36,379已汉化DSH
72
智能体记忆系统MemTensor/MemOS
MemOS 2.0 Stardust星尘
★ 12,247已汉化DSH
71.3
跨代理记忆库zilliztech/memsearch
跨平台语义记忆,专为 AI 编程智能体打造。
★ 2,799已汉化DSH
70.9
技能语料库EverMind-AI/SkillCorpus
SkillCorpus 能给你什么
★ 695已汉化DSH
69.8
动画花园资源检索yjl9903/AnimeGarden
動漫花園 镜像站 | 动画 BT 资源聚合站 | 动画 BT 资源开放接口
★ 1,391已汉化DSH
69.2
代码图谱记忆syncable-dev/memtrace-public
你的智能体值得拥有结构化记忆。
★ 510已汉化MCP
67.9
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。