
Hermes Agent 多轮工具调用循环怎么跑通的一份完整链路指南【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent当你把查资料→读文件→改代码→验证这类任务丢给 AI 时一次模型输出永远不够得让模型发起工具调用你执行完把结果塞回去再让它接着想下一轮。Hermes Agent 这个 Agent 循环框架做的核心事情就是把这条链路变成自动转起来的闭环你不用手写任何调度代码。它是什么解决什么问题说白了它是一个基于 OpenAI 工具调用规范搭建的 AI 代理框架底层服务器可以是 OpenAI、VLLM、SGLang、OpenRouter也可以是你自己搭的 endpoint循环逻辑不绑死任何一家厂商换个地址就能切。请求进来后先做什么拼出规范请求用户消息一进来主入口 run_conversation 先把当前对话历史、工具定义清单、温度等参数打包成一份符合 OpenAI 规范的 API 请求。工具定义相当于告诉模型你有哪些函数能调、参数长什么样历史消息里带着上一轮的工具结果。连非 OpenAI 协议的服务时底下的传输层会把同一份请求翻译成对应格式再发出去。响应回来后先抽推理再判工具调用响应回来循环会先把推理内容抽出来——不同提供商藏在不同地方有的放 reasoning_content 字段有的放 reasoningOpenRouter 风格则是 reasoning_details。统一抽出来之后每一轮的中间思考都被记录下来排查问题时不用猜模型当时在想什么。接下来它检查响应里有没有工具调用。没有说明模型认为任务做完了循环停止有就进入工具执行阶段。工具在线程池里排队执行每个工具调用都会先验证名字是否在注册表里再解析 JSON 参数然后交给线程池执行线程数按当前批次的调用量动态调整。拆开来看这么设计有两个动机工具大多是网络请求、文件读写这类 IO 密集操作多线程互不阻塞一个慢工具不会卡死整轮工具往往是第三方代码独立线程执行能把异常隔离在主循环之外。某次执行抛错错误会被捕获写进结果列表模型下一轮会收到这个工具失败了而不是整个对话直接崩掉。没有工具调用时循环怎么停循环一直转直到两个条件之一成立模型不再发起工具调用属于自然完成或者调用次数达到 max_iterations 上限。触顶时框架不会直接掐断而是追加一条提示让模型先总结收尾最终输出至少能说明做到哪一步、还剩什么。结果为什么要打包成一个对象循环结束后所有信息被装进同一个结果对象完整对话历史、用掉的轮数、是否自然结束、每轮推理内容、工具报错列表。比起只回一个字符串这样你在出问题时能定位到具体哪一轮、哪个工具这些元数据也方便后续做性能分析。上手指引加一个自定义工具想扩一个新工具照项目里工具注册的现有模式写声明工具名和参数 schema注册进工具表下一轮请求它会自动出现在工具定义里。主链路源码看 会话循环实现线程池分发逻辑在 工具执行器从这两个文件入手最省力。【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考