news 2026/7/5 14:19:50

收藏!小白程序员必看:Hermes Agent 双 Loop 源码深度解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
收藏!小白程序员必看:Hermes Agent 双 Loop 源码深度解析

Hermes Agent 源码中存在两套 Agent Loop:AIAgent 和 HermesAgentLoop。AIAgent 面向用户交互,处理流式输出、重试、中断等复杂交互逻辑;HermesAgentLoop 面向 RL 训练,关注异步、并发和训练数据生成。两者拆分是为了适应不同场景需求,复用工具调度和基础设施。该设计避免循环复杂度过高,提升系统可靠性和效率,为 Agent 架构设计提供实用参考。

Hermes Agent 源码中有个地方很难忽略:源码中同时存在两套 Agent Loop。

一是 run_agent.py 的 AIAgent 。

一是 agent_loop.py的 HermesAgentLoop。前者代码体量很大,后者明显轻得多。

深入分析源码就会发现两套 Loop 确实都在做“模型调工具再继续推理”这件事,但服务的运行场景完全不同,控制逻辑也不是一个量级。

先介绍 Agent Loop ,Hermes 里的 Loop,核心就是下面这四步:

1. **把当前消息发给 LLM** 2. **LLM 返回文本和可选的 tool calls** 3. **如果有工具调用,就执行工具并把结果追加回消息列表** 4. **如果没有工具调用,就认为任务完成,退出循环**

这四步是Agent Loop的基本流程,但这四步之外还包很多逻辑。用户交互要处理流式输出、重试、打断、上下文压缩;训练 rollout 则关心 async、token/logprobs、reward 计算和并发调度。Hermes 没把这些需求硬塞进同一个大循环里,而是直接拆成了两套实现Agent Loop:

1. **面向用户实时交互的 `AIAgent`** 2. **面向 RL rollout 的 `HermesAgentLoop`**

拆分不是为了拆分而拆分,根本是因为两个场景本来就不是同一个问题。

1 用于用户交互,用于RL训练

AIAgent对应的是 CLI、Gateway、Telegram、Discord 这类直接面向人的入口。用户在前台等回复,这条链路不是只追求“能跑通”,还需要把交互过程本身兜住。源码里能直接看到这类需求留下来的痕迹:流式输出、Provider 容错、上下文压缩、用户中断、预算耗尽后的 Grace Call、子 Agent 委派、插件钩子,基本都堆在这条路径上。

AIAgent 的复杂度,不是来自“调模型”这一步,而是来自调模型失败以后怎么办、用户半路打断怎么办、上下文塞不下了怎么办。也正因为这样,这个循环体才会达到数千行。它已不是一个单纯的推理循环,而是一条完整的交互控制链。

HermesAgentLoop而完全是另一回事。它不面向用户,而是被 Atropos 调起来做 rollout。这里没有人盯着屏幕,也不需要跨 Provider 兜底。训练场景真正看重的是另外几件事:

必须是 async,才能并发跑大量 rollout 必须拿到真实 token、logprobs、masks,供 GRPO 训练使用 必须把工具执行和 reward 验证放在同一个 sandbox 上下文里 必须保持循环本身足够轻,避免把交互系统里的复杂分支带进训练路径

这也是为什么HermesAgentLoop看起来简洁很多的原因。主要是负责把一次 rollout 跑完整,并且把训练真正要用的数据带出来。

在训练链路,HermesAgentLoop关键不在“它也会调工具”,而在于它站在一条完整的 RL 数据生产链上。

单次 rollout 生命周期 dataset item │ ▼ format_prompt() │ ▼ HermesAgentLoop.run() │ ├─ server.chat_completion / managed generate ├─ parse tool calls ├─ execute tools └─ 产出 AgentResult + managed_state │ ▼ ToolContext.compute_reward() │ └─ 在同一个 sandbox 中验证结果,得到 reward │ ▼ ScoredDataItem(tokens, masks, scores) │ ▼ GRPO trainer 更新模型

2

不合成一个超级 Loop

AIAgent这条路径存在很多逻辑:流式处理、空响应恢复、Provider 轮转、上下文压缩,这些逻辑对用户交互很重要,但对 rollout 来说并无多大作用。AIAgent这套控制流也不适合直接嵌进 Atropos 的异步并发环境;训练真正要的managed_state、token 级数据和ToolContext,也不是它天然会产出的东西。

HermesAgentLoop拿去服务用户也不现实。它没有流式输出,没有那套完整的错误恢复,也没有 Grace Call 和子 Agent 委派。跑 benchmark 或 rollout 没问题,放到产品入口里就太薄了。

从上面的分析也可以看到这两个Loop的业务流程,完全不一样,强制融合在一起会导致Loop复杂度过高,可靠性降低。

3

