Hermes Agentのプロンプト量を測る|prompt-sizeで固定費を見直す

Hermes Agentのプロンプト量を測る|prompt-sizeで固定費を見直す

会話をまだ 1 往復もしていないのに、AI エージェントは空の状態ではありません。人格、利用者の好み、スキルの索引、ツールの定義を、最初から持っています。

2026 年 9 月 9 日、私はhermes prompt-sizeを実行しました。CLI 向けの system prompt は 28,238 B、tool schema は 35,444 B でした。これは会話本文を足す前の測定値です。

大きさだけを見て設定を削るのは危険です。安全規約や作業手順まで消せば、数値は減っても仕事の確かさを失います。まず内訳を測り、重複と役割を確認し、変更後に同じ条件で測り直します。

前回完了時から今回完了後まで

前回の「Hermes Agentの@参照を試す」では、必要な行と Git 差分だけを会話へ渡しました。今回は、その会話が始まる前から入っている固定部分を調べます。

時点状態
前回完了時会話へ追加するファイルや差分を小さく指定できます
今回開始時system promptやtool schemaの内訳が見えていません
今回完了後固定部分をbyte単位で測り、見直す場所を選べます

すでにhermes prompt-size --jsonを定期記録している場合は、「変更前後を同じ条件で比べる」まで飛ばせます。

なぜ削減より測定が先なのか

プロンプトの固定部分には、短くしてよい情報と、残すべき情報が混ざっています。たとえば、同じ説明が複数の規約へ重複していれば整理できます。一方、公開前の承認条件や秘密情報の扱いは、文字数だけで削る対象ではありません。

Hermes Agent のスキルは、本文を毎回すべて読み込む仕組みではありません。会話開始時には名前と説明を含む索引が入り、必要になった時点でSKILL.md本文を読みます。この progressive disclosure により、大きなスキル本文を常時抱えずに済みます。

測定から再確認までの流れは次の通りです。

[現在のprofileとplatform]


[hermes prompt-sizeで測定]

          ├── system prompt
          │     ├── skills index
          │     ├── memory
          │     └── user profile

          └── tool schemas


       [役割と重複を確認]


       [必要な変更だけ行う]


       [同じ条件で再測定]

prompt-sizeは測定コマンドです。スキル、memory、ツールを自動で削除しません。この分離があるため、結果を読んでから人が変更範囲を決められます。

用語を揃える

用語この回での意味
system prompt人格、運用規約、memoryなど、モデルへ渡す会話の土台です
skills index利用可能なスキルの名前と説明を並べた索引です
SKILL.md選ばれたスキルを使う段階で読む詳しい手順です
memory環境や長く使う事実を保存する、小さな永続領域です
user profile利用者の好みや伝え方を保存する領域です
tool schemaツール名、引数、型などをモデルへ伝えるJSON定義です
platformCLIやSlackなど、プロンプトを組み立てる対象の入口です
fixed prompt budget会話本文を足す前から存在するプロンプト量です

byte 数は token 数ではありません。日本語、英数字、JSON では、文字と byte と token の関係が異なります。今回の数値から API 料金を直接計算しません。

手元のversionと機能を確認する

最初に、導入済み CLI の version を読みます。

hermes --version

実機の先頭行は次の通りでした。

Hermes Agent v0.21.0 (2026.8.31) · upstream baf7ceea

次に、prompt-sizeの引数を確認します。

hermes prompt-size --help

今回の help では、次の 2 項目が表示されました。

--platform PLATFORM  Platform to simulate (cli, telegram, discord, ...).
                     Default: cli
--json               Emit the breakdown as JSON

help には、fresh セッションの system prompt、skills index、memory、user profile、tool-schema JSON を報告すると書かれています。処理は offline で、モデル API を呼びません。

version と help で機能を確認済みなら、この章は飛ばせます。手元の help にprompt-sizeがない場合は、記事の出力を推測して再現しません。

CLI向けの固定量を測る

人が読む最初の測定には、引数なしの表示が向いています。

hermes prompt-size

2026 年 9 月 9 日の実機では、主要部分が次の値でした。

