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 才是裝配中心。理解這條鏈路後,後面的Agent 主迴圈就是「被餵訊息後做什麼」。

非官方社群學習站,內容以 MIT 授權的 NousResearch/hermes-agent 原始碼為依據。