Hermes Agent 自定义工具与工具集接线实操

发布时间:2026/10/20 17:21:24

Hermes Agent 自定义工具与工具集接线实操 Hermes Agent 自定义工具与工具集接线实操【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent想让 Agent 多一个能力却不知道从哪个文件下手这篇 Hermes Agent 自定义工具实操带你从一个工具函数写到注册、工具集配置直到 Agent 真正把它调起来。先搞懂这几件事registry.register() 是唯一的注册入口工具实现都放在tools/目录下每个文件顶层调用一次registry.register()就算注册完成。自动发现机制会扫描并导入这些文件你不需要维护任何手动 import 列表。registry.register( nametext_transform, toolsettext_processing, schemaTEXT_TRANSFORM_SCHEMA, handlertext_transform, )你需要知道的是register()只是把工具登记进系统账本Agent 能不能用上它还要看下一步的工具集。工具集是工具对模型可见的开关所有工具集在toolsets.py里用一个TOOLSETS字典集中定义每条有三个字段description、tools、includes。各平台Telegram、Discord、桌面端等各自选一个基础工具集而_HERMES_CORE_TOOLS是所有平台默认继承的公共底座。TOOLSETS { text_processing: { description: 文本处理工具集, tools: [text_transform, word_count], includes: [] } }工具名出现在某个工具集的tools列表里它的 schema 才会进入模型可见范围——这是它生效的硬条件。handler 必须返回 JSON 字符串registry 统一负责分发和错误包装约定很简单def text_transform(args, **kw): ... return json.dumps({success: True, data: result})返回普通字符串或 dict 都会走异常路径统一用json.dumps输出是最省心的做法。动手做从零跑通机制清楚了下面把这条链路完整走一遍。拉下仓库并激活环境预期结果终端里python -c import model_tools不报错。git clone https://gitcode.com/GitHub_Trending/he/hermes-agent cd hermes-agent source .venv/bin/activate仓库自带虚拟环境激活.venv即可不要新建一个。写出工具函数本体预期结果在 Python 交互环境里直接调用text_transform({text: hi})能拿到 JSON 字符串。# tools/text_transform_tool.py import json from tools.registry import registry def text_transform(args, **kw): text args.get(text, ) mode args.get(transform_type, uppercase) result text.upper() if mode uppercase else text.lower() return json.dumps({success: True, data: result}, ensure_asciiFalse)注意 handler 的签名是(args, **kw)args就是模型传来的参数字典不要漏掉它。定义参数 schema 并注册预期结果导入该文件后注册表里能查到text_transform这个工具及其 schema。SCHEMA { name: text_transform, description: 文本大小写转换, parameters: { type: object, properties: { text: {type: string, description: 要转换的文本}, transform_type: { type: string, enum: [uppercase, lowercase]} }, required: [text] } } registry.register(nametext_transform, toolsettext_processing, schemaSCHEMA, handlertext_transform)文件顶层有registry.register()调用就会被自动发现导入这一步不需要额外接线。把工具集写进 toolsets.py预期结果TOOLSETS里出现text_processing键且tools列表包含text_transform。text_processing: { description: 文本处理工具集大小写转换、字数统计, tools: [text_transform, word_count], includes: [] },这是唯一必须手工做的配置步骤自动发现只负责注册 schema把工具暴露给 Agent 的接线是刻意留给你手动做的。跑通一次调用确认 Agent 认得了它预期结果控制台打印出{success: true, data: hermes}。from model_tools import handle_function_call print(handle_function_call( text_transform, {text: HERMES, transform_type: lowercase} ))能打印出 JSON 说明注册、schema、工具集三条线全部接通Agent 在会话中调用时走的就是同一条分发路径。组合与复用单个工具集跑通后组合现成的部分比复制工具省事得多。比如想让文本处理能力和 Web 工具一起出现在内容创作场景里content_creation: { description: 内容创作综合工具集, tools: [text_rewrite], includes: [text_processing, web] }includes按名字引用已有工具集并递归展开新增的工具只需在它归属的工具集里出现一次其余地方全部靠引用复用。跑起来之后验证与排错日常验证用一条命令就够了hermes tools在 curses 界面里确认text_transform是否出现在text_processing工具集下顺便检查它在当前平台的启用状态。现象→ 模型完全感知不到这个工具schema 里找不到它 →原因→ 工具注册了但名字没写进任何工具集的tools列表 →处理→ 把工具名补进 toolsets.py 对应工具集重启会话。现象→ 工具被调用但返回解析异常 →原因→ handler 返回的不是 JSON 字符串 →处理→ 统一改成json.dumps(...)返回注册规范见 AGENTS.md 的 Adding New Tools 一节。现象→hermes tools里工具集是灰色的会话中无法调用 →原因→ 当前平台的工具集被禁用 →处理→ 用hermes tools开启或在config.yaml的tools.platform.enabled列表里加名字。接下来可以探索工具集完整定义与_HERMES_CORE_TOOLStoolsets.py注册、分发与可用性检查的底层实现tools/registry.py插件路线不动核心代码扩展工具AGENTS.md把text_transform换成你真正的功能链路一模一样。【免费下载链接】hermes-agentThe agent that grows with you项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/20 2:30:10

