コンテンツにスキップ

思考の表示

ダッシュボードの WebChat でメッセージを送ると、返信欄にすぐ AI スタッフが考え中であることが表示され、回答が届くまでカウンターが進みます。モデルが思考の要約を返した場合は、回答が届いた後に伏せ字処理・短縮済みの内容を開いて読めます。メッセージアプリでは、dashboard アカウントに紐付いた同僚は伏せ字化した要約を、それ以外の人はタイマーだけを見られます(メッセージングアプリでの思考表示参照)。

他の言語:English · 繁體中文

  • 返信を待っている間:アニメーションの球の横に「考え中… 12 秒」。送信ボタンを押した瞬間から数え始めるので、思考を一切報告しないモデル(Grok、Antigravity、Gemini CLI)を含め、どのランタイムでも表示されます。1 分を超えると「考え中… 1 分 5 秒」。モデルがトークン数を報告すると「約 1.2k トークン」が並び、その下の 1 行にモデルが報告した最新の進捗、なければ実行中のツールステップが出ます。
  • 回答が届いた後:その行は回答の上にあるタスクの動きの枠の先頭で「12 秒考えました · 約 1.2k トークン」になります。秒数は送信から回答到着までの実時間で、ライブのカウンターが最後に表示した数字と同じです。同じ会話の以前の回答にも、小さめの同じ行が残ります。
  • 開く:思考の文章が表示された場合だけ開けます。各ブロックには「思考の要約」「思考の原文(機密は伏せ字)」「進捗」のラベルとそのブロックの秒数が付き、途中で切られたブロックの末尾には「(省略あり)」が付きます。
  • 文章がないとき:要約を提供しないモデルは「このモデルは思考の要約を提供していません」と表示し、開く矢印はありません。送信前のチェックで止められた思考は「安全ルールにより一部の思考は表示されません」と表示し、そのブロックで既に画面に出ていた文章は消えます。匿名化がオフのときのオープンモデルの原文の推論は「原文の思考を表示するには匿名化を有効にしてください」と表示します。

画面の文言は「思考の要約」で、推論の全過程とはうたっていません。現在の多くのモデルでは、提供元は要約だけを返すか、何も返しません。

スクリーンリーダーには固定の「考え中…」が 1 回だけ読み上げられます。進む秒数と進捗の行は読み上げ対象から外しているので、毎秒割り込まれることはありません。「視差効果を減らす」がオンのときは球が静止画になりフェードもしませんが、カウンターは進みます。

閲覧者 タイマー トークン 思考の文章
ダッシュボードにサインインした WebChat 利用者 あり あり display = "summary" のときあり
Web サイトのチャットウィジェットの訪問者(公開ウィジェットキー) なし(ゲートウェイは思考フレームを送らない) なし なし
Odoo Web サイトの Live Chat 訪問者 何もなし なし なし
メッセージアプリ(LINE、Telegram、Discord、Slack など) 思考のステータスメッセージ、または「💭 N 秒考えました」の 1 行(メッセージングアプリでの思考表示参照) なし dashboard アカウントに紐付いた送信者のみ。既定では 1 対 1 チャットのみ([thinking] channel_audience)
ACP、内部セッション 最大で状況行「💭 已收到,正在思考(已 N 秒)。」1 行(通知ガバナンス参照) なし 常になし

WebChat のタイマーはブラウザで計測するため、思考の表示をオフにしてもサインイン中の利用者にはタイマーが見えます。

思考の文章はゲートウェイで送信前に伏せ字処理され、ブラウザには頼りません。

  • <REDACT:…> トークンは「〔已遮蔽·カテゴリ〕」に置き換わり、元の値には戻しません(通常の返信は戻しますが、思考の文章は戻しません)。
  • 匿名化がオンのときは、文章に匿名化ルールを適用します(保管庫には書かず、端末上の NER モデルも使いません)。
  • API キーや秘密情報に見える文字列は丸ごと置き換えます。
  • 送信前の返信チェックとスタッフの CONTRACT.toml を文章に適用します。止められた場合、そのブロックとそのターンの以降のブロックはすべて固定の「表示されません」になり、security_audit.jsonl にルール名だけの記録が 1 件残ります。回答自体はそのまま送られます。
  • 1 ブロック 1,500 文字(オープンモデルの原文の推論は 1,200 文字)、1 ターン合計は [thinking] max_chars まで。ストリーミング中のブロックの末尾数文字はブロックが終わるまで送らないので、書きかけの秘密情報が画面に出ることはありません。

思考の文章はどこにも保存されません(会話履歴、実行ログ、コスト集計のいずれにも残りません)。ブラウザは開いているページのメモリにだけ保持します。「実行ログ」ページには 1 ターンにつき秒数とトークン数の 1 行が残ります(例:「8 秒考えました · 約 1.2k トークン」)。

config.toml
[thinking]
display = "summary" # summary | status | off(ゲートウェイ全体の上限)
max_chars = 4000 # 1 ターンの思考の文章の合計(200–20000)
anthropic_display = "summarized" # summarized | updates(ベータ、一部の Claude モデルのみ)
# agents/<id>/agent.toml
[model]
show_thinking = "summary" # summary | status | off。未設定=[thinking] display に従う
  • summary:タイマー、トークン、伏せ字処理済みの思考の文章。
  • status:タイマーとトークンのみ、文章なし。
  • off:ゲートウェイは思考フレームを送りません。WebChat 自身のタイマーは残ります。
  • 2 つのうち厳しい方が適用されます(off < status < summary)。スタッフ側の設定はゲートウェイが許す範囲を狭めることしかできません。
  • 存在するのに読めない・解析できない config.toml、または解釈できない display の値は status(文章なし)として扱います。解釈できない show_thinking の値は警告を出して無視します。
  • どちらのファイルも毎ターン読み直すので、変更は次の返信から有効です。専用のダッシュボード項目はまだないため、「システム設定 → 詳細設定 → 設定ファイルの詳細編集」で編集してください(ダッシュボード設定マップ参照)。

思考を表示しても料金は変わりません。思考のトークンは表示の有無にかかわらず提供元が課金します。ここでモデルの考える量を変える設定は [model] effort だけです。DuDuClaw は表示のために、既定で思考しないモデルの思考をオンにすることはありません。

  • 各ランタイムが思考を報告し始めるのは後続のリリースからです。それまでは WebChat のすべての返信にタイマーが付き、「考えました」の行にはトークン数も開ける内容もありません。
  • assistant_done が thinking: {tokens, blocks, kinds} を持つのは、そのターンで思考フレームが送られた場合だけです。