Hermes Agent ツール集
ツールは Hermes Agent が外部世界とやり取りする唯一のチャネルです。ファイルの読み書き、コマンドの実行、ウェブ検索、画像生成など、すべての機能はツールを通じて公開されます。
Hermes には 70 以上のツールが組み込まれており、28 のツール集に分かれています。この章では、各ツール集の主要ツール、パラメータ、ベストプラクティスを一つずつ解説します。
ツールシステムアーキテクチャ
具体的なツールの詳細に入る前に、まずツールの構成方法を理解しましょう。
Hermes は 3 層構造でツールを管理します:
工具(Tool) ← 单个可调用函数,如 read_file、web_search
└── 工具集(Toolset) ← 相关工具的逻辑分组,如 file、web
└── 平台配置 ← 哪个平台加载哪些工具集
重要な設計:ツールセットを無効にすると、その中のツールはシステムプロンプトから完全に消えます。呼び出せないだけでなく、Agent はそれらの存在をまったく知りません。これにより Token を節約し、Agent が使うべきでないツールを誤用するのを防ぎます。
ツールセットを管理する方法:
# TUI 交互式管理(推荐) hermes tools # 命令行管理 hermes tools list # 列出所有工具及启用状态 hermes tools enable browser # 启用指定工具集 hermes tools disable audio # 禁用指定工具集
config.yaml で設定します:
# 文件路径:~/.hermes/config.yaml
# 按平台指定启用的工具集
platform_toolsets:
cli:
- hermes-cli # CLI 核心工具集
- file
- terminal
- web
- memory
- skills
デスクトップ版では、左側のスキルとツールメニュー:

ダッシュボードでもツールを管理できます。左側のスキルメニュー内:

