← 日志列表 / All journal entries

两晋十六国史料整理手记 04

从史料条目到人物叙述

从结构化资料到人物叙述

经过前面的网络研究与原典核验,我已经整理出一批两晋十六国人物的生平、事件、关系与历史评价,并保留了相应的史料依据。

不过,这些资料仍然是一条条结构化记录,方便检索和处理,却不适合连续阅读。同一件事可能分散在不同类别里,人物关系和历史评价也需要来回查找,才能形成完整的认识。

因此,这一阶段希望借助 AI,把这些材料重新组织成连贯、可读的人物资料,同时保留原有的事实细节、史料分歧与出处。

难点在于,文字需要重新组织,但不能因此改变原始材料的含义。


初步试写与叙述问题

最初的方案是由脚本整理、拆分记录,再让 LLM 规划章节、组织事件并撰写正文。生平按照时间与事件展开,人物画像则围绕身份、社会关系、思想文化和历史评价组织。每个自然段仍保留对应的原始记录编号,以便回查。

我首先用刘渊的资料进行试写。

初稿顺利生成,原始记录也全部得到覆盖,但实际阅读时仍有不少问题。正文反复出现“现有核验”“未找到直接依据”等措辞,更像一份核验报告。同一事件在不同章节中,有时还会出现不一致的判断。

问题的一部分来自原始数据中的核验状态。一条记录可能只有时间或个别细节缺乏证据,事件本身却已有其他材料支持。如果直接按照整条记录的状态写作,就容易把已经能够确认的事情也写得含糊不清。

此外,历史记载本身就可能存在分歧。真正需要处理的是写作产生的矛盾,而不是为了让文章前后一致,就把史料原有的异说消除掉。

因此我开始调整叙述规则,让模型结合相关记录判断事实的支持范围,并在正文中自然交代不同来源的说法。详细的证据和编号则单独保留,不必全部挤进人物介绍里。


自动验收也可能引入错误

为了处理分章节写作中的遗漏、重复和不一致,我又加入了一次全文验收,让模型检查成稿并修正问题。

但实际测试发现,验收有时反而会把正确的内容改坏。

例如,刘渊资料中原本明确写着“《资治通鉴》另载”,验收模型却因为精简后的来源清单没有这本书,将其改成了含糊的“另有记载”。

类似的问题还包括遗漏原本保留的人物、行动目的或因果关系。即使原始记录的编号仍然出现在段落映射中,也不能保证记录中的重要信息都被写进了正文。

这让我意识到,记录覆盖完整,不等于内容完整;多增加一次模型审查,也不意味着结果一定更好。

于是,我开始保留验收前后的版本,限制模型的修改范围,方便比较每次修订究竟解决了什么,又是否引入了新问题。


从自动验收到独立复核

经过几轮调整,我不再要求自动验收必须完全可靠,才允许批量生成继续推进,而是先完成整批资料的写作,再针对每个人物开展独立复核。

复核通过新的对话或子代理进行,对照原始记录、核验理由与生成正文,检查事实遗漏、人物关系、来源归属和不确定性表达等问题。

独立审查确实发现了不少此前遗漏的错误,但审查意见本身也未必正确。有些忽略了其他记录提供的支持,有些过度解读“未找到证据”,还有些只是文字风格上的偏好。

因此,我又将审查问题分成三类:确实需要修正、问题存在但可以保留,以及误报。先判断意见是否成立,再决定修改什么,尽量避免不必要的全文重写。

与此同时,脚本逐渐承担起并发调度、缓存、失败重试、版本管理与溯源检查等工作,LLM 负责文本组织和语义审查,而我主要负责确定质量标准、判断关键问题与控制修订范围。

自动化并没有消除人工判断,但可以让人的精力更集中于那些真正需要判断的问题。


总结

经过批量写作、自动验收、独立复核和必要修订,这一阶段最终完成了30位历史人物的可读资料,并建立了正文段落与原始记录之间的溯源关系。

这些人物资料已经可以连续阅读,也能够在遇到疑问时回查相应的历史依据。不过,部分长段落、重复表达和史料解释仍有完善空间,最终成果也并非完全由自动流程一次生成。

收尾时还发生了一件值得记住的事:系统一度根据文件检查和复核报告的结论,认为资料已经准备就绪。但进一步追问才发现,报告中的具体判断还没有得到充分审核。补做这一步后,才有了更加明确的交付依据。

回顾这一阶段,我最大的认识是:从结构化数据到可读文字,并不只是语言润色,还涉及事实取舍、信息重组与证据判断。

格式检查、自动审查和独立复核各有作用,却不能互相替代。与其不断增加检查步骤,不如明确每一步究竟能验证什么,并根据实际问题开展有针对性的修订。

至此,人物资料基本具备了进入下一阶段的条件。


接下来,终于,我将尝试把这些人物的经历、关系和历史事件转化为戏剧场景,并逐步探索多阵营群像的叙事结构。

史料整理关心的是事情如何发生、有哪些依据;剧本创作则还需要思考,人物为什么作出选择,以及这些选择如何影响彼此的命运。


这会是一个更加漫长的探索和体验。