对话记录转换
把消息数组变成好读的对话记录,再把对话记录变回 JSON。
日志里装着你的用户敲下的内容。一切都在浏览器里转换,绝不上传。
重新拼出一份流式响应
关于 对话记录转换
消息数组好生成、不好读;对话记录正相反。两者之间的来回时刻在发生——把日志贴进缺陷报告、把一段不错的往来抽出来做测试夹具——而手工来回正是有意思的部分丢失的地方。content 不总是字符串:工具调用、图片、文档和思考块都是内容块,把它们压成文本会不留痕迹地丢掉。这里会用方括号显示并计数,让你看清一份压平的日志漏掉了什么;需要反方向时,也能把对话记录读回 JSON。
功能特性
- 双向:消息转记录,以及反过来
- 工具调用、图片和文档会显示出来而不是丢掉
- 统计纯文本记录会丢掉的非文本块数量
- 既接受裸数组,也接受带 messages、conversation 或 history 键的对象
- 三种记录样式,从 Markdown 到纯文本
- 系统消息可选
- "用户:"和"**用户**"都能识别为一轮的开头
- 按角色统计消息数
如何使用 对话记录转换
- 贴上消息 JSON
- 选择记录样式
- 决定是否保留系统消息和工具调用
- 复制记录——或者切换方向转回 JSON
示例
输入
[{"type": "tool_use", "name": "lookup_order"}]
输出
[tool_use: lookup_order]
纯文本记录在这里什么都不会显示。
常见错误与故障排除
- 记录里少了某条消息的一部分。 — 那部分不是文本。打开工具调用即可看到非文本块,无论如何它们都被计入了汇总。
- 找不到消息数组。 — 裸数组可以,带 messages、conversation、history、turns 或 chat 键的对象也可以。其他形状需要先把数组取出来。
- 把记录读回去时角色丢了。 — 轮次靠"用户:"或"**助手**"这样的行识别。没有角色标记的记录没有可切分的依据。
- 来回一趟拿不回原文。 — 拿回来的是文本。工具调用和图片无法从方括号摘要里还原——对话记录本质上是有损的,所以才显示计数。
常见问题
- 为什么 content 是块而不是字符串?
- 因为一轮里可能不止有文本:工具调用、图片、文档、思考块。字符串只是最简单的情形,而"总当它是字符串"的代码,正是工具调用从日志里消失的原因。
- 该用哪种记录样式?
- 要放进文档或工单的用 Markdown。可能还要用工具读回去的用带标签的样式,它来回都很干净。只想要文字就用纯文本。
- 任何地方的日志都能贴吗?
- 只要它是 JSON 的消息数组就可以。常见的外层键都能识别,不常见的角色会原样保留而不强行转换。
- 来回是无损的吗?
- 文本是无损的,完全一致。非文本块不是:它们是为阅读而做的摘要,不是为还原而保留的——这是任何对话记录都逃不掉的诚实边界。
- 块的计数有什么用?
- 它告诉你这份记录没有显示多少东西。一段有二十次工具调用的对话,在你知道它们存在之后读起来会很不一样。
相关工具
更多AI 与智能体工具
查看全部AI 与智能体工具 · 全部工具