Hermes Agent を使い始めたら試すべき 10 のこと

@LufzzLiz
中国語3 か月前 · 2026年4月09日
365K
1.7K
350
74
3.6K

TL;DR

Hermes Agent を最適化するための包括的なチュートリアルです。インストール、メモリ管理、サンドボックス化、そしてタスクを永続的なスキルへと自動変換する独自の機能について詳しく解説します。

本記事では、Hermes Agent をインストール後に試していただきたい10の機能を、実践を交えてご紹介します。内容は非常に充実しており、手動での入力、ソースコードのレビュー、実験による検証を経ています。これらの試行を通じて、Hermes の8つの主要なハイライトもまとめ、本文に掲載しています。ぜひご一読いただき、意見交換をお願いします〜

0. インストールとデプロイ

前提として、インストールとデプロイについて簡単に触れ、ゼロから始める皆さんをサポートします。

インストールは1つのコマンドで完了します(macOS / WSL2 / Linux 対応):

text
1curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash -x

実行プロセスを確認しやすいよう、-x を追加しました。Windows ユーザーは WSL2 をインストールし、WSL2 内で Hermes Agent を実行してください。

コマンドが完了すると、設定手順が案内されます。手動で実行することも可能です:

hermes setup

対話形式でモデルやチャネルなどの設定を完了します。

Hermes のインタラクティブ設定は OpenClaw ほど優れてはいませんが、十分シンプルです。小さな落とし穴として、モデルキーの設定時に貼り付けても表示されない点があります。慌てて何度も貼り付けてしまうと、キーが無効になる可能性があります。

対処法は、vim で ~/.hermes/.env を編集することです。

ファイル内のキーが正しいか確認し、不正な場合は手動で修正します。その後、チャネルの設定は OpenClaw と大差ありません。

第一:ブラウザのスクレイピング対策設定(Camofox または Browserbase)

記事の自動読み取り、フォーム入力、チケット取得、バックエンド操作を実行したい場合は、「人間らしい」ブラウザ環境を提供する必要があります。ここでは Camofox を推奨します。

通常のバックエンドブラウザ(Local Chromium)は、エントリー時にブロックされます。

設定方法:Hermes に次のように指示します:「CAMOFOX と CAMOFOX_URL を設定してください。

効果 - 設定前:

岚叔 - inline image

設定後:

岚叔 - inline image

Hermes のハイライト 1:

Hermes を評価すべき点は、どの指示が高リスクかを判断し、適切に承認を求めることです。これは OpenClaw よりもはるかに優れています。OpenClaw では、無意味な数字が並ぶ承認要求が頻発し、何をしているのか把握できず、承認をオフにしたくなります。

岚叔 - inline image

第二:ソウル定義(SOUL.md)

デフォルトでは、Hermes は汎用 AI アシスタントです。自分の好みに合わせてカスタマイズする必要があります。

SOUL.md ファイルはデフォルトでコメントアウトされた空のファイルなので、手動で追加する必要があります。

設定方法:Hermes エージェントに ~/.hermes/SOUL.md を編集・作成させます。

ヒント:最初の2日間は Hermes とチャットし、できるだけ自分のスタイルや要件を伝えてください。その後、「Hermes にはソウル定義(SOUL.md)の推奨設定はありますか?」と尋ねてみてください。

スクリーンショットのように、なかなか良い感じです。参考までにテキストを共有します。

岚叔 - inline image

Hermes のハイライト 2:

2日分の内容を Hermes が要約しているのがわかります。これはセッション読み取りメカニズムによるもので、後ほど詳しく説明します。

~/.hermes/SOUL.md 参考テキスト:

text
1---
2name: 精密なアーキテクト
3version: 2.0
4---
5
6# 🧠 思考モード
7- **回答前に検証する**:不確かな API、設定、パスについては、まずツールで確認し、推測に頼らない。
8- **実行前に計画を立てる**:3ステップ以上のタスクでは、まず計画とリスクを列挙し、確認後に実行する。
9- **納品は検証である**:タスク完了後、必ず「効果を確認する方法」を積極的に提示する。
10
11# 🛡️ 自己抑制
12- 不確かな場合は、「わかりません」と率直に言う。捏造するよりはましである。
13- メモリやスキルに矛盾が見つかった場合は、積極的に指摘し、判断を仰ぐ。
14- タスクが失敗した場合は、原因を分析し、スキルとして体系化して、同じ過ちを繰り返さないようにする。
15
16# 🗣️ 出力の規律
17- 結論を先に述べ、コード/コマンドに焦点を当て、余計な説明は避ける。
18- 高リスク操作(データ削除、再起動、上書き)は、事前に警告すること。

