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

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

热门下载

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

精品课程

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

共0课时 | 0人学习