採点の読み方
100 点満点の点数がどう決まるか、サーバー全体で何を見るか、すべての指摘コードとその重大度を説明します。
このページの内容
ツールごとに 100 点満点の点数が付きます。6 つの項目の点の合計です。サーバーの平均点は、ツールの点数の平均を小数 1 桁で示したものです。結果には指摘も並びます。直すべき点で、それぞれに指摘コードと重大度が付きます。
6 つの項目
| 項目 | 配点 |
|---|---|
| 目的 | 20 |
| 使いどころ | 20 |
| 引数 | 25 |
| 戻り値 | 15 |
| 制約と副作用 | 10 |
| 例 | 10 |
- 目的: 説明文があり、ツールが何をするかを書いている(動詞で始めると良い)。説明できるだけの長さがあり、ツールの名前を言い換えただけになっていない
- 使いどころ: いつ使うか、いつ使わないか、代わりに何を使うかを説明文に書いている
- 引数: すべての引数に説明がある。文字列の引数に制約か例がある(
enum、format、pattern、examples、default、minLength、maxLengthのいずれか)。スキーマにrequiredがあり、additionalPropertiesがfalseになっている - 戻り値:
outputSchemaがあるか、何を返すかを説明文に書いている - 制約と副作用:
annotations(readOnlyHint、destructiveHint、idempotentHint)があり、上限、副作用、権限、費用、回数制限などに説明文が触れている - 例: 説明文か引数に例がある
規則は説明文の英語の語を探します。そのため、英語以外で書いた説明文は、内容に見合うより低い点になります。
点の帯
長い一覧をざっと見られるように、点数には天気の記号を添えます。
70 点以上: 晴れ40〜69 点: 曇り40 点未満: 雨
大事なのは数字で、記号はそれを分けているだけです。
サーバー全体
ツールを並べて初めて分かる問題もあります。
- ツールが多すぎる: 25 を超えると、モデルはツールを見分けにくくなり始め、40 を超えると選ぶ正確さが落ちます。
- 取り違えやすいツールの組: 説明文の語の大半が同じ組か、名前が似ていて説明文もある程度似ている組です。結果には似ている順に 12 組を表示し、総数も数えます。ツールごとのカードには、そのツールと取り違えやすいツールを示します。
- 説明文がまったく同じ: 同じ説明文のツールは、まったく見分けられません。
重大度
- 重大: モデルがそのツールを選ぶ手がかりがありません。最初に直してください。
- 要対応: モデルが間違った場面で選んだり、間違って呼んだりしやすい状態です。
- 軽微: 戻り値や制約など、モデルの助けになる情報が足りません。
指摘があるだけでは CLI は失敗しません。平均点が低いときに CI を止めるには、--fail-under を指定します(CLI で採点する)。
指摘コードの一覧
指摘コードは、Web でも CLI でも、CLI の --json の出力でも同じです。下の文は例で、実際の結果には本当の数や名前が入ります。
ツールごとの指摘
| コード | 重大度 | 結果に出る文(例) |
|---|---|---|
no_description | 重大 | 説明文がありません。 |
restates_name | 要対応 | 説明文が名前の言い換えになっています(4 語)。 |
too_short | 要対応 | 説明文が短すぎます(5 語)。 |
no_usage_context | 要対応 | いつ使うか、いつ使わないかが書かれていません。 |
destructive_unmarked | 要対応 | 破壊的な操作の可能性がありますが、destructiveHint が付いていません。 |
generic_name | 要対応 | 名前が汎用的な語だけでできています。 |
bad_name_chars | 要対応 | 名前に、英数字と _、-、. 以外の文字が含まれています。 |
param_no_description | 要対応軽微 | 説明のない引数: path、recursive |
too_long | 軽微 | 説明文が長めです(430 語)。選択の精度は上がりますが、手数とトークンが増えます。 |
loose_string_param | 軽微 | 制約も例もない文字列の引数: query |
no_required | 軽微 | `required` が指定されていないため、すべての引数が任意になっています。 |
params_not_in_description | 軽微 | 引数が 3 つ以上あるのに、説明文がどの引数にも触れていません。 |
vague_boolean | 軽微 | 真偽値の引数 recursive の意味が分かりにくくなっています。 |
no_return_info | 軽微 | 何が返るかが書かれていません。 |
no_constraints | 軽微 | 制約・副作用・認証・回数制限の記述がなく、annotations もありません。 |
long_name | 軽微 | 名前が長すぎます(48 文字)。 |
サーバー全体の指摘
| コード | 重大度 | 結果に出る文(例) |
|---|---|---|
identical_description | 重大 | 次のツールの説明文がまったく同じです: search_pages、search_docs |
too_many_tools | 要対応 | ツールが 52 個あります。40 を超えると、モデルの選択の精度が落ちます。 |
confusable_pair | 要対応 | get_block と retrieve_block は取り違えやすい組です。 |
confusable_pair_total | 要対応 | 取り違えやすい組は全部で 57 組あります(上位 12 組を表示)。 |
many_tools | 軽微 | ツールが 31 個あります。25 を超えると、モデルがツールを見分けにくくなり始めます。 |
採点の規則の版
結果には、採点に使った規則の版が必ず出ます。点数、項目、指摘コード、重大度のどれかが変わりうる変更をしたら版を上げるので、点数は同じ版どうしで比べてください。静的な採点ではそもそも分からないことは、はじめにに書いています。