第三:補助機能

補助モジュールは、Hermes の副操縦士的な LLM ルーティングセンターです。その設計目的は、メインモデルを思考に集中させ、より安価/専門的な補助モデルに雑務を処理させることです。これを適切に設定することで、コスト削減と効率向上が可能です。

これも Hermes のハイライトの一つです。Hermes は、タスク(検索、圧縮、ビジョンなど)ごとに独立したモデルとプロバイダーを指定でき、メインモデルのコスト削減やパフォーマンス向上を実現します。設定はユーザーフレンドリーで、Hermes に設定を任せることができます。

カスタム補助モデル設定に対応(全8種類):

  1. vision:スクリーンショット / CAPTCHA / 画像分析
  2. web_extract:Web コンテンツのスクレイピングと抽出
  3. compression:コンテキスト圧縮要約
  4. session_search:過去のセッション検索要約
  5. approval:危険なコマンドの承認判断
  6. skills_hub:スキルマーケットの検索 / インストール支援
  7. mcp:MCP サービス呼び出し支援
  8. flush_memories:メモリシステムのクリーニング / 再編成

設定方法の例:「セッション圧縮補助モデルを qwen3.5-plus に設定してください」

岚叔 - inline image

検証:手動で compress をトリガーします:

岚叔 - inline image

ログ(~/.hermes/logs/agent.log)を確認します:

2つの重要な行:flush_memories はデフォルトモデル qwen3.6 を使用し、compress はカスタムモデルを使用していることがわかります。素晴らしい〜

Auxiliary flush_memories: using auto (qwen3.6-plus)

Auxiliary compression: using auto (qwen3.5-plus) at https://dashscope.aliyuncs.com/compatible-mode/v1/

岚叔 - inline image

圧縮しきい値:頻繁すぎるのも、圧縮しないのも良くありません。現在のデフォルトは50%で、実際の使用状況に応じて調整することをお勧めします。

Hermes のハイライト 3: デフォルトの圧縮しきい値は、モデルのコンテキストウィンドウに従います。つまり、1M モデルと 200k モデルではトリガー比率が異なります。Hermes にはラウンド制限がないため、メモリのパフォーマンスが向上する可能性があります。

さらに、要約予算もそれに応じてスケーリングされます:max_summary_tokens = min(context_length * 0.05, _SUMMARY_TOKENS_CEILING)

1M モデルは要約に最大 50K トークンを割り当てられますが、200K モデルは 10K のみです。要するに、より合理的です。

第四:メモリシステム

Hermes のメモリシステムは3層に分かれており、層ごとに設定できます(Hermes 自身で設定可能):

第1層:組み込みメモリ(デフォルトで有効、微調整推奨)

text
1# ~/.hermes/config.yaml
2memory:
3 memory_enabled: true # MEMORY.md — エージェントメモ
4 user_profile_enabled: true # USER.md — ユーザープロファイル
5 memory_char_limit: 2200 # デフォルトで十分。ヘビーユーザーは4000に調整可能
6 user_char_limit: 1375 # デフォルトで十分
7 nudge_interval: 10 # 10ラウンドごとにエージェントにメモリ保存を促す。より積極的にするには5に設定
8 flush_min_turns: 6 # 終了前に最低6ラウンド経過後、メモリフラッシュをトリガー

内訳:

memory_char_limit: 2200:エージェントのメモを保存:環境の事実、プロジェクトの慣例、遭遇した落とし穴。単位は文字。MEMORY.md に書き込まれます。このファイルが頻繁にいっぱいになる場合は、制限を増やすことをお勧めします。私は4000に変更しました。

user_char_limit: 1375:ユーザープロファイルを保存:好み、コミュニケーションスタイル、仕事の習慣。単位は文字。USER.md に書き込まれます。

nudge_interval: 10:10ラウンドごとにエージェントにメモリ保存を促します。Hermes のメモリが十分でないと感じる場合は、5に調整してより積極的にすることができます。

第2層:外部メモリプロバイダー(必要に応じて1つ選択)

急いで設定する必要はありません。なぜなら、第3層にローカルフォールバックがあるからです。

Hermes は8つの主要プラグインをサポートしています:

岚叔 - inline image

mem0 の設定を例にとると、ターミナルで設定を実行することをお勧めします:

実行:hermes memory setup を実行し、キーを設定します。

岚叔 - inline image

