仕組み

回答内のチャート

回答に比較可能な数値のセットが含まれている場合、エージェントは会話の最中に、プロンプトなしでそれを描画します。9つのチャートタイプとそれぞれの使用例、数値があなたの資料に含まれていない場合にチャートの描画を拒否する制限、および派生数値がモデルではなくコードで計算される理由。

```
```
```
 
サポートエージェントに各プランの料金を尋ねると、1つの段落が返ってきます。人に尋ねると、4本の棒グラフが描かれます。エージェントは後者のことを行います:答えに比較可能な数のセットがすでに含まれている場合、尋ねられていなくても、通常の会話の最中にそれらを描画します。
 
このページのすべてのチャートは、訪問者が目にするのと同じコンポーネントによって、モデルが出力する同じ仕様からレンダリングされています。ここにスクリーンショットはありません。
 
## モデルが実際に書き出すもの
 
言葉の隣に、フェンス付きブロックがあります。
 
{"type": "bar", "source": "passage:kb", "title": "Registration fee by market", "unit": "USD",
 "labels": ["Brazil", "Mexico", "Colombia", "Chile", "Peru", "Argentina"],
 "series": [{"name": "standard", "values": [4200, 2800, 1900, 2100, 2450, null]},
            {"name": "expedited", "values": [6300, 4100, 2600, 3050, 3400, null]}]}
 
これは以下のようにレンダリングされます:
 
```chart
{"type": "bar", "source": "passage:kb", "title": "Registration fee by market", "unit": "USD",
 "labels": ["Brazil", "Mexico", "Colombia", "Chile", "Peru", "Argentina"],
 "series": [{"name": "standard", "values": [4200, 2800, 1900, 2100, 2450, null]},
            {"name": "expedited", "values": [6300, 4100, 2600, 3050, 3400, null]}], "cite": 1}
```
 
この例には、重要な役割を果たす要素が3つあります。
 
**`0` ではなく `null`。** アルゼンチンの手数料は資料で公開されていないため、数値が存在しません。そして、ゼロの棒は資料が決して主張しなかった主張になります。ゼロは意味のある値です。「不明」はゼロではなく、空のフィールドは `0` が嘘をつく場所に、それを示しています。
 
**文章はそのまま残ります。** チャートは答えを補完するものであり、決して置き換えるものではありません。Telegram、WhatsApp、スクリーンリーダーには、コンパクトなテーブルとして同じコンテンツが提供されるため、画像のみで答えるエージェントは、チャネルの半分において何にも答えていないことになります。
 
**`source` は必須です。** 出典のないチャートは、引用のない数値と同じであり、隅のバッジはそれがどの種類の資料から来たかを示します。単一の取得されたパッセージに数値が含まれている場合、そのバッジは開くことができる生きた引用です。
 
## 数値はあなたの資料になければならない
 
これは描画よりも重要な部分です。
 
`passage:` チャートが一般的なケースです:数値はナレッジベースから来ており、モデルがそれをコピーします。コピーは信頼できます——3つのモデルが取得されたテキストから価格表を引き出し、同じパッセージに古い価格がディストラクター(注意をそらすもの)として置かれている状態で測定したところ、9件中9件正しく、デコイに惑わされたものは0件でした。
 
算術計算はそうではありません。同じモデル、同じパッセージで、基本料金に過剰使用料率を加えた請求書を計算するよう求められた場合:**12件中12件が不正解**でした。すべての乗算は正しく、すべての数式が間違っていました。
 
したがって、チャートがレンダリングされる前に、決定論的なチェックが実行されます:すべてのラベルと値のペアは、エージェントが*このターン*に実際に取得した資料に含まれていなければなりません。見つけることができないペアがある場合、**ブロック全体がドロップされます**——答えは言葉を保ち、画像を失います。製品の他の場所にある文レベルのグラウンディングマークとは異なり、これは注釈を付けるのではなく拒否します:誤って描かれた棒は、誰かが脚注を読むずっと前に、その主張を完了しています。
 
<Callout tone="warning">
チェックは、書かれたすべての形式の数値——`4,200` と `4200`、`25M` と `25000000`、`2500万` と `25 million`——を比較します。単位は検証せず、1つの文の中で2つのラベルのどちらに数値が属するかを常に識別できるわけではありません。これは正しさの証明ではなく、捏造に対する下限です。
</Callout>
 
## 派生数値は書き出されず、計算される
 
株式、成長率、累積合計は、モデルが間違いやすいものであり、チャートを見る価値があるものです。そのため、モデルはそれらを計算しません。
 
モデルは正確な数値をツールに渡し、望む導出——総数の割合、パーセント変化、累積合計——の名前を付け、プラットフォームが**コードで**シリーズを計算します。結果はサーバー上に留まり、モデルは参照を書き出し、ブロックが送信される前に数値が埋められます。コードが計算し終えたものを誤って入力する機会はありません。
 
チャートはその旨を示しています:このように計算されたシリーズはチャート自体にラベルが付けられます。「あなたの資料からコピーされた」と「あなたのために計算された」は異なる保証であり、読者は自分が何を見ているかを知る権利があります。
 
## 対話できるチャート
 
棒——またはテーブルの行——をクリックすると、エージェントはそのカテゴリに関するフォローアップ質問を受け取ります。訪問者がそれを入力したかのように。チャートは出力から入力へと変わります:データのスライスをどのようになりたいかを明確に表現できない人は、単にそれを指すことができます。
 
すべてのチャートはCSVにエクスポート可能であり、棒 / 横向き / 折れ線 / 面積は同じ文を4つの方法で語ったものに過ぎないため、読者はそれらの間で切り替えることができます。円 / ファネル / レーダー / 散布図は*異なる*文——構成、離脱、形状、相関——であるため、切り替えは提供されません。
 
## 9つのタイプ、およびそれぞれの適切な使用場面
 
モデルが選択できないタイプセットは、1つのタイプしかないのと同じです。これらそれぞれが異なる質問に答え、間違ったものを選ぶのは、描画しないことよりも悪いです:チャートはまだそこにあり、静かに別のことを伝えています。
 
### `bar` — これらのカテゴリはどのように比較されますか?
 
デフォルト。これ以上具体的なものに当てはまらない場合にこれを探します。
 
```chart
{"type":"bar","source":"tool:x","title":"Cases closed by team","unit":"cases",
 "labels":["Intake","Triage","Review","Drafting","Filing","QA","Appeals","Renewals","Archive"],
 "series":[{"name":"closed","values":[128,116,94,88,61,54,37,29,22]}]}
