メッセージングアプリでの思考表示
Telegram、LINE、Slack などのメッセージングアプリで AI 社員と話す人は、社員が考えていることがわかります。dashboard アカウントに紐付いた同僚は、伏せ字化した短い思考の要約も読めます。外部の顧客にはタイマーだけ、グループチャットも既定ではタイマーだけ、Web サイトの訪問者には何も表示されません。
要約は dashboard のチャットと同じテキストです(思考の表示と思考はどこから来るかを参照)。まず伏せ字化し(匿名化トークンは〔已遮蔽·カテゴリ〕に置き換え、元に戻すことはない。鍵のような文字列は丸ごと置き換え、CONTRACT と出力ガードのチェックを実行)、そのうえで切り詰めます。保存はしません。
アプリごとの表示
Section titled “アプリごとの表示”| アプリ | 考え中 | 回答の準備ができたとき |
|---|---|---|
| Telegram、Discord、Slack、Microsoft Teams | ステータスメッセージ「💭 考え中… 12 秒」を 1 件。更新は最短 3 秒ごと。要約を読める送信者には最新の 1 行も表示 | 同じメッセージを「💭 12 秒考えました」と要約に書き換え:Telegram は展開できる引用、Discord はスポイラー(メンションは無効)、Slack は小さな context ブロック、Teams は先頭 300 文字。回答はその下に続く |
| LINE(1 対 1) | LINE の読み込みアニメーション(50 秒ごとに延長) | 同じ返信の中で、回答の前に小さなメッセージ「💭 12 秒考えました」(+要約の先頭 300 文字)を 1 件追加。回答だけで返信の上限 5 件を使い切る場合や、返信トークンの期限切れでプッシュ送信になる場合は追加しない。思考表示のためにプッシュが増えることはない |
| LINE(グループ) | なし(LINE のグループには読み込みアニメーションがない) | 同じ追加メッセージ。既定ではタイマーのみ |
| WhatsApp、Feishu、WeCom、DingTalk、Google Chat | 従来の「受け付けました」ステータス行 | 回答の末尾、「Powered by DuDuClaw」の上に「💭 12 秒考えました」(+要約の先頭 300 文字)を 1 行 |
「12 秒」はメッセージが届いてから回答の準備ができるまでの時間で、dashboard のチャットと同じ数字です。モデルが思考をまったく報告しなかった場合は何も表示しません。編集できるアプリでは、思考のステータスを表示している間は「受け付けました」の行を送りません。最終的に返信が空だった場合やターンが中断された場合はステータスメッセージを削除します。アプリがステータスメッセージを 3 回続けて拒否した場合(または受け付けたのに ID を返さない場合)、そのターンではもう送りません。Teams にはプレーンテキストで送り、他のアプリの回答末尾の 1 行ではメンションとリンクの記法を無効化するため、要約が誰かをメンションしたりリンクになったりすることはありません。表記は [general] default_language(繁体字中国語、英語、日本語)に従います。
誰に何が見えるか
Section titled “誰に何が見えるか”config.toml:
[thinking]channel_audience = "internal" # internal | all | nonechannel_group_display = "status" # summary | status | off| 設定 | 1 対 1 チャット | グループチャット |
|---|---|---|
internal(既定)、送信者が管理者、または回答する社員に紐付いている |
タイマー+要約 | タイマー(channel_group_display) |
internal、それ以外の送信者 |
タイマー | タイマー |
all |
タイマー+要約 | タイマー(channel_group_display) |
none |
なし | なし |
- 「紐付いている」とは、送信者のチャネル ID が検証済みで有効な dashboard アカウントに属し、そのアカウントが管理者であるか、回答するその社員に紐付いていることです(dashboard がその社員に使うのと同じ紐付け)。他の社員にだけ紐付いたアカウントにはタイマーだけが表示されます。紐付けはメッセージごとにユーザーデータベースから読み直すため、解除するとすぐに反映されます。照会に失敗した場合は紐付いていないものとして扱います。
channel_group_displayは、誰が発言してもグループチャットで表示される上限です。summaryにすると、紐付いた同僚はグループでも要約を読めます。[thinking] displayと回答する社員の[model] show_thinkingのうち厳しい方がすべての上限です。statusはタイマーのみ、offは何も表示しません。@で呼ばれた社員には、その社員自身の設定が適用されます。config.tomlが読めない、解析できない、または不明な値の場合は何も表示しません。- Web サイトの訪問者(Odoo の Web サイトライブチャット、WebChat ウィジェット)には、設定にかかわらず思考は表示されません。
要約を読める送信者のときだけ、runtime が思考テキストを要求します(思考はどこから来るかを参照)。それ以外の送信者ではリクエストは以前とまったく同じです。思考を表示してもターンの費用は変わりません。
実アカウントでは未検証:各クライアントでの Telegram の展開できる引用と Discord のスポイラーの表示、スレッド内の Slack の context ブロック、実機での LINE の追加メッセージ、Teams の編集。メッセージの内容は各 API のローカルな代替サーバーで確認しました。