English | 简体中文
把收藏编织成可行动的洞察。
洞察织机(InsightLoom) 是一个自托管的个人知识工作台:你把文章、论文、链接、笔记丢进收件箱,一队看得见的 Agent 分拣、摘要、互链、对抗审查,生成每日简报——所有对知识库的修改都需要你审批后才落盘。
品牌官网域名:
insightloomapp.com(建设中)
30 秒演示:语义检索 → RAG 问答 → 投递 → Agent 流水线 → 审批入库 → 自动进入可检索索引
现有的"AI 第二大脑"(如 khoj)大多是被动检索:你问,它答。洞察织机的差异在于主动加工:
- 🔍 流水线可见:打开 UI 就能看到分类员、摘要员、链接员、质疑员实时处理你的阅读队列
- ⚔️ 对抗审查:质疑员对摘要员的产出做红队检查,过度概括、无中生有会被标记
- ✅ 人审批:Agent 只提「提案」,批准之前一个字节都不会写进你的知识库
- 📄 零锁定:知识本体只是磁盘上的 Markdown 文件(Obsidian 可直接打开),SQLite 只存过程状态
- 🔌 任意模型:OpenAI 兼容协议,默认 DeepSeek,可切 Ollama 本地模型;无 Key 也能跑(MOCK 模式)
┌──────────┐
│ 🏷️ 分类员 │ depth=read_later
│ (classify)│──────────────────────┐
└────┬─────┘ ▼
│ depth=deep ┌───────────┐
┌────────┴────────┐ │ 📦 组装员 │
▼ (fan-out 并行) │ │ (assemble)│
┌───────────┐ ┌───────────┐ └─────┬─────┘
│ 📝 摘要员 │ │ 🔗 链接员 │ │
└─────┬─────┘ └─────┬─────┘ │
└──────┬─────────┘ │
▼ │
┌───────────┐ │
│ ⚔️ 质疑员 │ (fan-in:等两者完成后对抗审查)
└─────┬─────┘ │
└───────────────────────────────────┘
⬇ 人工审批
vault/xxx.md(带 frontmatter + [[双链]])
- 分类员按内容深度路由:短内容走「稍后读」快车道,长内容触发深加工(按需消耗 token)
- 摘要员 / 链接员并行工作;链接员带幻觉防护,只引用真实存在的笔记
- 质疑员等两者完成后对照原文做对抗式审查(结论:通过 / 存疑)
- 组装员产出结构化提案(frontmatter + 摘要 +
[[双链]]+ 审查记录),进入审批队列
完整教程见 使用手册:采集三姿势、审批要点、图谱/检索/简报玩法、备份与常见问题。
# 环境要求:Python 3.10+(推荐 uv 管理)
uv venv --python 3.12 .venv
UV_CACHE_DIR=/tmp/uv-cache uv pip install --python .venv/bin/python \
fastapi "uvicorn[standard]" langgraph langchain-core openai python-dotenv
# MOCK 模式(无需任何 API Key,体验完整流程)
# 环境变量前缀统一为 INSIGHTLOOM_*;旧前缀 CURATOR_* 仍然兼容,存量部署不受影响
INSIGHTLOOM_LLM_MOCK=1 .venv/bin/uvicorn server.app:app --port 8300
# 打开 http://127.0.0.1:8300
# 真实模式(DeepSeek,几块钱够用很久)
INSIGHTLOOM_LLM_API_KEY=sk-xxx .venv/bin/uvicorn server.app:app --port 8300
# 或任意 OpenAI 兼容服务:
INSIGHTLOOM_LLM_API_KEY=sk-xxx INSIGHTLOOM_LLM_BASE_URL=https://api.openai.com/v1 \
INSIGHTLOOM_LLM_MODEL=gpt-4o-mini .venv/bin/uvicorn server.app:app
# 免费真实模型(OpenAI 兼容,任选):
# 智谱 GLM-4-Flash —— 注册即永久免费
INSIGHTLOOM_LLM_API_KEY=你的key INSIGHTLOOM_LLM_BASE_URL=https://open.bigmodel.cn/api/paas/v4 \
INSIGHTLOOM_LLM_MODEL=glm-4-flash .venv/bin/uvicorn server.app:app
# 阿里云百炼 —— 新用户 7000 万 Token(90 天)
INSIGHTLOOM_LLM_API_KEY=sk-xxx INSIGHTLOOM_LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 \
INSIGHTLOOM_LLM_MODEL=qwen-plus .venv/bin/uvicorn server.app:app方式一 · 书签脚本(零安装):打开工作台,把「🌾 织入织机」按钮拖到浏览器书签栏;在任意网页点击,选中文字(或页面描述)+ 标题 + 链接直接进收件箱。
方式二 · 浏览器插件(右键直达,推荐):
1. Chrome 打开 chrome://extensions → 右上角开「开发者模式」
2. 「加载已解压的扩展程序」→ 选择仓库里的 web_extension/ 目录
3. 点插件图标 → 填服务地址(默认 http://127.0.0.1:8300)→ 测试连接 → 保存
之后在任意网页:选文字 → 右键 → 🌾 织入洞察织机,系统通知确认,流水线自动开工。 插件走扩展 host 权限发请求,不受页面 CORS 与私有网络管控(PNA)限制。
curator/
├── server/
│ ├── app.py # FastAPI:投递/状态/审批 API + 静态托管
│ ├── pipeline.py # LangGraph Agent 流水线(分类→并行→对抗审查→提案)
│ ├── llm.py # OpenAI 兼容封装 + MOCK 模式
│ └── store.py # SQLite 过程状态 + vault Markdown 落盘
├── web/index.html # 三面板工作台 UI(收件箱 / Agent 活动 / 审批)
├── vault/ # 你的知识库(纯 Markdown,Obsidian 兼容)
└── data/ # SQLite + 日志(运行时生成)
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/inbox |
投递内容 {title, content, url?},触发流水线 |
| GET | /api/state |
聚合状态(条目/事件/提案/vault/LLM) |
| POST | /api/proposals/{id}/approve |
批准提案 → 写入 vault |
| POST | /api/proposals/{id}/reject |
拒绝提案 |
| POST | /api/garden/run |
🌻 触发园丁巡库(发现 + 双链提案) |
| GET | /api/digest |
每日简报:24h 统计 + vault 健康度 + 巡库发现 |
| GET | /api/search?q= |
语义检索 vault(本地嵌入,返回小节级命中) |
| POST | /api/ask |
RAG 问答 {question},回答带引用笔记 |
| POST | /api/reindex |
全量重建语义索引 |
| GET | /api/health |
健康检查 + LLM/检索状态 |
完整产品形态(五层架构/用户旅程/里程碑)见 docs/PRODUCT_VISION.md
- P0 核心闭环:收件箱 → 五 Agent 流水线 → 审批 → vault 落盘
- P1a 🌻 园丁 Agent:巡库检测孤立/过时/薄弱笔记,双链建议走统一审批(批准后自动追加
[[双链]]到既有笔记)+ 每日简报页(24h 统计/标签/健康度) - P1c 检索层:本地向量库(Chroma + 本地 ONNX 嵌入,无需云 API)+ 语义检索
/api/search+ 链接员语义化 + RAG 问答/api/ask(带引用);审批落盘自动入索引 - P1b 知识图谱视图(双链可视化)、React 前端重构
- P2a 采集端·书签脚本:工作台生成「🌾 织入织机」按钮,拖到书签栏,任意网页一键投递(选中文字优先);弹窗导航方案,不受 CORS/私有网络管控限制
- P2b 采集端·浏览器插件:右键「织入」直达流水线,系统通知确认,popup 可配服务地址(
web_extension/) - P2 采集端进阶(Telegram bot)、demo GIF、正式发布(V2EX / 掘金 / HN / r/selfhosted)
- P3 本地模型适配(Ollama)、checkpointer 时间旅行、RSS/邮件采集、多用户
- 最小发布清单见:
docs/LAUNCH_MIN_CHECKLIST.md
- 为什么 Markdown 而不是数据库存知识? —— 零锁定是采纳第一动力;过程状态(SQLite)与知识本体(文件)分离,用户随时带着文件走
- 为什么审批制而不是 Agent 直写? —— 把 human-in-the-loop 从技术概念做成产品卖点;信任感是个人知识库的生死线
- 为什么链接员要过滤幻觉? —— LLM 会引用不存在的笔记;所有 Agent 产出在落盘前都被约束(过滤/审查/审批)三道闸
MIT

