HermesAgent插件开发:编写你的第一个Tool

陌晨大大_8172

陌晨大大_8172

2026-04-28

846人浏览

原创

要为hermesagent扩展能力需编写自定义tool:一、定义继承基类的tool类,声明name、description和parameters;二、实现call方法处理参数、调用api并返回结构化结果;三、注册tool到agent实例;四、编写单元测试验证异常与正常流程;五、将tool描述注入system prompt以支持llm调用。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

hermesagent插件开发:编写你的第一个tool

如果您希望为HermesAgent扩展能力,使其能调用外部系统或执行特定任务,则需要编写一个自定义Tool。以下是创建首个Tool的完整流程:

一、定义Tool类结构

Tool必须继承HermesAgent提供的基类,并实现必要接口,以确保框架能正确识别、序列化和调度该工具。类中需声明名称、描述及参数定义,这些信息将用于LLM的工具选择推理。

1、创建Python文件,例如weather_tool.py。

2、导入HermesTool基类与tool装饰器(若使用装饰器模式)或直接继承基类。

3、定义类名,如WeatherQueryTool,并设置name = "get_weather"、description = "根据城市名获取当前天气信息"。

4、在类中声明parameters字典,包含"city"(类型为str)、"unit"(默认"celsius")等字段及其type和description。

二、实现call方法逻辑

该方法是Tool被执行时的实际入口,接收标准化的JSON参数字典,返回可被LLM理解的结构化结果。必须确保异常可捕获且返回友好错误消息,避免中断Agent工作流。

1、在Tool类中定义def call(self, **kwargs) -> dict:方法。

2、从kwargs中提取city值,校验其非空且为字符串类型。

3、构造HTTP请求URL,调用公开天气API(如OpenWeatherMap),携带API key与参数。

4、解析响应JSON,提取temperature、condition、humidity字段。

5、返回字典:{"temperature": 23.5, "condition": "partly cloudy", "humidity": 64}。

三、注册Tool到Agent实例

Tool需显式注册至HermesAgent运行时环境,否则LLM无法感知其存在。注册过程将触发元数据校验与内部索引构建。

1、在初始化Agent对象后,调用agent.register_tool(WeatherQueryTool())。

Hermes Agent
Hermes Agent

将OpenClaw打造为具备种子工作空间规则、技能提升、反思记忆和主动维护的学习循环智能体。

下载

2、确认注册成功日志输出:Registered tool: get_weather。

3、检查agent.list_tools()返回结果中是否包含get_weather条目及其完整描述。

4、若使用YAML配置方式,需在tools.yaml中添加对应块,并指定模块路径与类名。

四、编写单元测试验证行为

测试确保Tool在各种输入条件下返回预期格式与内容,防止因参数缺失、网络失败或类型错误导致Agent崩溃。

1、创建test_weather_tool.py,导入pytest与WeatherQueryTool。

2、编写测试函数test_call_with_valid_city,传入{"city": "Beijing"},断言返回字典含"temperature"键。

3、编写test_call_with_empty_city,验证抛出ValueError时返回{"error": "city cannot be empty"}。

4、使用responses库模拟HTTP响应,隔离外部依赖。

五、集成至Agent提示工程

LLM需通过系统提示词了解Tool功能边界与调用语法。必须将Tool描述注入system prompt的tools section,否则模型不会生成tool_calls。

1、调用agent.get_tool_descriptions()获取标准JSON Schema片段。

2、将该片段嵌入system prompt末尾,格式为{"name": "...", "description": "...", "parameters": {...}}。

3、确保prompt中明确指示:“仅当用户问题明确涉及天气查询时,才调用get_weather工具;否则不调用任何工具。”

4、验证LLM输出token中是否出现{"name": "get_weather", "arguments": "{...}"}结构。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

hermes agent hermesagent

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Hermes Agent完整设置指南教程
Hermes Agent完整设置指南教程

此专题为您提供 HermesAgent最新、最全面的设置指南。内容涵盖从一键安装、模型配置(支持阿里云百炼等)到微信、钉钉等全平台接入的完整流程。无论您是新手还是进阶用户,都能在这里找到清晰的步骤说明与常见问题解答,助您快速部署并掌握这款能自我进化的AI代理,轻松开启智能化工作流。

2026.04.13

592

11

Hermes Agent完整部署教程
Hermes Agent完整部署教程

本专题聚焦开源AI智能体Hermes Agent,提供从入门到精通的完整部署教程。作为会“自我进化”的AI助手,它支持本地及云端私有化部署,具备持久记忆与技能自动沉淀能力。无论你是开发者还是效率追求者,这里都将助你快速搭建专属的“数字伙伴”,实现AI自主执行复杂任务,让工作效率倍增。

2026.04.13

454

20

HermesAgent下载安装完整教程
HermesAgent下载安装完整教程

本专区为您提供 HermesAgent最全面的安装与部署指南。作为由NousResearch推出的“可成长”AI智能体,Hermes支持Linux、macOS及WSL2环境。我们汇集了从官方推荐的一键脚本安装、手动源码部署,到Docker及云服务器(如腾讯云Lighthouse)搭建的保姆级教程。无论您是新手还是开发者,都能在此找到详细的配置步骤,助您快速拥有这位具备持久记忆与自我进化能力的AI助手。

2026.04.13

357

21

Hermes Agent使用指南汇总
Hermes Agent使用指南汇总

本专题将带你从零开始,全面掌握Hermes Agent的安装部署、核心配置、技能扩展与生态整合,无论你是想打造专属私人助手,还是探索AI自动化变现路径,这里都有最实用的实战指南。

2026.05.06

529

34

Playwright 测试失败怎么办
Playwright 测试失败怎么办

Playwright测试失败专题汇集超时、定位器匹配、浏览器提前关闭、依赖与插件配置、文件上传、SSL及Docker启动等故障文章,并介绍通过截图、报告和Trace定位错误。

2026.10.21

20

15

Playwright 页面操作指南
Playwright 页面操作指南

Playwright页面操作专题汇集元素定位、点击与输入、等待响应、多页面切换、Iframe、事件监听及文件处理的已审核文章,便于按操作场景查阅示例与常见问题。

2026.10.21

0

16

Playwright 入门教程
Playwright 入门教程

Playwright入门专题汇集测试框架安装、VS Code配置、录制脚本、编写首个用例、运行调试及查看报告的已审核文章,帮助初学者搭建端到端测试流程。

2026.10.21

0

16

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

2026.10.16

120

10

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

2026.10.16

80

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Hermes Agent中文文档
Hermes Agent中文文档

共0课时 | 0人学习