Hermes Agent 实战笔记:跟一条消息走完工具调用循环的每一轮
【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent
Hermes Agent 是一个可接多种模型后端的 AI 代理框架(Agent 框架),替你跑完"模型反复调工具直到任务完成"这段循环。读完这篇,你能沿着一轮轮请求说清它每步干了什么、上一步结果靠什么传回去。
没有它,你要自己拼三件事
不用这个循环,你就得自己写:把消息历史、系统提示和工具定义塞进一次请求;判断响应里模型想不想调工具,想就执行、把结果写回历史;工具报错时还得决定继续还是终止。若拿 shell 脚本硬拼,提示词接龙会更难维护。Hermes Agent 把这三件事压成一次对话——任务丢进去,后面几轮它自己跑。
把循环拆成三个零件
负责把每轮推进下去的调度台:agent/conversation_loop.py 里的run_conversation。输入是你这条消息加既有历史、系统提示、工具定义;输出是一个结果字典,含最终回复、完整对话历史、API 调用次数。出问题时:请求失败你会看到重试提示在滚,上下文太长时它先压缩再继续,不会直接崩。
负责把工具真正跑掉的执行窗口:agent/tool_executor.py。输入是模型一次响应里带出的多个工具调用(tool call);输出是每个调用一条结果消息。同批调用各占一条线程,池子大小按批内数量现场定,一个卡住不牵连其他;某调用报错,错误文本只落进它自己的结果位,循环照常转。
负责给整轮记账的结算员:agent/turn_finalizer.py。输入是循环停下那一刻的全部状态;输出是落库的会话记录和用量统计,轨迹导出也从这份数据取数。想弄清"它为什么多跑了两轮",查它记的 API 调用次数最准。
跟一条 TODO 消息走三轮
以"把仓库里的 TODO 整理成清单"为线索。开场时调度台先换好凭证、重拼系统提示,看一眼上下文是不是快挤到压缩阈值,然后发出第一个请求。
第 1 轮:模型回答"先调搜索工具"。这条助手消息先被记进历史,工具名过一遍启用列表、参数解析完,才交给执行窗口;搜索吐出的命中清单包成工具结果消息,追加回历史。
模型是靠下一次请求里的完整历史"看到"这步输出的——工具结果就写在账本最新一页。
第 2 轮:模型读第一个命中文件,确认那是真 TODO 不是示例代码。同样的验证、执行、回填。
第 3 轮:响应里再没有工具调用,模型直接吐出清单。循环就此退出,最终回复和你的消息一起落库,结算员接手记账。若任务总也做不完,轮数撞上 max_iterations 上限,循环停住并告诉你预算已用完。
什么人值得装,装完第一分钟做什么
如果你在跑长任务——定时日报、夜间备份——它适合你,项目自带 cron 定时调度,跑完能把结果投到 Telegram、Slack 这类平台。如果你想要一个能读写文件、跑命令的本地代理,容器后端可以把写盘风险圈起来。如果你是想研究 Agent 循环怎么写的开发者,这里没有黑盒,每一轮都能打断点。
最小上手路径:装完先跑hermes setup走一遍向导,再执行hermes进终端界面,丢一句"列出当前目录结构",屏幕上工具被逐个调用的画面,就是上一节三轮的实时版。换模型后端改配置就行,不用动代码。
调度台、执行窗口、结算员——把这三处读懂,剩下的压缩、重试、计费模块,都是挂在这条主线上等着被调用的插件。想深入哪块,顺着结果字典里的字段找对应文件就行。
【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考