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定義です |
| platform | CLIや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 | 実測値 |
|---|---|
| stable | 11,608 B |
| context | 0 B |
| volatile | 16,628 B |
context: 0 Bは、この実行条件で得た値です。すべての repository や起動方法で、常に 0 B になるわけではありません。作業場所の規約ファイルなどが加われば、値は変わります。
実行時には、更新後の gateway が古い module を保持している可能性を示す警告も出ました。prompt-size自体は結果を返しました。この警告は、測定時点の環境注記として残します。CLI と常駐 gateway の状態が違う可能性を考慮するためです。
tool schemaの大きい場所を見る
同じ出力には、toolset ごとの schema 量が並びました。実機で上位だった 5 件です。
| toolset | tools | schema |
|---|---|---|
| file | 4 | 6,032 B |
| delegation | 1 | 3,760 B |
| skills | 3 | 3,606 B |
| terminal | 1 | 3,297 B |
| memory | 1 | 3,296 B |
大きい順に消す表ではありません。file toolset を外せば、記事や設定の読み書きに支障が出ます。delegation を外せば、複数の調査を分ける仕事ができなくなります。
見るべきなのは、現在の入口で本当に使う機能かどうかです。読み取り専用の監視 bot と、開発用 CLI では必要なツールが違います。用途を分けずに全 profile へ同じ削減を適用しません。
ツールを見直す必要がない場合は、この章を飛ばせます。単発の測定だけでも、固定量の基準値として使えます。
スキル本文と索引を取り違えない
skills 一覧には、SKILL.mdの実ファイルサイズと、index cost が別々に出ました。
| skill | SKILL.md | index cost |
|---|---|---|
| humanizer | 34,463 B | 65 B |
| claude-code | 34,281 B | 70 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 で得た主要値です。
| 項目 | CLI | Slack |
|---|---|---|
| system prompt | 28,238 B | 27,857 B |
| system prompt chars | 26,486 | 26,109 |
| skills index | 11,002 B | 11,002 B |
| memory | 2,630 B | 2,630 B |
| user profile | 1,734 B | 1,734 B |
| tool schemas | 35,444 B | 35,348 B |
| tools | 20 | 20 |
今回、Slack 側は system prompt と tool schema が少し小さくなりました。この差だけで Slack が優れているとは判断できません。入口ごとの案内や tool 解決が違うことを、数値で確認できたという結果です。
比較では、profile、導入 version、測定日をそろえます。別 profile や更新前後を混ぜれば、platform 以外の差も入ります。
変更前後を同じ条件で比べる
見直しは、次の順で行います。
- CLI 版と対象 platform を記録します。
prompt-size --jsonで変更前を保存します。- memory、規約、skills index、toolset の役割を確認します。
- 重複が明確な箇所だけを変更します。
- 同じ platform で再測定します。
- 数値と動作確認を両方残します。
たとえば、memory と project 規約へ同じ説明を二重に書いていた場合、どちらを正本にするか決めます。毎回必要な利用者の好みなら user profile、特定作業の手順なら skill が向いています。
変更後は、数値が減っただけで完了にしません。公開ゲート、秘密の扱い、作業ディレクトリなど、守るべき判断が残っているか確認します。
変更前の測定
│
├── 数値が大きいだけ ── 役割が必要なら残す
│
└── 内容が重複 ─────── 正本を決めて整理
│
▼
変更後の測定
│
▼
実際の仕事で確認
AI エージェントの精度は、短さだけで決まりません。必要な制約を保ったまま、同じ意味の重複を減らすことが目的です。
よくあるエラー
| 表示・状況 | 主な原因 | 対応 |
|---|---|---|
prompt-sizeがsubcommandにありません | 導入済みCLIが機能追加前です | hermes --versionとhermes --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 Reference | hermes prompt-size、--platform、--json、offline診断の位置付け |
| Hermes Agent Skills System | skills indexとSKILL.md本文を分けるprogressive disclosure |
| Hermes Agent Persistent Memory | memoryと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」の関心テーマを起点に、固定プロンプトを測ってから整える実務を選んでいます。
