Hermes Agent 自定义工具集实战:一个工具从注册到被 Agent 调用的全链路

发布时间:2026/8/28 16:19:16

Hermes Agent 自定义工具集实战:一个工具从注册到被 Agent 调用的全链路
Hermes Agent 自定义工具集实战一个工具从注册到被 Agent 调用的全链路【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent你想让 Agent 批量改写文档大小写翻遍内置工具没现成的。Hermes Agent 的扩展开发里需求分两层工具Tool是真正干活的函数自定义工具集Toolset决定 Agent 能看见哪些工具。两层分清注册和调试才不乱。心智模型Tool 干活Toolset 发工牌打开toolsets.py所有工具集都挂在同一个TOOLSETS字典上。每个集合就三个字段description写给人和文档看tools列出这个集合直接包含的工具名includes声明它还要把哪些别的工具集合并进来。web: { description: Web research and content extraction, tools: [web_search, web_extract], includes: [] }可以把工具集想成文件夹tools是放进去的文件includes是软链接指向另一个文件夹展开时一起算进来。另外还有一个_HERMES_CORE_TOOLS它是所有平台都默认继承的公共基础包各平台工具集在它之上做加减。一条主线从写函数到 Agent 真正调起它先写处理函数。新建tools/text_transform.py实现真正干活的逻辑。Hermes 的硬性约定是所有 handler 必须返回 JSON 字符串注册层负责 schema 收集、分发、可用性检查和错误包装。import json def text_transform(text: str, transform_type: str uppercase) - str: if transform_type uppercase: return json.dumps({success: True, data: text.upper()}) return json.dumps({success: True, data: text.lower()})这段代码里最值得记住的是返回值必须是 JSON 字符串注册系统只替你兜错误包装不兜数据格式。把参数描述成 JSON Schema然后注册。Schema 就是模型看到的函数说明书name / description / parameters一样都不能少。from tools.registry import registry registry.register( nametext_transform, toolsettext_processing, schema{name: text_transform, description: 转换文本大小写, parameters: {type: object, properties: {text: {type: string}, transform_type: {type: string, enum: [uppercase, lowercase]}}, required: [text]}}, handlerlambda args, **kw: text_transform(args.get(text, ), args.get(transform_type, uppercase)), )这段代码里最值得记住的是tools/下任何带顶层registry.register()调用的 .py 文件都会被自动发现并导入但自动发现只注册 schema不代表工具已经暴露给 Agent。把工具挂进工具集。打开toolsets.py把工具名写进某个集合的tools里——这是唯一必须手动做的装配步骤。TOOLSETS { text_processing: { description: 文本处理工具集, tools: [text_transform], includes: [web] }, }这段代码里最值得记住的是工具名没出现在任何 toolset 里Agent 就永远看不见它挂集合不是可选项。验证并启动。先跑校验函数确认名字和依赖都没拼错再用命令行指定工具集起会话from toolsets import validate_toolset validate_toolset(text_processing)hermes run --toolset text_processing这段代码里最值得记住的是validate 失败十有八九是工具名拼错或者includes指向了一个不存在的集合名。进阶玩法与排坑清单运行时创建工具集不改文件也能加不想为了一个临时组合去改toolsets.py再重启create_custom_toolset可以在运行时直接挂一个动态工具集tools和includes的写法与静态定义完全一致会话结束即失效适合做实验性组合。from toolsets import create_custom_toolset create_custom_toolset( namemy_dynamic_toolset, description运行时创建的动态工具集, tools[text_transform], includes[web], )先问一句工具到底在不在症状是 Agent 报工具不存在。原因多半不是没注册而是check_fn或requires_env没满足——比如工具依赖的 API key 没配。解法调一次registry.check_tool_availability()它会分开返回可用和不可用的工具两组名字缺什么一目了然。用依赖树排查 toolset includes 指向问题症状是工具明明注册了某个平台下却用不了。原因通常是 includes 链条上有一环指错了集合名或者被平台配置关掉了。解法print_toolset_tree(text_processing)会把依赖树递归打出来includes 断在哪一层、哪些工具没被展开看一眼树就清楚。 工具注册了为什么 Agent 看不见症状registry.register()执行成功、validate 也过了Agent 就是不调用。原因注册只把 schema 放进注册表暴露给 Agent 的开关在工具集那一层。解法确认工具名出现在某个 toolset 的tools里如果工具只给自己用更干净的路是走插件——在~/.hermes/plugins/name/__init__.py里用ctx.register_tool(...)注册插件工具集会被自动发现完全不用动核心文件。收尾速查表与延伸入口 不知道往哪下手时先查这张表我想做什么该改哪个文件调哪个函数写一个新核心工具tools/your_tool.pyregistry.register(...)把工具暴露给 Agenttoolsets.py写进TOOLSETS的tools校验工具集定义toolsets.pyvalidate_toolset(name)运行时动态建工具集无需改文件create_custom_toolset(...)按平台开关工具config.yaml或 CLIhermes tools延伸入口从toolsets.py和tools/registry.py读起回归用例在tests/test_toolsets.py。工具是肌肉工具集是神经系统——挂对位置Agent 才会真的伸手去用。【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

AI“病理性自信”如何带偏决策?构建可核查的AI治理机制

AI“病理性自信”如何带偏决策?构建可核查的AI治理机制

2026/8/28 16:19:16

一个靠 AI 日报做经营判断的管理层,最近收到一份这样的内容:模型用极其肯定的语气给出了某条产品线的利润预测,还附带了一个看起来完整的归因分析。决策会开到一半,数据团队才发现,报告里引用的“内部销售增速”来自模…