ファイルとシステムツール集
この種のツールセットにより、Agent はローカルファイルシステムの操作、コマンドの実行、プロセスの管理ができます。
file — ファイル操作
最も基本的なツールセットで、Agent のほぼすべてのタスクがファイルの読み書きにこれを利用します。
| ツール | 機能 | 主要パラメータ |
|---|---|---|
| read_file | ファイル内容の読み取り | file_path(必須)、offset(開始行)、limit(行数上限) |
| write_file | ファイルの作成または上書き | file_path(必須)、content(必須) |
| edit_file | ファイル内のテキストを正確に置換 | file_path、old_string、new_string、replace_all |
| list_dir | ディレクトリ内容の一覧表示 | path(必須)、recursive(再帰するかどうか) |
| search_files | ファイル名パターンで検索 | pattern(必須、glob 対応)、path(検索ルートディレクトリ) |
| search_content | ファイル内容からテキストを検索 | pattern(必須、正規表現対応)、path、file_types |
edit_file の動作原理:正確な部分文字列マッチングを使用して変更位置を特定します。Agent が old_string(ファイル内に実際に存在するテキスト)を提供すると、ツールがそれを見つけて new_string に置き換えます。old_string が複数箇所にマッチする場合は、replace_all: true を設定してすべての出現箇所を置換します。
edit_file は Agent が最もよく使うファイル変更方法です。old_string が見つからない場合、操作はエラーで失敗し、ファイルを誤って上書きしないため、write_file よりも安全です。
terminal — Shell コマンド実行
Agent が指定されたバックエンド環境で Shell コマンドを実行できるようにします。
| ツール | 機能 | 主要パラメータ |
|---|---|---|
| run_command | 単一の Shell コマンドを実行 | command(必須)、workdir(作業ディレクトリ)、timeout(タイムアウトミリ秒) |
| run_script | 複数行の Shell スクリプトを実行 | script(必須、複数行のスクリプト内容)、workdir、timeout |
コマンドは設定されたターミナルバックエンドで実行されます。local(ローカル)、docker(コンテナ)、ssh(リモート)など。
実行結果には stdout、stderr、終了コードが含まれ、Agent はこれらの情報からコマンドが成功したかどうかを判断できます。
code — サンドボックスコード実行
分離されたサンドボックスでコードスニペットを実行します。Python、JavaScript、Bash をサポートします。
| ツール | 機能 | 主要パラメータ |
|---|---|---|
| execute_code | サンドボックスでコードを実行 | language(python/js/bash)、code(必須)、timeout |
terminal との違い:code ツールは独立したサンドボックスで実行され、ファイルシステムにアクセスできません(明示的にマウントしない限り)。アルゴリズム検証やデータ処理など、ファイル操作を必要としないコードの実行に適しています。
computer — デスクトップ GUI 自動化
デスクトップ環境のマウス、キーボード、スクリーンショットを制御します。
| ツール | 機能 |
|---|---|
| screenshot | 画面または指定領域をキャプチャ |
| click | 指定座標でマウスをクリック |
| type | キーボード入力をシミュレートしてテキストを入力 |
| scroll | マウスホイールをスクロール |
| move | 指定座標にマウスを移動 |
computer ツールセットは主に GUI アプリケーションのテストと自動化操作に使用されます。使用シナリオがデスクトップアプリケーションに関係ない場合は、Token を節約するために無効にできます。
ネットワークとコンテンツツール集
この種のツールセットにより、Agent はインターネット検索、ウェブページコンテンツの抽出、ブラウザ操作の自動化ができます。
web — ウェブ検索とコンテンツ抽出
Agent が外部情報を取得するための主要なチャネルです。
| ツール | 機能 | 主要パラメータ |
|---|---|---|
| web_search | インターネットコンテンツを検索 | query(必須)、num_results(結果数) |
| web_extract | 指定された URL の本文コンテンツを抽出 | url(必須)、extract_mode(auto/text/markdown) |
web_search は検索結果リスト(タイトル + URL + 要約)を返します。Agent は通常、最初に検索し、興味のあるページに対して web_extract を呼び出して詳細なコンテンツを取得します。
使用するには検索 API の設定が必要です。複数のプロバイダーをサポートしています:
例
# ウェブ検索バックエンドを設定
web:
search_provider: firecrawl # または brave、serpapi、tavily
# .env で対応する API キーを設定
# FIRECRAWL_API_KEY=fc-...
# または BRAVE_API_KEY=BS...
browser — ブラウザ自動化
完全なブラウザ制御機能。ナビゲーション、クリック、フォーム入力、スクリーンショットなど、人間のようにウェブページを操作できます。
| ツール | 機能 | 主要パラメータ |
|---|---|---|
| navigate | 指定された URL にナビゲート | url(必須) |
| click | ページ要素をクリック | selector(CSS セレクターまたはテキスト記述) |
| fill_form | フォームフィールドに入力 | fields(フィールド名から値へのマッピング) |
| screenshot | 現在のページをキャプチャ | full_page(全ページスクリーンショットかどうか) |
| extract | ページの構造化データを抽出 | selector、format(json/text) |
| execute_js | ページ内で JavaScript を実行 | code(必須) |
browser ツールセットには Playwright またはクラウドブラウザバックエンドのサポートが必要です。
browser ツールセットはブラウザインスタンスを起動するため、追加のリソースを消費します。ウェブページのテキストコンテンツを抽出するだけであれば、browser extract ではなく web_extract を優先的に使用してください。前者は軽量な HTTP リクエストですが、後者は完全なブラウザを起動する必要があります。
vision — 画像分析
Agent に画像コンテンツを「理解」させます。
| ツール | 機能 | 主要パラメータ |
|---|---|---|
| analyze_image | 画像内容を分析して説明を生成する | image_path または image_url(必須)、question(オプション、画像に対する特定の質問) |
| describe_image | 画像の詳細なテキスト説明を生成する | image_path または image_url(必須) |
vision ツールは画像を視覚対応の LLM(claude-sonnet-4-6、gpt-4o など)に送信し、モデルが画像内容を認識して説明します。
audio — オーディオ処理
音声からテキストへの変換と、テキストから音声への変換。
| ツール | 機能 | 主要パラメータ |
|---|---|---|
| transcribe | 音声ファイルをテキストに変換する | audio_path(必須)、language(オプション) |
| tts | テキストを音声ファイルに変換する | text(必須)、voice(音色選択)、provider |
Agent 能力ツール集
この種のツールセットは Agent 自身の状態(記憶、スキル、サブ Agent 連携)を管理します。
memory — メモリ管理
永続記憶の読み書きと、セッションをまたぐ履歴の検索。
| ツール | 機能 | 主要パラメータ |
|---|---|---|
| memory | 永続記憶の管理(追加・削除・変更) | action(add/replace/remove)、target(memory/user)、content |
| session_search | 履歴セッションの全文検索 | query(必須、FTS5 構文対応) |
memory ツールに read 操作はありません。永続記憶はセッション起動時にシステムプロンプトへ注入されているため、Agent が追加で読み取る必要はありません。
skills — スキル管理
再利用可能なワークフロースキルの読み込みと管理。
| ツール | 機能 | 主要パラメータ |
|---|---|---|
| skills_list | インストール済みの全スキルとその説明を一覧表示する | なし(セッション起動時に自動呼び出し) |
| skill_view | スキルの完全な内容を読み込む | name(必須)、path(オプション、references サブファイルを読み込む) |
| skill_manage | スキルファイルの作成・変更・削除 | action、name、content |
delegation — 子 Agent 委任
サブ Agent を生成してタスクを並行実行します。
| ツール | 機能 | 主要パラメータ |
|---|---|---|
| spawn_agent | 単一のサブ Agent を作成してタスクを実行する | prompt(必須)、model(オプション) |
| spawn_parallel | 複数のサブ Agent を並行作成する | tasks(必須、タスクリスト) |
サブ Agent は独立したコンテキストウィンドウを持ち、メイン Agent の会話履歴を汚染しません。実行完了後は結果の要約を返します。
kanban — マルチ Agent カンバン
構造化されたマルチ Agent 協調システムで、明示的な有効化が必要です(all/* でも自動的には有効になりません)。
| ツール | 機能 |
|---|---|
| task_create | かんばんに新しいタスクを作成する |
| task_update | タスクステータスを更新する(todo/in_progress/done) |
| task_list | テナントのすべてのタスクを一覧表示する |
| task_assign | タスクを指定したワーカー Agent に割り当てる |
Kanban はマルチ Profile 連携の中核メカニズムです。1 つのオーケストレーター Profile がタスクを作成し、複数のワーカー Profile が引き取って実行します。これには複数の Profile のゲートウェイが同時に稼働している必要があります。
メディア制作ツール集
この種のツールセットは通常、Nous Portal のサブスクリプションまたは対応するサードパーティ API キーが必要です。
image_gen — AI画像生成
テキスト説明に基づいて画像を生成し、9 種類のモデルに対応しています。
| ツール | 機能 | 主要パラメータ |
|---|---|---|
| generate_image | プロンプトに基づいて画像を生成する | prompt(必須)、model(flux/gpt-image/ideogram など)、size、style |
tts — テキスト音声変換
audio ツールセットとは独立した TTS 機能で、より豊富なプロバイダー選択肢を提供します。
| ツール | 機能 |
|---|---|
| text_to_speech | テキストを音声ファイルに変換する |
| list_voices | 利用可能な音声音色を一覧表示する |
カスタムツール集
既存のツールセットを組み合わせて、プロジェクト専用のカスタムツールセットを定義できます:
例
# プロジェクト専用のツールセット組み合わせを定義
custom_toolsets:
# データサイエンスプロジェクトに必要なツール
data-science:
- file
- terminal
- code
- web
# 純粋な執筆プロジェクトはファイル操作のみ
writing:
- file
- web
- memory
# 運用プロジェクトは端末 + ファイルが必要で、ブラウザは不要
devops:
- file
- terminal
- memory
使用時は--toolsetsパラメータで指定します:
例
hermes --toolsets data-science chat
# または Profile 設定でデフォルトに設定
coder config set toolsets data-science
ツール呼び出しフロー
ツール呼び出しの完全なフローを理解すると、Agent の動作の理解と問題のトラブルシューティングに役立ちます。
完全なツール呼び出しは以下の手順で実行されます:
- LLM が応答生成時にツールの呼び出しを決定し、ツール名とパラメータを出力する
- tool_request Middleware が実行される(パラメータを変更できる)
- 承認チェック——ツールが危険な操作の場合は、approvals.mode に応じて確認を表示するかどうかを決定する
- ツールが実際に実行される
- tool_execution Middleware が実行される(結果を変更できる)
- post_tool_call Hook がテレメトリデータを記録する
- 実行結果が LLM に返され、LLM が応答の生成を続ける
Middleware がツールパラメータを変更した場合、変更後のパラメータが承認と実際の実行の入力になります。Middleware で実行をショートサーキットした場合(カスタム結果を返した場合)、実際のツールは実行されません。
ツール使用統計
どのツールが頻繁に使用されているかを把握すると、ツールセット設定と Token 消費の最適化に役立ちます。
セッション内で今回のセッションのツール呼び出し統計を確認します:
例
/usage
# 出力例:
# Token 使用量: 入力 12,340 | 出力 5,678 | 合計 18,018
# ツール呼び出し: read_file (15回) | edit_file (8回) |
# terminal (3回) | web_search (2回)
バッチ処理シナリオでは、statistics.json ファイルにより詳細な統計が記録されます:
例
{
"total_tool_calls": 1523,
"tools": {
"read_file": {"count": 520, "success": 510, "failure": 10},
"edit_file": {"count": 380, "success": 375, "failure": 5},
"terminal": {"count": 290, "success": 270, "failure": 20},
"web_search": {"count": 180, "success": 178, "failure": 2}
},
"avg_tool_calls_per_turn": 2.4,
"most_common_tool_sequence": [
"read_file", "edit_file", "terminal"
]
}