Hermes のハイライト 4:設定は分離されており、キーと設定は別々です。YAML 形式を使用しており、個人的には JSON よりも親しみやすいと感じます。Google も気に入るでしょう😊

岚叔 - inline image

ただし、1つの点で OpenClaw には及びません。設定のホットリロードがありません。config.yaml を変更した後は再起動が必要です。

mem0 を設定した後、会話の流れには1ラウンドあたり少なくとも2回の mem0 API 呼び出しが含まれます(sync_turn 書き込み + queue_prefetch 検索)。エージェントがツールを積極的に呼び出す場合は、さらに呼び出しが必要になる可能性があります。

そのため、外部メモリを有効にするかどうかはご判断ください。まずは第1層と第3層で十分かどうかを確認し、不十分であれば設定を検討することをお勧めします。

会話の全体像を理解するための図を示します。

岚叔 - inline image

第3層:セッション検索(デフォルトで有効、補助機能が利用可能であることを確認)

セッション検索はメモリの一部ではなく、メモリシステムの補完メカニズムです。

保存内容:すべての過去の会話のオリジナル。

保存場所:ローカルの ~/.hermes/state.db

検索方法:FTS5 キーワード検索 + LLM 要約。

書き込み方法:自動(各会話ラウンドは自動的に SQLite に永続化されます)。

session_search は2つのモードを区別します:

モード1:クエリが空 → LLM を呼び出さずに、最近のセッションリストを直接返します。

モード2:クエリが存在する → FTS5 検索 → LLM 要約。

フォールバックもあります。要約 LLM の呼び出しが失敗した場合、元のテキストの最初の500文字の生のプレビューを直接返し、LLM がダウンしていても何らかの結果が返されるようにします。

クエリの有無はエージェントが決定します。ユーザーの意図を読んだ後、エージェントは「履歴を確認する」必要があるか、「特定のトピックを検索する」必要があるかを判断し、クエリを渡すかどうかを決定します。これはツール使用の標準モードであり、動作はスキーマの説明に従い、エージェントが自律的に呼び出し方法を選択します。

セッション検索がベクトル検索をサポートしていれば素晴らしいでしょう。OpenClaw はこれをサポートしています(ハイブリッド検索エンジン:BM25 + ベクトル検索)。ただし、粒度は日記ファイルであり、セッションレベルではないため、一長一短があります。

第五:web_search の設定

エージェントの Web 検索機能は設定が必須です。Hermes は設定が非常に簡単で、Hermes に任せるだけです。

Hermes はネイティブでサポートしています:exa、Tavily、parallel、firecrawl。

設定と使用例は以下の通りです:

Hermes に指示します:「exa を設定してください。」

岚叔 - inline image
岚叔 - inline image

Hermes のハイライト 5: 注意深い方ならお気づきでしょうが、Hermes はデフォルトで IM にツールの実行プロセスを明確に表示します。これは非常にユーザーフレンドリーです。

第六:自動監査(Hooks)

Hermes Agent には、相互に補完する2つの拡張システムがあります:

  1. ゲートウェイフック:ゲートウェイイベント駆動型フック。
  2. プラグインシステム:プラグインライフサイクルフック。

中核概念:フックはイベント通知を処理し、プラグインは機能拡張を処理します。両者は相互に補完します。

8つのライフサイクルフックが利用可能です:

岚叔 - inline image

実行フローの例:

text
1セッション作成
2 → on_session_start
3
4各会話ラウンド:
5 → pre_llm_call ← コンテキストを注入可能
6 → ツールループ:
7 → pre_api_request ← 各 API 呼び出しの前
8 → API 呼び出し
9 → post_api_request ← 各 API 呼び出しの後
10 → pre_tool_call ← 各ツール実行の前
11 → ツール実行
12 → post_tool_call ← 各ツール実行の後
13 → post_llm_call ← ラウンド終了
14 → on_session_end ← run_conversation が戻る

実践経験:ゲートウェイフック設定の実験を行い、ツール呼び出しを監査します。

Hermes に直接指示します:「ターミナル監査フックを作成してください:各ターミナルツール実行後、コマンド内容、実行結果、タイムスタンプ、セッション ID を自動的にログファイルに追加します。」

岚叔 - inline image

承認後、Hermes が書き込みました:

岚叔 - inline image

これでコマンド監査フックの開発と設定が完了しました。Lobster(OpenClaw)よりも便利だと思いませんか?

岚叔 - inline image

第七:サンドボックス

