Tavo Card Toolkit
持续开发一套面向 Tavo / SillyTavern 角色卡的本地工具链:编辑器负责结构化查看、校验与可恢复保存,数据库记忆模块负责把剧情事实沉淀为可检索、可更新的长期状态。
TavoSillyTavernStructured MemoryJavaScript
Current verification
22/22 自动化测试通过
为什么做这个项目
长篇角色扮演项目的问题不只是生成文本,而是设定、世界书、插件和记忆状态会持续变化。需要一个能看清结构、保护原文件、并把模型输出约束在明确边界里的工具链。
我解决了什么问题
- 角色卡、世界书与插件结构复杂,直接改文件容易破坏引用关系。
- 长期剧情事实会重复、冲突或被旧值覆盖,需要稳定的业务主键。
- 模型生成不能被允许自动删表、增加未知列或泄露独立 API 密钥。
我的实现方式
使用的 AI
GPTClaudeDeepSeek
使用的工具
TavoSillyTavernJavaScriptNode.js
工作流程
- 01读取现有卡片与插件结构,先做校验和差异预览。
- 02保存时限制工作区路径,显式使用 UTF-8,并创建可恢复快照。
- 03用业务主键增量合并角色、事件和状态,避免重复堆积。
- 04在生成前只注入相关记忆,固定闭合标记并限制字符预算。
遇到的问题
模型可能把缺失字段误判为删除指令,覆盖已有资料。
解决:采用按业务主键 upsert 的增量合并,禁止模型自动删表和写入未知列。
一次重建中途失败时,半成品记忆会污染当前聊天。
解决:全量重建采用全部成功后再提交的方式,任一批失败就保留原记忆。
项目结果
公开版本包含角色卡编辑器和结构化数据库记忆模块;本次重新运行 22 项测试全部通过,覆盖路径保护、UTF-8 保存、快照恢复、记忆去重、增量合并与注入边界。
下一步
- 继续补齐真实角色卡的导入与回读验证。
- 把更多运行时约束收敛为可执行测试。