外部来源.md 6.1 KB

接入外部来源

公众号、IMA 知识库、飞书 wiki、网页……这些东西不能直接「进」知识库。 必须先落成本地文件,再走 kb-sync。


一条不能破的规则

00-原材料/ 是唯一输入区。任何内容进入系统,都必须先变成一个文件躺在里面。

原因不是洁癖,是回滚机制:页面的 sources: 字段记录的是原材料相对路径。内容如果只存在于某个链接或某次对话里,将来要删它、要查"这句话哪来的",都没有抓手。

所以外部来源的处理只有两步:

抓取 → 落盘成文件 → 剩下的和直接丢文件完全一样

落盘规范

放哪

内容类型 位置
不确定归类的、刚抓下来的 00-原材料/_inbox/
行业文章、报告解读 00-原材料/01-行业资料/
客户相关(含客户公众号、客户案例) 00-原材料/02-客户与需求/
方法论、案例、素材 00-原材料/03-课程素材/
同行课程、竞品内容 00-原材料/04-竞品与参考/

拿不准就丢 _inbox/。下次同步时模型会建议归位。

文件名

YYYY-MM-DD-<来源类型>-<标题截断>.md

2026-11-04-gzh-企业AI培训的三个误区.md
2026-11-04-ima-客户决策链笔记.md
2026-11-04-web-某咨询公司行业报告.md

日期在前,天然按时间排序。

文件头必须有来源块

这是外部来源和直接丢文件唯一的不同。

<!-- 来源: 微信公众号「某某研究院」 -->
<!-- 原链接: https://mp.weixin.qq.com/s/xxxxxxxx -->
<!-- 作者: 张三 -->
<!-- 抓取时间: 2026-11-04 20:00 -->
<!-- 存档: https://web.archive.org/web/2026.../https://mp.weixin.qq.com/s/xxx -->
<!-- 证据提示: 公众号二手解读,默认 C 级 -->

# 企业 AI 培训的三个误区

正文……

用 HTML 注释,理由是:Markdown 渲染时看不见,不干扰阅读;但在源码里就在最上面,模型和人都能找到。

缺了这块会怎样:三个月后你想引用这句话,只剩一个标题,不知道谁说的、什么时候说的、原文还在不在。公众号文章被删是常态。

一键生成

不用手写这些注释:

python 90-工具/kb.py stash \
  --title "企业AI培训的三个误区" \
  --url "https://mp.weixin.qq.com/s/xxxx" \
  --type gzh \
  --author "某某研究院" \
  --body-file temp.md

它会生成规范文件名 + 来源块,落到 _inbox/。也可以从标准输入喂正文。


四种来源的具体做法

公众号

用现成的 gzh-fetch 技能抓正文,然后 kb.py stash 落盘。

三件事必须做:

  1. 存全文,不存摘要。 摘要等于替未来的自己做了删减决定。
  2. 做存档链接。 https://web.archive.org/save/<原链接>,公众号删文是常态。存档失败就在来源块写「存档失败」。
  3. 记作者和号名。 同一篇文章,原创号和转载号的证据价值差一个等级。

IMA 知识库

⚠️ IMA 里绝大多数内容是二手加工品,默认 C 级。

IMA 存的是"某人对某份资料的理解"。它不是原始资料,是别人嚼过的。做课直接引用风险很高 —— 你不知道他在哪一步理解偏了。

处理方式:

IMA 里是什么 落盘后定几级 说明
某人写的笔记 / 总结 / 思考 C 除非笔记里给了原始出处,可以升 B
一份原始 PDF / 报告 按原文件定 A 或 B 最好直接拿原件,别用 IMA 里的转述版
会议纪要、访谈录音转写 B 一手记录,但没有交叉验证
教程 / 操作手册 B 有明确操作步骤,可复现

如果 IMA 笔记里有原始链接,务必把链接一起落进来源块。 那条链接是它从 C 升到 B 的唯一通道。

网页 / 其他网站

先转 Markdown 再落盘。带导航栏、广告、推荐位的 HTML 直接扔进库,会让 check-content.py 满屏报警,也会浪费模型的上下文。

飞书 wiki / 语雀 / Notion

导出 Markdown 后落盘。导出时注意:

  • 表格常常在导出时变成图片,需要人工补回文字
  • 附件链接是内网地址,离开内网就失效 —— 重要附件要单独下载

三个坑

坑一:同一内容从两个渠道各抓一次

从公众号抓了,又从 IMA 复制了同一篇。两处路径不同、内容相同,kb.py scan 会把它们当成两个独立的新文件(因为不满足"一个删除配一个新增"的移动判定条件)。

结果是同一份内容被整理两次,派生两套页面,将来删一个另一个还在。

对策:落盘前先搜一下。

grep -rl "文章标题里的关键词" 00-原材料/

坑二:批量抓 50 篇直接扔进去

kb-sync 的规则是:超过 20 个新文件,先做 3 个给你看格式,确认后再铺开。

外部批量抓取最需要这条。先挑 3 篇不同类型的(一篇深度长文、一篇短资讯、一篇案例),跑通格式再批量。

坑三:把"二手解读"当"一手数据"

公众号说「据某机构测算,市场规模 380 亿」。

这不是 A 级。这是 C 级的转述 —— 你没见过那份测算,连它叫什么都不知道。

正确做法:顺着文章里的线索去找原始报告。找到了就是 B 或 A,找不到就老老实实标 C,讲课时说"有文章提到"。

这条最容易犯,因为转述比原文好读。但客户问「哪家机构测算的」时,你答不上来,整门课的可信度就打折。


落盘之后的流程

和直接丢文件一模一样,不需要任何特殊处理:

kb.py stash → kb.py scan 看到 NEW → kb-sync 整理 → kb.py mark 登记

唯一的区别在写 source 页时:来源块里的信息要抄进页面。

## 这是什么

微信公众号「某某研究院」2026 年 11 月的文章,作者张三。原文链接见来源块,已做网页存档。

## 核心内容
……

这样将来读页面的人,不用翻原材料就知道这是谁说的、什么时候说的、还能不能找到原文。