会話ログ変換
メッセージ配列を読みやすい会話ログに、会話ログを 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・エージェントのツールをすべて見る · すべてのツール