从结构化资料到人物叙述
经过前面的网络研究与原典核验,我已经整理出一批两晋十六国人物的生平、事件、关系与历史评价,并保留了相应的史料依据。
不过,这些资料仍然是一条条结构化记录,方便检索和处理,却不适合连续阅读。同一件事可能分散在不同类别里,人物关系和历史评价也需要来回查找,才能形成完整的认识。
因此,这一阶段希望借助 AI,把这些材料重新组织成连贯、可读的人物资料,同时保留原有的事实细节、史料分歧与出处。
难点在于,文字需要重新组织,但不能因此改变原始材料的含义。
初步试写与叙述问题
最初的方案是由脚本整理、拆分记录,再让 LLM 规划章节、组织事件并撰写正文。生平按照时间与事件展开,人物画像则围绕身份、社会关系、思想文化和历史评价组织。每个自然段仍保留对应的原始记录编号,以便回查。
我首先用刘渊的资料进行试写。
初稿顺利生成,原始记录也全部得到覆盖,但实际阅读时仍有不少问题。正文反复出现“现有核验”“未找到直接依据”等措辞,更像一份核验报告。同一事件在不同章节中,有时还会出现不一致的判断。
问题的一部分来自原始数据中的核验状态。一条记录可能只有时间或个别细节缺乏证据,事件本身却已有其他材料支持。如果直接按照整条记录的状态写作,就容易把已经能够确认的事情也写得含糊不清。
此外,历史记载本身就可能存在分歧。真正需要处理的是写作产生的矛盾,而不是为了让文章前后一致,就把史料原有的异说消除掉。
因此我开始调整叙述规则,让模型结合相关记录判断事实的支持范围,并在正文中自然交代不同来源的说法。详细的证据和编号则单独保留,不必全部挤进人物介绍里。
自动验收也可能引入错误
为了处理分章节写作中的遗漏、重复和不一致,我又加入了一次全文验收,让模型检查成稿并修正问题。
但实际测试发现,验收有时反而会把正确的内容改坏。
例如,刘渊资料中原本明确写着“《资治通鉴》另载”,验收模型却因为精简后的来源清单没有这本书,将其改成了含糊的“另有记载”。
类似的问题还包括遗漏原本保留的人物、行动目的或因果关系。即使原始记录的编号仍然出现在段落映射中,也不能保证记录中的重要信息都被写进了正文。
这让我意识到,记录覆盖完整,不等于内容完整;多增加一次模型审查,也不意味着结果一定更好。
于是,我开始保留验收前后的版本,限制模型的修改范围,方便比较每次修订究竟解决了什么,又是否引入了新问题。
从自动验收到独立复核
经过几轮调整,我不再要求自动验收必须完全可靠,才允许批量生成继续推进,而是先完成整批资料的写作,再针对每个人物开展独立复核。
复核通过新的对话或子代理进行,对照原始记录、核验理由与生成正文,检查事实遗漏、人物关系、来源归属和不确定性表达等问题。
独立审查确实发现了不少此前遗漏的错误,但审查意见本身也未必正确。有些忽略了其他记录提供的支持,有些过度解读“未找到证据”,还有些只是文字风格上的偏好。
因此,我又将审查问题分成三类:确实需要修正、问题存在但可以保留,以及误报。先判断意见是否成立,再决定修改什么,尽量避免不必要的全文重写。
与此同时,脚本逐渐承担起并发调度、缓存、失败重试、版本管理与溯源检查等工作,LLM 负责文本组织和语义审查,而我主要负责确定质量标准、判断关键问题与控制修订范围。
自动化并没有消除人工判断,但可以让人的精力更集中于那些真正需要判断的问题。
总结
经过批量写作、自动验收、独立复核和必要修订,这一阶段最终完成了30位历史人物的可读资料,并建立了正文段落与原始记录之间的溯源关系。
这些人物资料已经可以连续阅读,也能够在遇到疑问时回查相应的历史依据。不过,部分长段落、重复表达和史料解释仍有完善空间,最终成果也并非完全由自动流程一次生成。
收尾时还发生了一件值得记住的事:系统一度根据文件检查和复核报告的结论,认为资料已经准备就绪。但进一步追问才发现,报告中的具体判断还没有得到充分审核。补做这一步后,才有了更加明确的交付依据。
回顾这一阶段,我最大的认识是:从结构化数据到可读文字,并不只是语言润色,还涉及事实取舍、信息重组与证据判断。
格式检查、自动审查和独立复核各有作用,却不能互相替代。与其不断增加检查步骤,不如明确每一步究竟能验证什么,并根据实际问题开展有针对性的修订。
至此,人物资料基本具备了进入下一阶段的条件。
接下来,终于,我将尝试把这些人物的经历、关系和历史事件转化为戏剧场景,并逐步探索多阵营群像的叙事结构。
史料整理关心的是事情如何发生、有哪些依据;剧本创作则还需要思考,人物为什么作出选择,以及这些选择如何影响彼此的命运。
这会是一个更加漫长的探索和体验。