Prompt-size breakdown (platform=cli, model=gpt-5.6-sol)

System prompt total : 28,238 B  (27.6 KB, 26,486 chars)

Major blocks:
  skills index       : 11,002 B  (10.7 KB)
  memory             :  2,630 B  (2.6 KB)
  user profile       :  1,734 B  (1.7 KB)

Tool schemas         : 35,444 B  (34.6 KB, 20 tools)

この結果では、tool schema が system prompt total より大きくなりました。両者は別枠で表示されます。system prompt の合計へ tool schema を重ねて数えた、と解釈しません。

prompt tier の内訳も表示されました。

tier実測値
stable11,608 B
context0 B
volatile16,628 B

context: 0 Bは、この実行条件で得た値です。すべての repository や起動方法で、常に 0 B になるわけではありません。作業場所の規約ファイルなどが加われば、値は変わります。

実行時には、更新後の gateway が古い module を保持している可能性を示す警告も出ました。prompt-size自体は結果を返しました。この警告は、測定時点の環境注記として残します。CLI と常駐 gateway の状態が違う可能性を考慮するためです。

tool schemaの大きい場所を見る

同じ出力には、toolset ごとの schema 量が並びました。実機で上位だった 5 件です。

toolsettoolsschema
file46,032 B
delegation13,760 B
skills33,606 B
terminal13,297 B
memory13,296 B

大きい順に消す表ではありません。file toolset を外せば、記事や設定の読み書きに支障が出ます。delegation を外せば、複数の調査を分ける仕事ができなくなります。

見るべきなのは、現在の入口で本当に使う機能かどうかです。読み取り専用の監視 bot と、開発用 CLI では必要なツールが違います。用途を分けずに全 profile へ同じ削減を適用しません。

ツールを見直す必要がない場合は、この章を飛ばせます。単発の測定だけでも、固定量の基準値として使えます。

スキル本文と索引を取り違えない

skills 一覧には、SKILL.mdの実ファイルサイズと、index cost が別々に出ました。

skillSKILL.mdindex cost
humanizer34,463 B65 B
claude-code34,281 B70 B

34 KB のスキルが、毎回 34 KB ずつ system prompt へ入るわけではありません。常時入るのは短い索引行です。詳しい本文は、そのスキルが必要なときに読み込まれます。

通常表示の末尾は次の案内でした。

… and 92 more (use --json for the full list)

画面表示は上位だけなので、全件を監査する場合は JSON へ切り替えます。ただし、スキル本文の大きさだけを理由に削除しません。長い手順でも、index cost が小さく、必要時だけ読むなら固定部分への影響は限られます。

JSONで測定結果を保存する

比較や自動検査では、JSON をファイルへ保存します。

hermes prompt-size --json > prompt-size-cli.json

期待する JSON の中心部分です。数値は環境ごとに変わります。

{
  "platform": "cli",
  "model": "gpt-5.6-sol",
  "system_prompt": {
    "chars": 26486,
    "bytes": 28238
  },
  "skills_index": {
    "chars": 10978,
    "bytes": 11002
  },
  "tools": {
    "count": 20,
    "json_bytes": 35444
  }
}

JSON には全 skills の内訳が入ります。自動比較には便利ですが、各 skill のローカルパスも含まれます。そのまま公開場所へ添付せず、共有前に値を確認します。

JSON が正しく保存されたかは、parser で確認できます。

python3 -m json.tool prompt-size-cli.json > /dev/null
printf '%s\n' 'JSON: OK'

期待する出力です。

JSON: OK

この確認は JSON 構文を検証します。数値が望ましい範囲か、秘密や個人パスが含まれないかまでは判定しません。

Slack向けの差を同じprofileで測る

platform 固有の組み立てを調べる場合は、対象を明示します。

hermes prompt-size --platform slack --json > prompt-size-slack.json

同じ実機と profile で得た主要値です。

項目CLISlack
system prompt28,238 B27,857 B
system prompt chars26,48626,109
skills index11,002 B11,002 B
memory2,630 B2,630 B
user profile1,734 B1,734 B
tool schemas35,444 B35,348 B
tools2020

