当 AI 读完整本《史记》:shiji-kb 知识图谱项目解析
最近在 GitHub 上发现了一个令人惊叹的项目:shiji-kb(史记知识库)。作者鲍捷用 AI Agent 将《史记》全部 130 篇、57.7 万字转化为一个可交互、可探索的结构化知识图谱。截至目前,项目已获得 1,000+ Star,且仍在活跃更新中。
这不是简单的文本数字化,而是一次完整的知识工程实践。项目的核心成果包括:17,571 个规范实体、84,502 次标注、3,198 个历史事件(98.7% 标注了公元纪年)、7,637 条事件关系。更重要的是,它的方法论本身就是一项创新。
九步管线:从原始文本到知识图谱
项目设计了一条 Agent 驱动的九步管线:
校勘 → 结构分析 → 实体构建
→ [事件 / 关系 / 本体 并行]
→ 逻辑推理 → 知识库管驭 → 应用构造
校勘先行是铁律。底本文字有误,后续一切都建立在错误基础上。项目对多版本进行比对,生成可靠的定本,然后才进入结构分析和标注环节。
实体标注采用自定义的 Token 标记体系,23 类实体各有专属符号:
〖@黄帝〗者,〖@少典〗之子,姓〖&公孙〗,名曰〖@轩辕〗。
〖@轩辕〗乃修德振兵,以与〖@炎帝〗⟦◈战⟧於〖=阪泉之野〗。
@ 标人名,= 标地名,& 标氏族,◈ 标军事动词。这套符号系统经过 v1.0 到 v2.8 的 迭代演化,兼顾了人类可读性和机器可解析性。
SKILL 驱动:不写代码的知识工程
这是项目最令人意外的设计决策:整个管线没有一行传统程序代码。
每一步对应一份 SKILL 文档,用结构化自然语言写清楚输入、处理逻辑、输出和验证标准。AI 读 SKILL,执行 SKILL,产出结果。项目共有 14 个元技能和 77 个管线技能,合计 863 页 PDF 文档。
为什么选择这种方式?四个理由:
- 灵活性。发现新的错误模式时,直接写入 SKILL 文档,所有后续章节自动获益,不需要修改代码逻辑。
- 可读性。史学研究者能直接阅读和验证方法论。26 条错误模式、12 条推理逻辑用自然语言表达,比正则表达式清晰得多。
- 普适性。同一套 SKILL 架构可以直接迁移到《汉书》和《资治通鉴》,不需要重新开发。
- 可演进性。系统从专著中学到方法,提炼成 SKILL,用 SKILL 分析新案例,发现新方法,再更新 SKILL。这是一个知识自举的过程。
14 个元技能中有几个特别值得关注:
- M00「好东西都是总结出来的」:OTF(边做边总结,模式重复 3 次就立即提炼成规则)+ JIT(最小可行版本快速交付)+ Bootstrap(知识自举)。
- M01「反思」:多轮 Agent 自动化审查的通用方法论,按章、按类型、全局三个维度进行。
- M04「柳叶刀方法」:拒绝端到端黑箱,精细分解每个子问题,"能用规则绝不用 LLM"。
Agentic Ontology:AI 时代的知识工程新范式
项目提出了「Agentic Ontology」概念,直接对标斯坦福大学诺伊和麦吉尼斯(Noy & McGuinness)2001 年的经典论文《Ontology Development 101》。
传统知识工程的流程是:专家在 Protégé 中从空白开始,自上而下设计本体,规模通常是数十个类、数百个实例,迭代一轮需要数周。
Agentic Ontology 反过来:AI 从原始文本中提取结构,自下而上涌现,规模达到数千个类、数万个实例,迭代一轮只需数小时。核心瓶颈从"设计"转移到了"反思与进化"。
本体不再是专家预先设计的蓝图,而是从数据中生长出来、由人类修剪和校准的有机结构。
以人物分类本体为例,项目从文本中提取出 1,821 个人物实例,自动归入 130 个类别(王室、臣、策士、诸子百家、社会人物、方术、外邦、虚构人物等),以 OWL/RDF Turtle 格式存储。
反思机制:质量保证的核心
单次 AI 标注的准确率只有 70% 至 90%。项目通过多轮 Agent 反思将错误率收敛到 3% 以下。
事件年代审查提供了一组漂亮的实证数据:
| 轮次 | 修正数 | 涉及章节 |
|---|---|---|
| 第 1 轮 | 1,010 | 118/130 |
| 第 2 轮 | 431 | 105/130 |
| 第 3 轮 | 465 | 70/130 |
| 第 4 轮 | 167 | 68/130 |
| 第 5 轮 | 46 | 28/130 |
5 轮反思,每轮修正数稳步递减,涉及章节范围也逐步收窄。总耗时 5 天,成本约 200 元。如果换成人工从零标注 57 万字,估计需要 6 至 12 个月。
涌现洞见:知识图谱的独特价值
这是项目最让人兴奋的部分。当 130 篇、57.7 万字被结构化之后,一些人类线性阅读难以发现的跨章节模式自然浮现了。
征服与治理倒转:打天下的方法(暴力、强制)恰恰是治天下的障碍。这个模式在《史记》中反复出现,但分散在不同篇章中,线性阅读时容易忽略。
边缘优势:成功王朝一致从边缘地区起源。秦从关中,汉从丰沛,都是当时的边缘地带。知识图谱让这个空间模式一目了然。
宽恕悖论:对下属的宽恕创造忠诚("以恩德换命"),对敌国的宽恕制造灾难(让敌人恢复元气)。同一个行为在不同对象上产生截然相反的效果。
飞鸟尽良弓藏:最有用的人在成功后变成最危险的威胁。韩信、范蠡的模式在结构化数据中清晰可见。
还有一些基于数据的具体发现。比如,通过财政计算揭示了长平之战赵王换将的真正动因:廉颇的"坚守"策略实际上在拖垮赵国财政(连军粮都需要平原君个人补贴),赵孝成王换赵括并非仅仅"中了反间计",而是在财政即将崩溃时选择赌速决。
已实现的应用
史记地铁图
把 130 篇映射为 130 条地铁线路,3,197 个历史事件映射为站点,跨章节的同一事件映射为换乘站。纯前端实现(SVG + Canvas),支持缩放、拖拽、搜索。参考上海地铁图的视觉风格。
太史公怎么知道
司马迁是通过什么渠道得知两千年前的事件细节的?项目整合了李开元四部曲中的 30 多种史源溯源方法,并新增了 8 种方法。12 个深度案例合计约 10.7 万字。
其中沙丘之谋的四层传播链分析令人印象深刻:密谋三方知情 → 子婴诛赵高后审讯党羽 → 秦宫遗民降汉流散口述 → 司马迁汇总记录。时间差仅 65 年,2 至 3 代口述传承完全可行。
矛盾分析
跨章节矛盾检测。项羽本纪与高祖本纪中,东城斩首数字相差 160 至 800 倍;晋世家与赵世家中,下宫之难日期相差 14 年。
成本与可复制性
整个项目的成本令人意外地低:
- Token 消耗:约 55 亿
- 人机协作时间:约 120 小时
- 每 10 万字处理成本:优化后可降至百元级别
按此效率,项目已经规划了扩展路线:汉书(74 万字)、资治通鉴(300 万字)、二十六史(约 4,000 万字)。SKILL 文档的普适性设计使得迁移成本大幅降低。
思考
shiji-kb 让我看到了知识工程的一种新可能。
传统路径是:设计本体 → 开发标注工具 → 组织团队标注 → 质检 → 入库。这个流程重、慢、贵,通常需要大团队和大预算。
shiji-kb 的路径是:写 SKILL 文档 → AI Agent 执行 → 多轮反思收敛 → 本体从数据中涌现。一个人 + AI Agent,120 小时完成 57.7 万字的全量知识图谱构建。
这不是说人类专家不再重要。恰恰相反,鲍捷在项目中的角色是"修剪者"和"校准者"。AI 生成的初始结果充满错误,但人类定义反思规则、审查涌现的本体、判断推理的合理性。人类从"搬运工"变成了"园丁"。
对于数字人文、古籍数字化这些领域,这个项目提供了一个可操作的范式。SKILL 文档的设计使得领域专家(历史学者、文献学者)可以直接参与知识工程,不需要懂编程。这可能是比技术本身更重要的贡献。
项目地址:https://github.com/baojie/shiji-kb
在线阅读:https://baojie.github.io/shiji-kb/