Skip to content

エントリと起動フロー

源码版本v2026.7.20

職務

hermes コマンド / ゲートウェイのメッセージ一つ」を「メモリ上で動く agent」に変える。エントリ層は意図的に薄く作ってある——run_agent.py は転送と CLI 組み立てしか扱わず、本当の依存注入は agent_init.py にある。これによりゲートウェイ、TUI、CLI、ACP、cron が同じ初期化パスを共有できる。

主要ファイル

データフロー

  1. ユーザーが hermes(CLI)またはゲートウェイ main() を起動(run_agent.py:22965)。
  2. プロセスは hermes_bootstrap.py でパス/環境を修正してから、CLI main:6434 またはゲートウェイループに入る。
  3. AIAgent:400 インスタンスを生成、__init__init_agent:276 に転送。
  4. init_agent は provider、toolsets、圧縮閾値、カスタム provider の extra_body などを解析し、実行可能な agent オブジェクトを組み立てる。
  5. ゲートウェイは gateway/run.pyGatewayRunner でこの agent を保持し、入站メッセージごとに run_conversation:588 に渡す。

まとめ

エントリ層は「転送 + 組み立て」であり、業務ロジックを持たない。AIAgent は薄い殻、init_agent こそが組み立ての中心。この流れを理解すれば、次のエージェント主ループは「メッセージを投げられた後何をするか」に過ぎない。

非公式コミュニティ学習サイト。MIT ライセンスの NousResearch/hermes-agent ソースに基づく。