```
 
### `hbar` — 同じ質問、ただしラベルが長い場合
 
国名や製品名のカテゴリ名は垂直の棒の下に収まらなくなり、軸がそれらを45°回転させ始めます。横向きにすると、単に収まります。プラットフォームはカテゴリが12を超えると自動的にこれに切り替えます——**折れ線ではなく**、これらのカテゴリには順序がなく、折れ線はトレンドを捏造するからです。
 
```chart
{"type":"hbar","source":"tool:x","title":"Leads by market",
 "labels":["United Kingdom","Germany","France","Spain","Poland","Netherlands","Italy","Sweden","Portugal","Ireland","Denmark"],
 "series":[{"name":"leads","values":[812,640,455,390,210,180,164,131,98,76,54]}]}
```
 
### `line` — これはどこに向かっていますか?
 
本当に順序があるカテゴリの場合:月、ステージ、バージョン。ギャップは途切れるのではなく接続されます。なぜなら、途切れは1つの欠落した数値ではなく2つの別々のシリーズとして読まれるからです。
 
```chart
{"type":"line","source":"tool:x","title":"Monthly recurring revenue","unit":"k",
 "labels":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],
 "series":[{"name":"new business","values":[12,15,14,19,23,28,31,29,35,41,44,52]},
           {"name":"expansion","values":[3,4,6,5,9,11,10,14,16,15,19,24]}]}
```
 
### `area` — 変化率よりもボリュームが重要な場合、同じトレンド
 
累積された数量が変化率よりも重要である場合に使用します。
 
```chart
{"type":"area","source":"tool:x","title":"Tickets received","stacked":true,
 "labels":["W1","W2","W3","W4","W5","W6","W7","W8","W9","W10","W11","W12"],
 "series":[{"name":"answered by the agent","values":[40,62,58,90,120,138,151,144,166,180,175,198]},
           {"name":"escalated to a person","values":[22,25,21,28,31,27,24,20,18,17,15,12]}]}
