広告

Hermes Agent:どこでも動く自己改善型AIエージェント

Dev.to / 2026/3/30

💬 オピニオンDeveloper Stack & InfrastructureTools & Practical UsageModels & Research

要点

  • Nous Researchによるオープンソース(MIT)のAIエージェント「Hermes Agent」は、ステートレスなチャットボットとして振る舞うのではなく、組み込みの「learning loop(学習ループ)」によって永続的な学習に焦点を当てています。
  • MEMORY.md と USER.md のような小さく厳選したファイルにより、セッションをまたいで耐久性のあるメモリを維持し、さらに SQLite に保存された過去セッションの全文検索も行います。
  • 完了した複数ステップのタスクを、再利用可能な「スキル」(手順、落とし穴、検証ステップ)へ変換でき、将来の類似した依頼に対してそれらを再読み込みします。使用中に自己改善することも、必要に応じて可能です。
  • Hermes Agent はプロバイダ非依存の設計で、設定により LLM バックエンド(OpenAI、Anthropic、OpenRouter、または Ollama/vLLM/SGLang のようなセルフホストエンドポイント)をコード変更なしで切り替えられます。
  • ローカル、Docker/SSH、自社サーバー上などあなたのインフラで動作し、Modal/Daytona のようなサーバレス環境もサポートします。さらに、GitHub やデータベースのようなツール/サービスとの統合に、Model Context Protocol(MCP)を標準で扱えます。

現在のAIエージェントの多くは、追加の手順があるだけのチャットボットです。あなたが話しかけると、彼らは学習内容を忘れてしまい、次回からは最初からやり直しになります。Nous Researchが開発したHermes Agentは、別のアプローチを取ります。学習した内容を記憶し、経験から再利用可能なスキルを作り、他社のクラウドではなくあなた自身のインフラ上で動作します。

この記事では、Hermes Agentが実際に何であるか、開発者にとってなぜ重要か、そして起動する方法を説明します。

Hermes Agentとは?

Hermes Agentは、組み込みの学習ループを備えたオープンソースのAIエージェント(MITライセンス)です。「それっぽいマーケティング文句」ではありますが、これは具体的なことを指しています。複雑なタスクを完了した後、エージェントはその手順を、次回のための再利用可能な「スキル」として保存できます。セッションをまたいで永続的なメモリを維持します。あなたが誰で、どうやって仕事をするのかのモデルを構築します。

これは単一のAPIのラッパーではありません。利用したいLLMプロバイダを何でも差し替えられます。OpenAI、Anthropic、OpenRouter(200+モデルにアクセスできます)、あるいはOllama、vLLM、SGLangを動かしている自前のセルフホストエンドポイントなどです。プロバイダの切り替えは1コマンドで、コード変更は不要です。

このプロジェクトは、2026年3月下旬時点でGitHub上に約8,700スター、142人のコントリビュータ、2,293件のコミットがあります。主にPythonで書かれています。

なぜ開発者は気にすべきですか?

エージェントのフレームワークはたくさんあります。Hermes Agentが注目に値する理由は以下です。

ノートPCに縛られません。 5ドルのVPS上で動かすことも、Dockerコンテナ内で動かすことも、リモートサーバーにSSHで接続して動かすこともできます。また、ModalやDaytonaのようなサーバレス基盤(アイドル時にスリープする)でも動作します。Telegram、Discord、Slack、WhatsApp、Signal、またはターミナルから会話できます。会話はプラットフォームをまたいで継続します。

「ハック」ではない実際のメモリがあります。 エージェントは小さな厳選ファイルを2つ保持します。MEMORY.md(環境の事実、慣習、学んだ教訓)とUSER.md(好みやコミュニケーションスタイル)です。これらはセッション開始時にシステムプロンプトへ注入されます。さらに、過去の全セッション(SQLiteに保存)に対して全文検索ができるため、数週間前の会話も思い出せます。

自分の仕事から学びます。 複雑なタスク(通常5回以上のツール呼び出し)を終えると、エージェントは自律的にスキルを作成できます。これは、手順、落とし穴、検証ステップを含む構造化されたMarkdownドキュメントです。次に似たタスクが出てきたら、最初から考えるのではなく、そのスキルを読み込みます。スキルは、エージェントがより良い手法を見つけたとき、使用中に自己改善することもできます。

