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 源码为依据。