news 2026/8/28 15:15:38

Hermes Agent 工具调用循环完全拆解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Hermes Agent 工具调用循环完全拆解

Hermes Agent 工具调用循环完全拆解

【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent

Hermes Agent 是一款自进化 AI 代理框架:它把跑过的复杂任务沉淀成技能,让 Hermes Agent 工具调用随使用次数增长而越来越省。

Hermes Agent 工具调用与多平台网关架构示意

一个会"长记性"的代理,定位先说清

多数 AI 工具助手的记忆是会话级的:窗口一关,学到的东西就清零。Hermes Agent 反着来——它内置一套学习闭环:完成复杂任务后自动把做法写成可复用的技能,下次直接调用而不再从头推理;跨会话还能检索自己过去的对话,逐步拼出对你的使用画像。

部署上它也不挑地方:一个网关进程(后台常驻,对接所有聊天平台)就能让你从 Telegram、Discord、Slack、CLI 同时找到同一个代理,而它实际干活的可能是台 5 美元的 VPS 或 serverless 容器。模型侧没有锁定,hermes model一条命令切换提供商,不用改任何代码。

15 种失败策略:错误分类器如何决定"下一步怎么办"

API 调用总会失败,问题是怎么恢复。Hermes 的做法是把恢复策略写进一个枚举,由classify_api_error在出错瞬间对号入座:

rate_limit = "rate_limit" # 429 — 退避后换凭据重试 upstream_rate_limit = "upstream_rate_limit" # 聚合方限流 — 换模型,不换凭据 ssl_cert_verification = "ssl_cert_verification" # 重试必然复现 — 快速失败并给提示

为什么值得细看?因为它区分了两种"长得一样"的限流:你自己的配额打满,退避再试;聚合方上游被限,你的凭据是健康的,直接降级到别的模型。TLS 证书校验失败这类重试必然复现的错误,系统选择快速失败并给出可操作提示,而不是烧掉重试次数。完整清单见 agent/error_classifier.py。

为什么用线程池跑工具,而不是一股脑并发

一批工具调用怎么调度?Hermes 的答案是线程池,而且每个 worker 都是 daemon 线程(进程退出时不会等它善后)。

选择线程池而非协程,是因为工具调用大量涉及子进程和外部脚本,线程能把风险隔离:单个卡死的工具只会卡死自己那条 worker 线程,主循环不被拖住。并发度也不是拍脑袋定的——每批调用按负载动态计算 worker 数,图片生成类工具还会单独压并发上限。另外有个小细节:像clarify这类需要问你问题的交互工具被放进禁并发名单,单独执行并等你的回复,避免"边跑边问"的混乱。

调度逻辑都在 agent/tool_executor.py,并发策略辅助判断在同目录的 agent/tool_dispatch_helpers.py。

还有一个容易忽略的兜底:上下文逼近模型窗口上限时,agent/conversation_compression.py 会把较早的历史压成摘要而不是直接报错。这就是 Hermes Agent 工具调用循环在多轮长任务里不崩的底层原因。

三分钟跑起来:从 clone 到第一句对话

上手路径很短:

git clone https://gitcode.com/GitHub_Trending/he/hermes-agent curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash source ~/.bashrc hermes model # 选提供商和模型 hermes tools # 勾选要启用的工具

跑完hermes就能进入终端界面开始对话,多行编辑、斜杠命令补全、流式工具输出都是自带的。配置项用hermes config set单条修改,遇到不对劲先跑hermes doctor,它会按类别把环境问题列出来。

想继续深挖,四个入口比读主文件更高效:错误分类器决定"失败后走哪条路",工具执行器决定"并发怎么切",会话压缩决定"长对话怎么续",而 agent/conversation_loop.py 里的run_conversation是串起这一切的主循环——它约四千字节级的体量,本身就是这套设计取舍最好的注脚。

【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

后端并发服务的组件拆分

后端并发服务的组件拆分明确问题边界 “最小可运行架构与组件职责拆分”放在Go 后端服务开发与并发编程模型解析中讨论,重点不是堆砌工具名,而是让HTTP 入口、goroutine、工作队列、下游客户端在明确约束下可验证地协同工作。本文只描述可以落地的检查和…

作者头像 李华
网站建设 2026/8/28 15:07:52

ComfyUI 双卡能把采样快多少?多 GPU 配置实战指南

ComfyUI 双卡能把采样快多少?多 GPU 配置实战指南 【免费下载链接】ComfyUI The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface. 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI 一张 10241024…

作者头像 李华
网站建设 2026/8/28 15:06:50

软件定义汽车边缘节点电机控制:NXP S32平台方案解析

你过去几年如果一直在做车规级嵌入式开发,应该能清晰感受到一个拐点:主机厂不再满足于“一车几十个 ECU 各管一摊”的老架构,而是想尽办法把域控制器、中央计算平台往整车架构里塞,同时把原来那些固定功能的 ECU 重新定义为“边缘…

作者头像 李华