MCPに最初から対応しています。 設定ファイルに数行を追加するだけで、任意のModel Context Protocolサーバーに接続できます。これにより、エージェントはGitHub、データベース、あるいはMCPエンドポイントを公開している任意のサービスとやり取りできます。

研究に向けた準備ができています。 より良いツール呼び出しモデルの学習に取り組んでいる場合、Hermesにはバッチ軌跡生成、Atropos RL環境、軌跡圧縮が含まれています。これは単なるユーザー向けプロダクトではなく、次世代のエージェントモデルを作るための基盤でもあります。

基本コンセプト

セットアップの前に、主要な構成要素を理解しておくと役立ちます。

エージェントループ

Hermesの中核はrun_agent.pyAIAgentです。プロバイダの選択、プロンプト構築、ツール実行、リトライ、圧縮、永続化を処理します。同期的なオーケストレーションエンジンで、すべてを駆動する1つのループです。

スキル

スキルは、~/.hermes/skills/に保存された、オンデマンドの知識ドキュメントです。トークン使用量を最小化するため、段階的な開示(progressive disclosure)パターンに従います。

  • レベル0:エージェントはスキル名と説明のリストを見る(約3,000トークン)
  • レベル1:必要になったスキルの全文をロードする
  • レベル2:スキル内の特定の参照ファイルをロードする

各スキルはディレクトリで、SKILL.mdファイルと任意の参照資料、テンプレート、スクリプトが含まれます。形式はメタデータにYAMLフロントマターを使用し、実際の指示にはMarkdownを使用します。

エージェントは複雑なタスクの後に自動でスキルを作成しますが、自分で手書きすることもできます。Skills Hub(skills.shやGitHubリポジトリなど複数のレジストリを集約)からインストールすることも、外部のスキルディレクトリを介してチームに共有することも可能です。

メモリ

メモリには上限があり、厳選されています。MEMORY.mdは2,200文字。USER.mdは1,375文字です。これは合計でおよそ1,300トークンで、コンテキストウィンドウを膨らませない程度の大きさでありつつ、15〜20件の有用なエントリを保持できる程度の大きさです。

エージェントはメモリ自体を管理します。有用なことを学んだときにエントリを追加し、情報が変わったらエントリを置き換え、メモリがいっぱいになったらエントリを統合します。プロンプトインジェクションを防ぐため、メモリエントリにはセキュリティスキャンも行われます。

より深い想起のために、エージェントはSQLiteの全文検索とLLMによる要約を使って過去の全セッションを検索できます。これはシステムプロンプトには含まれません。必要に応じてオンデマンドで呼び出され、過去の会話の中から何かを見つけるときに使用されます。

ターミナルバックエンド

Hermesはコマンドを実行する方法を6通りサポートしています。ローカル、Docker、SSH、Daytona、Singularity、Modalです。DockerとSSHはサンドボックス化された実行を提供します。DaytonaとModalはサーバレスの永続性を提供し、環境はアイドル時にスリープし、必要になったときに起動します。

メッセージング・ゲートウェイ

ゲートウェイは、エージェントをメッセージングプラットフォームに接続し続ける常駐プロセスです。hermes gateway setupで設定し、hermes gateway startで起動してから、スマホからエージェントに話しかけます。スラッシュコマンドはすべてのプラットフォームで同じものが使えます。

セットアップ方法

前提条件

gitをインストールする必要があります。それだけです。インストーラがPython、Node.js、そしてすべての依存関係を処理します。

Windowsはネイティブにはサポートされていません。代わりにWSL2を使ってください。

手順1:インストール

ワンライナーのインストーラを実行します:

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

完了したら、シェルをリロードします:

source ~/.bashrc   # あるいは source ~/.zshrc

手順2:プロバイダを設定

モデル選択コマンドを実行します:

hermes model