デフォルトの実行コマンドはローカルです。セキュリティを向上させたい場合は、サンドボックスを使用する必要があります。Hermes はサンドボックスをサポートしており、ここでは Docker を選択します。

練習として、別のエージェントを起動して Docker サンドボックスを設定します。

以下の例を参照してください(もちろん、Hermes エージェントに次のプロンプトで設定を任せることもできます:「以下のコマンドを参考に、追加のプロファイルを設定し、サンドボックスに Docker を使用し、モデルはメインプロファイルに従うように設定してください。」):

text
1# Worker をセカンダリボット(Token B)にバインド
2hermes -p worker config set gateway.telegram.bot_token "TOKEN_B"
3hermes -p worker config set gateway.telegram.enabled true
4
5# Worker を Docker サンドボックスモードに設定
6hermes -p worker config set terminal.backend docker
7hermes -p worker config set terminal.docker_image python:3.11-slim
8
9# Worker はより安価なモデルを使用可能
10hermes -p worker config set model.provider alibaba
11hermes -p worker config set model.model qwen3.5-plus

Hermes がすべて設定してくれるので、自分で行う必要はなく、追加のボットキーを提供するだけです。

テスト:ワークボットに rm -rf / と指示しました。スクリーンショットを見ると、最初は拒否されました。はは。

岚叔 - inline image

促すと、最終的に実行を確認しました。スクリーンショットにあるように、システム保護がトリガーされ、一部のディレクトリのみが削除されたとも表示されました。

岚叔 - inline image

メインエージェントにトラブルシューティングを依頼しましょう。確認済み、問題ありません。

岚叔 - inline image

ホストマシンで docker ps を確認します。Docker が確かに起動していることがわかります。完璧です〜

岚叔 - inline image

Hermes のハイライト 6: マルチプロファイル(エージェントインスタンス)の設定がフレンドリーです。一言で Hermes が実行します。Lobster では、基本的にバックエンドにログインして調整する必要がありました。

第八:マルチエージェント

マルチエージェントについては別の記事が必要です。ここでは、Wiki からの概要のみを記載します。同じセッション内で異なるマルチエージェント機能をトリガーできます。もちろん、完全に分離されたマルチエージェントもあり、これは上記のマルチプロファイルです。

岚叔 - inline image

会話内でサブエージェントをトリガーするのは非常に簡単で、一言言うだけです。例:

「3人のサブエージェントを生成して、Hermes のメリットとデメリットについて互いに議論させてください。」

岚叔 - inline image

第九:バックアップ

Hermes Agent に乗り換えることを決めたなら、バックアップは必須です。

3層のバックアップを推奨します:

第1層:ローカル git を有効にする。 さらに進んで GitHub にプッシュすることをお勧めします。プライベートリポジトリにプッシュすることをお勧めします。.env はプッシュしないでください(.gitignore を設定)、ローカルディスクバックアップを使用してください。

第2層:ローカルの他のディレクトリ(できれば他のディスク) + スケジュールタスクにバックアップ。

付録、キースクリプトファイル:

text
1#!/bin/bash
2BACKUP_NAME="hermes_full_backup_$(date +%Y%m%d_%H%M%S)"
3BACKUP_DIR="/tmp/$BACKUP_NAME"
4DEST_DIR=~/hermes_backups
5
6mkdir -p $BACKUP_DIR/hermes
7mkdir -p $DEST_DIR
8
9echo "📦 コア設定をパッケージ化..."
10cp ~/.hermes/config.yaml $BACKUP_DIR/hermes/
11cp ~/.hermes/.env $BACKUP_DIR/hermes/
12cp ~/.hermes/MEMORY.md $BACKUP_DIR/hermes/ 2>/dev/null
13
14echo "🧠 データベースとセッションをパッケージ化..."
15cp ~/.hermes/state.db $BACKUP_DIR/hermes/
16# セッションが大きい場合は最新ファイルのみバックアップ可能。ここではすべてバックアップ
17cp -r ~/.hermes/sessions $BACKUP_DIR/hermes/ 2>/dev/null
18
19echo "🔧 拡張機能と監査をパッケージ化..."
20cp -r ~/.hermes/plugins $BACKUP_DIR/hermes/ 2>/dev/null
21cp -r ~/.hermes/audit_logs $BACKUP_DIR/hermes/ 2>/dev/null
22cp -r ~/.hermes/skills $BACKUP_DIR/hermes/ 2>/dev/null
23cp -r ~/.hermes/cron $BACKUP_DIR/hermes/ 2>/dev/null
24
25echo "👥 全プロファイルデータをパッケージ化..."
26# プロファイルには worker などのクローンの全設定とデータベースが含まれる
27cp -r ~/.hermes/profiles $BACKUP_DIR/hermes/ 2>/dev/null
28
29echo "📦 圧縮中..."
30tar -czf $DEST_DIR/$BACKUP_NAME.tar.gz -C /tmp $BACKUP_NAME
31rm -rf $BACKUP_DIR
32
33echo ""
34echo "✅ バックアップ完了!"
35echo "📍 パス: $DEST_DIR/$BACKUP_NAME.tar.gz"
36echo "📊 サイズ: $(du -h $DEST_DIR/$BACKUP_NAME.tar.gz | cut -f1)"

