Hermes Agent Wiki 非公式・日本語wiki

コードベース所有マップ

Hermes は大きなリポジトリですが、たいていの変更はちょうど一つのサブシステムだけに触れます。このページは、各サブシステムがどのソースディレクトリを持ち、それを変更する前にどのドキュメントを読めばよいかを対応づけたものです。読み始めるべきドキュメント、変更を入れるべき場所、そして対応するテストディレクトリを探すのに使ってください(テストはソースと同じ形に並んでいます。tools/ のコードは tests/tools/ で、プラグインは tests/plugins/<type>/ でテストされます)。

サブシステム ソースディレクトリ ドキュメントの入口
エージェントの中核(ループ、トランスポート、圧縮) agent/, run_agent.py エージェントループ, コンテキストの圧縮とキャッシュ
プロンプトの組み立て agent/prompt_builder.py, agent/system_prompt.py プロンプトの組み立て
モデルプロバイダとトランスポート agent/transports/, plugins/model-providers/, hermes_cli/models.py プロバイダを追加する, モデルプロバイダプラグイン, プロバイダのランタイム
組み込みツール tools/ ツールを追加する, ツールのランタイム
メッセージングのゲートウェイ gateway/, plugins/platforms/ ゲートウェイの内部構造, プラットフォームアダプタを追加する
CLI hermes_cli/ CLI を拡張する
プラグインの仕組み plugins/ Hermes プラグインを作る
スキル(同梱・追加) skills/, optional-skills/ スキルを作る
cron / 定時実行のジョブ cron/ cron の内部構造
セッションの保存 hermes_state.py, hermes_state_*.py セッションの保存
ブラウザまわり一式 tools/browser_tool.py, tools/browser_supervisor.py, tools/browser_cdp_tool.py ブラウザのスーパーバイザ
送信ファイアウォール agent/proxy_sources/iron_proxy.py 送信プロキシの内部構造
ACP(IDE 連携) acp_adapter/ ACP の内部構造
デスクトップアプリ apps/desktop/ デスクトップ用プラグイン SDK, worktree UI の開発
TUI ui-tui/, tui_gateway/ worktree UI の開発
ドキュメントサイト website/ 開発に参加する
テスト tests/, tests-js/ 開発に参加する → 提出の前に

このマップから自然に導かれる決まりがいくつかあります。

  • 変更はそのサブシステムの中で完結させます。 中核のファイルを書き換えないと成り立たないプラグインは、設計が怪しいというサインです。代わりに、汎用のプラグイン用インターフェースのほうを広げてください(リポジトリの AGENTS.md にある変更の評価基準を参照)。
  • 触ったソースディレクトリに対応するテストディレクトリを、そのつど丸ごと走らせます。 plugins/platforms/telegram/ を変更したら、たまたま思いついたテストファイルだけでなく tests/plugins/platforms/ 全体が緑になっている必要があります。
  • 二つのサブシステムにまたがるときは、狭いほうが変更を引き受けます。 エージェントの中核に分岐を足すより、アダプタやプラグインの側で直すほうを選んでください。中核は細くくびれた部分であり、そこへ足したものの代金は API 呼び出しのたびに支払うことになります。