标准答案

  1. 会话保存租户、所有者、状态、标题、摘要版本和时间;消息保存角色、内容引用、父消息或分支、版本和可见性;工具事件单独保存。
  2. 模型调用记录保存任务、模型、供应商、Prompt 版本、参数摘要、输入输出 Token、延迟、结束原因、错误和请求 ID,并按敏感策略保留原文或摘要。
  3. 用量记录以不可重复的调用 ID 或账单事件为幂等键,区分估算、供应商最终 usage 和计费状态,避免重试或流式事件重复计费。

题目解析

消息与模型调用不是一对一:一次用户消息可能有多次重试或重新生成,一次 Agent 任务也可能有多个模型调用。使用 message version 和 invocation ID 关联。

会话摘要是派生数据,应该能从消息或事件重新生成;不要让摘要成为唯一事实。

个人信息和 Prompt 可能包含敏感数据,审计表、日志、数据仓库和备份都要纳入保留与删除设计。

常见误区

  • 把重试结果覆盖到同一 assistant 文本,无法区分版本和计费。
  • 把 Token 估算当成最终账单,不保存供应商 usage。
  • 模型调用记录中无租户和请求关联,无法做审计或限额。

作者信息