今回、Slack 側は system prompt と tool schema が少し小さくなりました。この差だけで Slack が優れているとは判断できません。入口ごとの案内や tool 解決が違うことを、数値で確認できたという結果です。

比較では、profile、導入 version、測定日をそろえます。別 profile や更新前後を混ぜれば、platform 以外の差も入ります。

変更前後を同じ条件で比べる

見直しは、次の順で行います。

  1. CLI 版と対象 platform を記録します。
  2. prompt-size --jsonで変更前を保存します。
  3. memory、規約、skills index、toolset の役割を確認します。
  4. 重複が明確な箇所だけを変更します。
  5. 同じ platform で再測定します。
  6. 数値と動作確認を両方残します。

たとえば、memory と project 規約へ同じ説明を二重に書いていた場合、どちらを正本にするか決めます。毎回必要な利用者の好みなら user profile、特定作業の手順なら skill が向いています。

変更後は、数値が減っただけで完了にしません。公開ゲート、秘密の扱い、作業ディレクトリなど、守るべき判断が残っているか確認します。

変更前の測定

    ├── 数値が大きいだけ ── 役割が必要なら残す

    └── 内容が重複 ─────── 正本を決めて整理


                         変更後の測定


                       実際の仕事で確認

AI エージェントの精度は、短さだけで決まりません。必要な制約を保ったまま、同じ意味の重複を減らすことが目的です。

よくあるエラー

表示・状況主な原因対応
prompt-sizeがsubcommandにありません導入済みCLIが機能追加前ですhermes --versionhermes --helpを確認し、公式手順で更新を検討します
数値が記事の例と一致しませんprofile、skills、memory、toolsetが異なります例へ合わせず、自分の測定値を基準にします
contextが0 Bではありません作業場所の規約などが読み込まれています対象workspaceとcontext fileを確認します
SKILL.mdが大きいので削除したくなります本文サイズとindex costを混同しています2列を分け、progressive disclosureを前提に判断します
JSONを公開したら個人パスが見えましたskills内訳にローカルパスが含まれます公開前に内容を読み、必要な項目だけ抽出します
gatewayとCLIの状態が合いません更新後に常駐processが再起動されていません保守時にversionとgateway状態をそろえて再測定します
byte数から料金を計算できませんbyteとtokenは同じ単位ではありませんproviderの実usageを別に記録します
数値を減らした後に作業が不安定です必要な規約やtoolsetまで外しました変更を戻し、動作確認を含む小さな単位で見直します

私は固定費を見える状態にしてから触る

今回の CLI 測定では、system prompt が 28,238 B、tool schema が 35,444 B でした。skills index は 11,002 B です。一方、大きなSKILL.md本文は常時そのまま入らず、短い index cost と分かれていました。

この内訳が見えれば、「スキルが多いから全部消す」といった乱暴な判断を避けられます。memory には毎回必要な事実を置き、手順は skill へ分け、入口ごとに必要な toolset を選びます。

私は、測定値を削減目標だけには使いません。人格、安全規約、公開条件は仕事の境界です。残す理由を確認し、重複だけを直し、同じ条件で再測定します。

一次情報

出典確認した内容
Hermes Agent CLI Commands Referencehermes prompt-size--platform--json、offline診断の位置付け
Hermes Agent Skills Systemskills indexとSKILL.md本文を分けるprogressive disclosure
Hermes Agent Persistent Memorymemoryとuser profileの用途、容量を絞る理由
prompt-size追加commit測定項目、CLI引数、実装とtest
prompt-size追加PR #35276機能の目的、offline実行、検証内容

実機検査は Hermes Agent v0.21.0 で行いました。導入済み skills、memory、toolset、platform により測定値は変わります。

※2026 年 8 月 13 日から 9 月 9 日までの GSC 上位 100 query には、prompt-sizeと直接一致する語はありませんでした。「AI エージェント / Hermes Agent」の関心テーマを起点に、固定プロンプトを測ってから整える実務を選んでいます。

この記事をシェア