第3層:リモートバックアップ:ディスクへのバックアップ、git push でリモートへ、他のサーバー、サードパーティのオブジェクトストレージなど。

第十:スキル

特に説明することはありません。よく使うスキルをインストールするだけです。

Hermes は非常にインテリジェントで、スキルをレビューします。タスクを識別し、プロセスを自動的に要約してスキルとして固めます。

トリガー条件:config.yamlcreation_nudge_interval のデフォルトが 15 であることを確認します(古いバージョンでは 10 の場合があります)。

岚叔 - inline image

このパラメータは、15 ツールサイクルごとにバックグラウンドスキルレビューがトリガーされることを意味します。

スキルレビュープロセス:

text
1バックグラウンドエージェントを起動し、現在の会話の完全なスナップショットを取得し、自身に質問を投げかけます:
2
3> 「前回の会話で、試行錯誤、方向転換、または異なるアプローチに対するユーザーの期待を伴う、重要な経験はありましたか?」
4
5その後、3つの結果:
61. **既存のスキルを更新可能** → `skill_manage` を呼び出して、既存のスキルを新しい経験で更新。
72. **該当なしだが作成する価値あり** → `skill_manage` を呼び出して新しいスキルを作成し、再利用可能な方法論を体系化。
83. **保存する価値なし** → 「Nothing to save.」を出力して終了。
9
10プロセス全体はバックグラウンドスレッドで実行され、ユーザーの会話をブロックせず、メインの会話履歴も変更しません。アクションがあった場合、ターミナルに1行表示されます。

Hermes のハイライト 7: 価値のある操作を自動的に永続的なスキルに変換する機能は、際立った特徴です。素晴らしさは言葉を超えます〜

岚叔 - inline image

Hermes のハイライト 8: どのように終了しても(正常/異常/中断)、メッセージは失われません。20 のトリガーポイントがすべての終了パスをカバーし、インクリメンタル書き込みとセッション分割により、各セッションレコードが完全で重複しないことが保証されます。

スペースの都合上、セッションについては後日詳しく説明する機会を設けます。

追記

数日間 Hermes を体験して、多くのハイライトを感じました。全体的な体験は非常にスムーズです。安定性は OpenClaw よりも優れており、Lobster の修正にかかる時間を30%節約できます。

Lobster は通常、海外の SOTA モデルが必要であり、そうしないと簡単にクラッシュします。

Hermes では、qwen 3.6 plus を一貫して使用しました。設定やアップグレードなどの多くの操作は、Hermes とチャットするだけで実行でき、クラッシュすることはなく、これは非常に珍しいことです。

参考資料:

  1. ソースコード:https://github.com/NousResearch/hermes-agent
  2. Lan Shu による Wiki:https://github.com/cclank/Hermes-Wiki
  3. 公式ドキュメント:https://hermes-agent.nousresearch.com/docs/

公式アカウント版:https://mp.weixin.qq.com/s/0SYL-HKbWGj3eToQPqnpBw

本記事は実践経験に基づき、すべて手動で入力されています。作成は簡単ではありません。皆様のトリプルタップでのご支援をお待ちしております〜💗

ワンクリック保存

YouMindでバイラル記事をAI深読み

ソースを保存し、的を絞った質問をし、主張を要約して、バイラル記事を再利用できるノートに変えます。すべてを1つのAIワークスペースで行えます。

YouMindを探索
クリエイターのために

あなたの Markdown をきれいな 𝕏 記事に

自分の長文を投稿するとき、画像・表・コードブロックを 𝕏 向けに整形するのは手間がかかります。YouMind は Markdown 全体を、そのまま投稿できるきれいな 𝕏 記事に変換します。

Markdown → 𝕏 を試す

解読すべきパターンをもっと

最近のバイラル記事

バイラル記事をもっと見る