この手順では、LLMプロバイダの選択を案内します。選択肢は以下です。

  • Nous Portal -- サブスクリプション制、ゼロ設定、OAuthを使用
  • OpenRouter -- 複数プロバイダへのルーティングに対応し、200+モデルをサポート。APIキーが必要
  • OpenAI -- device code認証を通じてCodexモデルを使用
  • Anthropic -- Claudeモデルを直接利用。Claude Code認証またはAPIキー
  • Custom Endpoint -- OpenAI互換APIなら何でも(Ollama、vLLM、SGLangなど)

さらに、Z.AI、Kimi/Moonshot、MiniMax、Alibaba Cloud、Hugging Faceなどのプロバイダや、他にもいくつかの選択肢があります。

hermes modelをもう一度実行することで、いつでもプロバイダを切り替えられます。

手順3:チャットを開始

hermes

それが唯一のスタートアップコマンドです。稼働中のモデル、利用可能なツール、インストール済みのスキルが表示されるウェルカムバナーが表示されます。メッセージを入力してEnterを押してください。

Step 4: Set Up Sandboxed Execution (Recommended)

デフォルトでは、エージェントはローカルマシン上でコマンドを実行します。安全のため、サンドボックス化されたバックエンドを使用してください:

hermes config set terminal.backend docker    # Dockerによる分離
hermes config set terminal.backend ssh       # リモートサーバー

Step 5: Connect Messaging (Optional)

Telegram、Discord、Slack、または別のプラットフォームからHermesに話しかけたい場合:

hermes gateway setup    # 対話的な設定
hermes gateway start    # ゲートウェイ処理を開始

Useful Commands to Know

Hermesが動き始めたら、日々必要になるほとんどはこれらのコマンドでカバーできます:

hermes              # 会話を開始
hermes -c           # 最後のセッションを再開
hermes model        # LLMプロバイダー/モデルを切り替え
hermes tools        # 有効にするツールを設定
hermes doctor       # 問題を診断
hermes update       # 最新バージョンに更新
hermes gateway      # メッセージングプラットフォームを管理
hermes skills search <query>   # インストールするスキルを探す

会話の中では、/ と入力すると利用可能なスラッシュコマンドがすべて表示されます。いくつかの注目コマンド:

/model              # 会話の途中でモデルを切り替え
/tools              # 利用可能なツールを一覧表示
/skills             # スキルを閲覧し管理する
/personality pirate # 楽しいパーソナリティを試す
/save               # 会話を保存
/compress           # 長くなったときにコンテキストを圧縮

Adding MCP Servers

MCP経由で外部ツールを接続するには、~/.hermes/config.yaml にエントリを追加します:

mcp_servers:
  github:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"

これにより、エージェントはそのMCPサーバーが公開しているツールにアクセスできるようになります。

Setting Up Scheduled Tasks

Hermesには、結果を接続済みの任意のプラットフォームへ配信する組み込みのcronスケジューラがあります。タスクは自然言語で設定します:

> 毎朝9時にHacker NewsでAI関連のニュースを確認し、Telegramで要約を送ってください。

エージェントは、ゲートウェイ経由で自動実行されるcronジョブを作成します。crontabの編集は不要です。

Contributing

プロジェクトに貢献したい場合は、以下が開発セットアップです:

git clone https://github.com/NousResearch/hermes-agent.git
cd hermes-agent
git submodule update --init mini-swe-agent
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv .venv --python 3.11
source .venv/bin/activate
uv pip install -e "[all,dev]"
uv pip install -e "./mini-swe-agent"
python -m pytest tests/ -q

mini-swe-agent サブモジュールは必須のターミナルバックエンドです。RL/トレーニング側で作業したい場合は、tinker-atropos サブモジュールもあわせて初期化してください。

What It Is Not

Hermes Agentはマネージドサービスではありません。サインアップするホスティング版は用意されていません。自分のマシンまたはサーバーで動かし、自分のAPIキーを持ち込み、データも自分で管理します。もしそれが望みであれば、使うほど賢くなるエージェントを完全にコントロールできるので、ぜひ試してみる価値があります。

また、単純なチャットボットのラッパーでもありません。コードベースには複数のAPIモード、プロンプトキャッシュと圧縮、ゲートウェイ固有のセッション管理、RL環境のインフラ、そしてACP経由のエディタ連携レイヤが含まれています。実際のアーキテクチャの奥行きがある、かなり大きなプロジェクトです。

Links

広告