复用的不是循环体,是工具调度层

Hermes Agent 并没有把两套系统彻底割裂。它复用的是更底层的能力,如handle_function_call()这一层的工具调度,以及工具结果预算、持久化这些基础设施。

复用点不在 Loop 本身,而在工具执行链路。

这个切分比“有没有统一框架”更重要。Agent 系统里真正容易失控的,往往不是某个工具实现,而是围绕工具调用长出来的控制流:什么时候继续,什么时候停,错误怎么恢复,上下文什么时候压,结果怎么进入训练信号。Hermes 的处理方式很直接:不同场景用不同的 loop policy,能共享的则压到更下面一层去共享。

4

写在最后

很多时候设计 Agent 架构时,天然会想先抽一个“统一循环”。Hermes 这套实现给了一个很实用的反例:只要场景的目标函数已经变了,循环层通常就不该强行共用。

用户交互系统优化的是体验、鲁棒性和可恢复性;RL rollout 优化的是吞吐、并发和训练信号精度。它们都叫 Agent Loop,但回答的不是同一个工程问题。

更稳妥的做法,反而是把系统拆成两层:

上层按场景定义各自的循环控制策略 下层复用工具调度、结果存储和共享基础设施

Hermes 的双 Loop 结构,最有参考价值的地方也在这里:它没有执着于“所有能力必须收敛到一个抽象里”,接受业务循环层天然会分叉,把复用点放在了更合适的位置。

最后

如果说程序员已经是高薪职业,那么干AI的程序员,就是高薪中的高薪。

现在的市场,已经用数据给程序员指明了方向:学AI大模型,就是冲刺高薪的最优解!

看着身边越来越多的同行转型大模型、拿到高薪offer,很多人心里都动了心,但真正的难题来了:零基础小白不知道从哪入门?有基础的程序员找不到系统学习路径?实战项目练手无门?面试不知道考什么?

别慌!今天就给大家整理了一份【2026年最新版】AI大模型免费学习资源包,覆盖从入门到实战、从理论到面试、从基础到进阶的全流程,所有资料均已整理归档,无冗余、无套路,免费分享给每一位想抓住AI风口的程序员和小白!

👇👇扫码免费领取全部内容👇👇

1、大模型系统化学习路线

2、大模型学习书籍&文档

3、AI大模型最新行业报告

4、大模型项目实战&配套源码

5、大模型大厂面试真题

四阶段精细化学习规划(附时间节点,可直接照做)

结合上述资源,给大家整理了一份可直接落地的四阶段学习规划,总时长约2个月,小白可循序渐进,程序员可根据自身基础调整节奏,高效掌握大模型核心能力,快速实现从“入门”到“能落地、能面试”的跨越。

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

👇👇扫码免费领取全部内容👇👇

6、这些资料真的有用吗?

这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 14:14:45

ORB-SLAM3 mFeatVec

mFeatVec(Feature Vector,特征向量)的计算原理,简单来说就是:为当前帧图像中的每个特征点,找到它在视觉词汇树中对应的中间节点(叶子节点world ID 上溯4层的节点ID),并将…

作者头像 李华
网站建设 2026/7/5 14:13:05

Java面向对象课程设计:学生成绩管理系统

一、项目简介 本项目为Java面向对象课程设计,由三人小组协作开发学生成绩管理系统。项目遵循多层分层架构思想,基于MySQL实现数据持久化,依托JDBC完成程序与数据库交互,使用Swing搭建可视化GUI界面。项目全程采用Git协同开发&…

作者头像 李华
网站建设 2026/7/5 14:09:54

3步搞定Unity卡通渲染:从零到一掌握URP Toon Shader核心技巧

3步搞定Unity卡通渲染:从零到一掌握URP Toon Shader核心技巧 【免费下载链接】UnityURPToonLitShaderExample A very simple toon lit shader example, for you to learn writing custom lit shader in Unity URP 项目地址: https://gitcode.com/gh_mirrors/un/Un…

作者头像 李华
网站建设 2026/7/5 14:08:35

MC6470与dsPIC33EP运动控制方案在工业自动化中的应用

1. 项目概述:MC6470与dsPIC33EP512MU810的强强联合在工业自动化和高精度运动控制领域,系统响应速度和定位精度始终是工程师们追求的核心指标。最近我在一个智能仓储机器人项目中,尝试将MC6470运动控制器与Microchip的dsPIC33EP512MU810数字信…

作者头像 李华
网站建设 2026/7/5 14:06:52

交互设计方法、核心流程以及常用模型

交互设计方法(Interaction Design Methodology)的核心在于以用户为中心(User-Centered Design, UCD)。它不仅仅是关注界面好看与否,而是关注用户如何与产品互动,以及如何以最高效、最愉悦的方式达成目标。交…

作者头像 李华