ArrayKit

对话记录转换

把消息数组变成好读的对话记录,再把对话记录变回 JSON。

对话记录转换

把消息数组变成好读的对话记录,再把对话记录变回 JSON。

日志里装着你的用户敲下的内容。一切都在浏览器里转换,绝不上传。

重新拼出一份流式响应

关于 对话记录转换

消息数组好生成、不好读;对话记录正相反。两者之间的来回时刻在发生——把日志贴进缺陷报告、把一段不错的往来抽出来做测试夹具——而手工来回正是有意思的部分丢失的地方。content 不总是字符串:工具调用、图片、文档和思考块都是内容块,把它们压成文本会不留痕迹地丢掉。这里会用方括号显示并计数,让你看清一份压平的日志漏掉了什么;需要反方向时,也能把对话记录读回 JSON。

功能特性

  • 双向:消息转记录,以及反过来
  • 工具调用、图片和文档会显示出来而不是丢掉
  • 统计纯文本记录会丢掉的非文本块数量
  • 既接受裸数组,也接受带 messages、conversation 或 history 键的对象
  • 三种记录样式,从 Markdown 到纯文本
  • 系统消息可选
  • "用户:"和"**用户**"都能识别为一轮的开头
  • 按角色统计消息数

如何使用 对话记录转换

  1. 贴上消息 JSON
  2. 选择记录样式
  3. 决定是否保留系统消息和工具调用
  4. 复制记录——或者切换方向转回 JSON

示例

输入

[{"type": "tool_use", "name": "lookup_order"}]

输出

[tool_use: lookup_order]

纯文本记录在这里什么都不会显示。

常见错误与故障排除

  • 记录里少了某条消息的一部分。 — 那部分不是文本。打开工具调用即可看到非文本块,无论如何它们都被计入了汇总。
  • 找不到消息数组。 — 裸数组可以,带 messages、conversation、history、turns 或 chat 键的对象也可以。其他形状需要先把数组取出来。
  • 把记录读回去时角色丢了。 — 轮次靠"用户:"或"**助手**"这样的行识别。没有角色标记的记录没有可切分的依据。
  • 来回一趟拿不回原文。 — 拿回来的是文本。工具调用和图片无法从方括号摘要里还原——对话记录本质上是有损的,所以才显示计数。

常见问题

为什么 content 是块而不是字符串?
因为一轮里可能不止有文本:工具调用、图片、文档、思考块。字符串只是最简单的情形,而"总当它是字符串"的代码,正是工具调用从日志里消失的原因。
该用哪种记录样式?
要放进文档或工单的用 Markdown。可能还要用工具读回去的用带标签的样式,它来回都很干净。只想要文字就用纯文本。
任何地方的日志都能贴吗?
只要它是 JSON 的消息数组就可以。常见的外层键都能识别,不常见的角色会原样保留而不强行转换。
来回是无损的吗?
文本是无损的,完全一致。非文本块不是:它们是为阅读而做的摘要,不是为还原而保留的——这是任何对话记录都逃不掉的诚实边界。
块的计数有什么用?
它告诉你这份记录没有显示多少东西。一段有二十次工具调用的对话,在你知道它们存在之后读起来会很不一样。

相关工具

更多AI 与智能体工具

查看全部AI 与智能体工具 · 全部工具