Cursor 会被替代吗?AI 编程工具的现状、实操与迁移指南

先说结论:这个标题大概率是讨论和感慨,不是实锤。但 Cursor 作为 AI 编程工具的代表,确实处在一个被反复审视的位置——一边是用户量高速增长,一边是替代工具不断出现,再加上“AI 会不会取代程序员”的舆论刺激&#x…

2026/10/18 14:34:56

用Git Worktree为AI Agent构建可靠的多仓库工作区

如果你以为“Agent 写代码”的瓶颈是模型不够聪明,那大概率还没遇到真正的麻烦。真实项目里,Agent 往往不是在一个干净的单仓库里工作,而是要同时面对多个 Git 仓库、多个分支、多个任务,甚至多个 Agent 并行改代码。这个场景下&a…

2026/10/20 10:11:24

用Rust从零实现大模型推理引擎:核心链路与实战解析

很多人第一次跑通 llama.cpp 时,第一反应通常是“原来用 C/C 写推理引擎可以这么直接”。GGUF 格式、量化、KV Cache、采样器这些词,一下子从论文里走进了本地命令行的日常。但如果你是一个 Rust 开发者,或者正在做嵌入式、机器人、边缘 AI 这…

2026/10/20 17:20:55

AndroidKiller实战:APK资源分析与Smali代码解析完整流程

很久以前我刚开始接触Android逆向时,第一件事就是找工具。打开搜索引擎,结果五花八门,但真正能把“资源分析”和“代码解析”串成一条完整流程的,AndroidKiller算是我用得最顺手的之一。这篇文章就以AndroidKiller为主线&#xff…

2026/10/20 17:20:55

MCP Server 生产级改造:连接、工具描述、错误处理与并发控制

1. 从“能跑”到“敢上线”:MCP Server 的四个断层很多开发者第一次接触 MCP Server 的时候,都会经历一个极其相似的阶段:照着官方文档把示例代码复制下来,本地起一个进程,用客户端连上去,工具列表能拉出来…

2026/10/20 17:20:55

墨西哥现金贷市场全景复盘:风控、产品与合规的实战指南

墨西哥现金贷市场最近几年成了很多出海金融团队绕不开的话题,热钱涌入、流量暴涨、坏账率也跟着坐过山车。市面上关于这片市场的讨论很多,但大多要么停留在宏观叙事,要么只讲某个单一环节的碎片经验。这次我把从市场格局、产品设计到风控落地…

2026/10/20 17:20:55

离线部署Cloudera Manager:本地源搭建与CM Server安装实战

简介:这份资源是面向大数据运维与Hadoop集群管理学习者的Cloudera Manager 5.14.2离线安装包,专为CentOS 7环境准备,解决在无外网或受限网络下部署CM管理平台的难题。压缩包共含18362个文件,约793.9MB,以py、pyo、pyc等…

2026/10/20 17:20:55

GMP中文文档与静态库实战:从编译报错到密码学大数运算

简介:这份资源面向需要处理大数运算的C/C开发者、密码学与数学软件方向的学习者,提供GMP(GNU多精度运算库)的中文文档与静态链接库,帮助解决任意精度整数、有理数、浮点数计算中资料零散、集成困难的问题。压缩包共4个…

2026/10/19 18:06:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/20 1:05:37

单片机C运行时从启动到多任务:中断安全与共享资源冲突

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:05:37

GCC编译四步详解:预处理、编译、汇编、链接实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:05:37

FIW线是什么?FEP注塑线与普通氟塑料线的区别及应用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