尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Hermes Agent 多轮工具调用循环完整拆解:一次请求到结果返回都发生了什么

Hermes Agent 多轮工具调用循环完整拆解:一次请求到结果返回都发生了什么 Hermes Agent 多轮工具调用循环完整拆解一次请求到结果返回都发生了什么【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent如果你写过让模型自己调工具、调完再回话这类 Agent多半踩过两个坑一是每家推理服务返回的字段格式不统一二是慢工具把整个循环卡死。Hermes Agent 就是冲着这两个问题来的——它用 OpenAI 工具调用规范跑多轮循环上游可以接 OpenAI、VLLM、SGLang、OpenRouter 等不同后端。本文适合准备接入或二次开发它的开发者带你把核心机制一次看透。循环的心脏HermesAgentLoop到底在管什么你可以把HermesAgentLoop理解成一条流水线的主控台服务器连接、工具模式、最大轮次、温度参数全部在初始化时喂给它之后它负责跑完整个工具调用循环直到任务结束或轮次打满。它真正干的事可以拆成四件配置并持有与后端服务器的连接参数驱动多轮工具调用逐轮更新对话历史把每轮工具结果合并回上下文顺手收集执行元数据和错误方便事后复盘AgentResult调试时你最想要的那份事故报告循环跑完后Hermes Agent 不会只丢给你一句完成了而是返回一个AgentResult对象。你可以把它理解成一份结构化的执行报告调试时基本看它就够了。报告字段你能拿它干什么完整对话历史逐步回放模型和工具的交互轮次用量判断任务复杂度、排查死循环是否自然结束区分模型干完了还是被轮次上限打断每轮推理内容核对模型每一步的中间思考工具错误列表直接定位哪个工具挂了管理状态如适用恢复长任务时的上下文衔接换句话说性能分析和定位问题大部分时候翻这份对象比翻日志快得多。3 步看懂一轮工具调用是怎么跑起来的整个循环在run方法里推进一轮之内大致是这样一条线按当前对话状态组装符合 OpenAI 规范的请求消息历史、工具定义、温度等参数一并打包发给后端。请求本身失败的话错误会被记下来循环提前结束并返回当前结果。解析响应。推理内容这一步有点讲究——不同提供商埋的位置不一样有的放在reasoning_content有的用reasoningOpenRouter 风格则藏在reasoning_details循环里都做了兼容提取。如果响应里带工具调用就先进对话历史再逐个执行先校验工具名合法性再解析参数然后丢进线程池跑执行中的异常被捕获记录最后结果写回对话进入下一轮。响应里没有工具调用说明模型认为任务完成了循环正常收口撞上最大轮次也会同样退出。关于工具执行有两个值得注意的设计。工具全部跑在线程池里某个慢工具不会把主循环拖死池子大小还能通过resize_tool_pool按负载动态调整高峰期扩、空闲期缩这套思路对接入耗时工具比如跑测试、渲染资源的场景很关键。常见问题工具报错先查什么、多后端靠什么兼容先说报错。因为工具错误是逐条收进错误列表的排查时优先看AgentResult里的错误条目再对照那一轮的工具参数——十有八九是参数解析或工具名不匹配其次才是工具内部异常。再说兼容。Hermes Agent 对上游的差异做了两层吸收协议层统一走 OpenAI 工具调用规范后端层只要求服务能响应这套规范所以 OpenAI、VLLM、SGLang、OpenRouter 都能直接接。新工具或新服务的集成也只需按工具模式注册进循环不用碰主控逻辑。下一步从读懂到跑通建议你按这个顺序上手先打开 核心循环源码 对照本文的一轮三步走读一遍再用一次真实的失败请求观察AgentResult里各字段的实际取值。把这两步做完你就基本具备了改造循环——比如加自定义终止条件或接新的后端——的全部上下文。【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表