现状
VoiceAnalyzer::fingerprints_ 是 std::map<std::string, VoiceFingerprint>,进程重启后全部丢失,需从对话轮次重新计算。
当前取舍
- 算法是确定性启发式(不用 LLM),重新计算成本极低(10 句即可生成)
- 持久化反而引入"存储指纹 vs 实际对话不同步"的一致性问题
update() 每次覆盖旧指纹,持久化没有增量价值
- 定位是即时分析工具,不是长期存储
升级触发条件
如果需要跨 session 保留指纹历史趋势、或者在大型世界中减少重复计算开销,可以添加 JSON 文件持久化(路径:worlds/{world_id}/voice_fingerprints/{agent_id}.json)。
现状
VoiceAnalyzer::fingerprints_是std::map<std::string, VoiceFingerprint>,进程重启后全部丢失,需从对话轮次重新计算。当前取舍
update()每次覆盖旧指纹,持久化没有增量价值升级触发条件
如果需要跨 session 保留指纹历史趋势、或者在大型世界中减少重复计算开销,可以添加 JSON 文件持久化(路径:
worlds/{world_id}/voice_fingerprints/{agent_id}.json)。