```
 
### `stacked` — 部分を持つ比較
 
それ自体のタイプではなく、`bar`、`hbar`、`area` に対する修飾子:依然として比較ですが、各棒が開いてそれが何で構成されているかを示します。
 
```chart
{"type":"bar","source":"tool:x","stacked":true,"title":"Revenue by quarter","unit":"k",
 "labels":["Q1 24","Q2 24","Q3 24","Q4 24","Q1 25","Q2 25","Q3 25","Q4 25"],
 "series":[{"name":"new","values":[30,45,50,62,68,74,81,96]},
           {"name":"renewal","values":[20,25,40,44,52,58,66,71]},
           {"name":"expansion","values":[6,9,11,15,18,21,27,34]}]}
```
 
### `pie` — この全体は何で構成されていますか?
 
部分が本当にそのものを構成する場合のみ。1つのシリーズ、負の数なし、スライスは最大8つ——それ以上になると、どのスライスがどのスライスか区別できなくなり、棒グラフに劣化します。
 
```chart
{"type":"pie","source":"tool:x","title":"Where the questions come from",
 "labels":["Website widget","WhatsApp","Telegram","Email hand-off","Embedded in-app","Shared link"],
 "series":[{"name":"conversations","values":[6200,2700,1100,640,380,210]}]}
```
 
### `funnel` — 人々はどこで離脱していますか?
 
各ステージは、その上のステージのサブセットでなければなりません。下降しないシリーズはファネルではなく、並べられた数値のセットです——そしてプラットフォームはそれを棒として描画します。
 
```chart
{"type":"funnel","source":"tool:x","title":"From visit to paid",
 "labels":["Visits","Started a chat","Left an email","Signed up","Activated","Paid"],
 "series":[{"name":"people","values":[4200,1980,1140,860,410,120]}]}
```
 
### `radar` — 各オプションはどのような形状をしていますか?
 
同じいくつかの次元にわたって複数のものを比較します。次元が比較可能なスケールにある必要があります:0–10の評価を0–1,000,000の数の隣に置くと、1つの軸が固定され、もう1つがフラットラインになるため、プラットフォームは棒にフォールバックします。
 
```chart
{"type":"radar","source":"tool:x","title":"Vendor comparison","labels":["Speed","Cost","Support","Coverage","Ease"],"series":[{"name":"agent4.io","values":[9,7,8,9,8]},{"name":"Incumbent","values":[5,9,6,4,5]}]}
```
 
### `scatter` — これら2つは関連していますか?
 
正確に2つのシリーズ:最初がx、2番目がy、ラベルは点を名付けます。
 
```chart
{"type":"scatter","source":"tool:x","title":"Answer length against satisfaction",
 "labels":["A","B","C","D","E","F","G","H","I","J","K","L","M","N"],
 "series":[{"name":"words in the answer","values":[40,55,70,85,95,110,130,145,160,180,205,230,260,300]},
           {"name":"satisfaction %","values":[62,68,74,79,83,86,88,87,84,80,74,69,61,55]}]}
```
 
### `table` — 上記のいずれも正直でない場合
 
異なるスケールの2つの測定値、または常にテーブルであったデータ。それはまた、その前提が崩れたときに他のすべてのタイプが着地する場所です。
 
```chart
{"type":"table","source":"passage:kb","title":"Registration by market",
 "labels":["Brazil","Mexico","Colombia","Chile","Peru","Argentina"],
 "series":[{"name":"days","values":[90,60,45,55,70,null]},
           {"name":"fee (USD)","values":[4200,2800,1900,2100,2450,null]}]}
```
 
## 沈黙しているとき
 
3つの数値が下限です。「12万から15万に増加」は文であり、棒グラフではなく、描画するのはノイズです。Yes/No質問や単一値の参照には答えが返され、画像は返されません。1つの返信で最大2つのチャートまで、2つ目は異なる単位で2つの測定値がある場合のみ——プラットフォームはカウントするため、モデルは3つ目を自分で作り出すことができません。
 
そして、このターンに何も取得されなかった場合、描画するものはありません。エージェントは自分が知っていることと知らないことを述べます。それは言葉で行うことと同じことです。
 
## 有効にする
 
有効にするものはありません。ナレッジベースまたはツールを持つ任意のエージェントはすでにこれを行っており、包含ゲートにより、描画すべきでないチャートが訪問者に届くことはありません。チャートはメッセージとともに保存されるため、1ヶ月後に会話を再開しても、答えの途中にある穴ではなく、同じ画像が表示されます。