AI产业链拆解:算力、模型、平台与应用层的盈利机会与工程实践

AI产业链拆解:算力、模型、平台与应用层的盈利机会与工程实践

2026/8/28 16:09:16

2024 年至今,身边讨论 AI 的人越来越多。但比起“大模型又能写诗了”“哪个 Agent 又上线了”,办公室里更常听到的其实是另一句: AI 这么火,钱到底被谁赚走了? 这个问题看似是个商业话题,但对于做技术的…

Python量化复盘:事件驱动低吸策略与AI再平衡实战

Python量化复盘:事件驱动低吸策略与AI再平衡实战

2026/8/28 16:09:16

在过去一年的投资复盘工作中,我遇到一个比较典型的问题:市场出现系统性下跌时,按照“事件驱动型低吸”思路买入的资产,到一年后到底赚没赚钱?如果同期把仓位重新分配到 AI 相关方向,收益结构又会有怎样的变…

张一鸣重仓Seed团队:字节跳动AI大模型战略的底层逻辑

张一鸣重仓Seed团队:字节跳动AI大模型战略的底层逻辑

2026/8/28 17:19:21

张一鸣把一半时间放在 Seed 团队这件事,看似是个人精力分配,本质上是在给字节跳动重新划定技术路线。创始人把时间投到哪里,哪里就是公司接下来十年的押注点。Seed 不是普通的业务部门,它承担的是大模型底座、AI 应用层和前沿算法…

基于微信小程序云开发的失物招领系统:从零到一实战指南

基于微信小程序云开发的失物招领系统:从零到一实战指南

2026/8/28 17:19:21

简介:云开发是一种将后端服务(如数据库、存储、计算)封装为即用型API的云计算模式,它通过提供免运维、弹性伸缩的云端资源,让开发者能聚焦于业务逻辑本身。其核心原理在于将传统服务器架构中的基础设施抽象为服务&…

AI软件工厂设计模式:构建可替换、可观察的AI应用

AI软件工厂设计模式:构建可替换、可观察的AI应用

2026/8/28 17:19:21

AI软件工厂设计模式这个话题,最近在技术社区里讨论明显变多。我把它拆成一条主线:AI并没有让设计模式失效,反而让设计模式重新回到工程实践的中心。很多人误以为设计模式是Java时代的产物,既然大模型能直接生成代码,还…

管道自动焊机十大品牌盘点:国产装备加速突围,多场景选型指南

管道自动焊机十大品牌盘点:国产装备加速突围,多场景选型指南

2026/8/28 17:19:21

导语随着化工、医药、液冷数据中心、航空、市政水处理、长输油气等行业管路建设标准持续提升,管道自动焊机逐步替代传统人工氩弧焊,成为保障焊缝探伤合格率、稳定施工产能的核心装备。目前市场品牌分为进口高端精密管线设备、国产工程管道设备、国产洁净…

视频世界模型如何突破像素限制?SCoPE射线空间重写位置关系

视频世界模型如何突破像素限制?SCoPE射线空间重写位置关系

2026/8/28 17:19:21

视频世界模型近年来成为生成式 AI 里被讨论最多也最容易被误解的方向之一。它不只是视频生成模型,还承担着预测物理运动、理解空间关系、模拟交互结果的任务。比如,给定一段车辆行驶视频,视频世界模型要能预测下一秒障碍物是否靠近&#xff1…

win10打印机不能共享报0x0000011b/0x00000709修复工具合集分享 ,亲测解决Windows打印机共享报错

win10打印机不能共享报0x0000011b/0x00000709修复工具合集分享 ,亲测解决Windows打印机共享报错

2026/8/28 17:09:18

先说说我的情况。公司大概十几个人,两台共享打印机,一台接在Win10的台式机上,一台接在Win11的笔记本上。本来用着一直正常,去年开始,陆陆续续有同事反映连不上打印机。 最常见的报错就是0x00000709,还有0x…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/27 11:10:02

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/27 7:25:23

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/28 7:34:42

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

基于Claude Code的开源AI求职框架:从职位搜索到Offer的全自动化闭环

基于Claude Code的开源AI求职框架:从职位搜索到Offer的全自动化闭环

2026/8/28 0:08:32

当AI助手能够独立完成从职位匹配、简历定制到面试准备的全链路求职流程时,求职不再是一场信息战,而是一场工程化战役。框架概述:本地运行的AI求职引擎这是一个构建在Claude Code之上的开源AI求职框架,核心理念是"在工作者的机…

Godot 4 仿 agar.io:相机缩放被 max_zoom 卡死,窗口越大球越小的根因与修复

Godot 4 仿 agar.io:相机缩放被 max_zoom 卡死,窗口越大球越小的根因与修复

2026/8/28 0:08:32

1. 问题现象 在 Godot 4 仿 agar.io 的 2D 项目中,相机缩放设计为「由球组整体尺寸决定」,世界可见高度恒定,窗口只作为视口裁剪。默认小窗口 1280x720 时相机高度正常;但窗口最大化到 2940x1912 后,视角被明显拉远、…

从软件测试大赛到实战:Java+Selenium自动化测试进阶指南

从软件测试大赛到实战:Java+Selenium自动化测试进阶指南

2026/8/28 0:08:32

1. 缘起:从校园到赛场,我的软件测试之路几年前,我还是一个在校园里对着Java课本和“Hello World”程序挠头的普通学生。软件测试对我来说,只是一个在开发流程末尾、用鼠标点点按钮的模糊概念。直到我偶然在学校的公告栏上看到了“…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/28 7:35:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/28 7:34:51

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/28 7:34:35

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…