需开发自定义插件,路径包括:一、python工具函数标准开发;二、mcp协议集成外部服务;三、构建独立技能模块;四、cli脚手架快速生成;五、环境级工具注入。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望为Hermes Agent扩展特定能力,例如调度定时任务、操作文件或对接内部系统,则需开发自定义插件。以下是实现该目标的多种技术路径:
一、基于Python工具函数的标准插件开发
此方法适用于功能边界清晰、无需复杂状态管理的轻量级工具,直接在Hermes Agent的tools/目录下编写Python模块,并通过标准元数据注册,Agent可自动识别并调用。
1、在项目根目录下的tools/子目录中新建Python文件,例如custom_cron_tools.py。
2、定义工具函数,确保参数类型明确、有完整类型注解与文档字符串,例如:def schedule_cronjob(command: str, schedule: str, task_id: str = None) -> str:。
3、在同文件中实现get_tool_definitions()函数,返回包含name、description、parameters和required字段的字典列表。
4、将该文件路径添加至tools/__init__.py的__all__列表中,或在cli-config.yaml的tool_modules字段中显式声明。
5、重启Hermes Agent,执行hermes tool list命令验证新工具是否出现在可用工具列表中。
二、通过MCP协议集成外部工具服务
此方法适用于已有成熟服务(如数据库代理、API网关、CI/CD平台)需被Agent安全调用的场景,利用MCP(Model Control Protocol)实现松耦合、可鉴权、带Schema校验的远程工具接入。
1、部署一个符合MCP v1.0规范的服务端,暴露/tools(获取工具列表)与/execute(执行工具)两个REST端点。
2、在服务端响应的工具定义中,严格遵循MCP Schema,包括name、description、input_schema及output_schema字段。
3、在Hermes Agent配置文件cli-config.yaml中,于mcp_servers节点下添加该服务地址、认证令牌及超时设置。
4、启用MCP工具发现机制:将enable_mcp_discovery设为true,并确保tool_filter未排除该服务注册的工具名。
5、运行hermes mcp sync手动触发工具同步,随后即可在会话中被自然语言指令触发调用。
三、构建独立技能模块(Skill-based Plugin)
此方法适用于需维护内部状态、跨步骤协同、具备条件分支逻辑的高级功能,如“代码审查流水线”或“多源数据聚合报告”,其本质是将一组工具+策略+记忆规则封装为可启用/禁用的技能单元。
1、在skills/目录下创建新子目录,例如skills/code_review_v2/,内含__init__.py、strategy.py和tools.py。
2、在strategy.py中定义继承自BaseSkill的类,重写can_activate()与execute()方法,嵌入业务判断逻辑。
3、在tools.py中实现该技能专属工具函数,并在get_skill_tools()中统一导出。
4、在skills/registry.py中将新技能ID(如"review.code-quality")加入ENABLED_SKILLS列表或动态注册表。
5、启动Agent后,执行hermes skill enable code-review-v2命令激活该技能,其工具与策略即刻生效。
四、使用Hermes CLI工具链快速生成插件骨架
此方法面向初学者或需快速验证概念的开发者,利用官方提供的脚手架命令自动生成符合目录结构、命名规范与基础模板的插件工程,避免手动配置错误。
1、确保已安装最新版Hermes CLI(v0.8.3+),运行hermes --version确认版本。
2、执行插件初始化命令:hermes plugin init --type=tool --name=file_compressor --language=python。
3、脚手架将自动创建tools/file_compressor/目录,含预置函数签名、YAML元数据模板与测试桩文件。
4、编辑生成的file_compressor.py,填充实际压缩逻辑(如调用shutil.make_archive)。
5、运行hermes plugin validate tools/file_compressor检查语法、元数据完整性与依赖声明。
五、注入环境级工具(System-Level Tool Injection)
此方法适用于需全局生效、绕过常规工具注册流程的底层能力增强,例如强制添加系统健康检查、日志审计钩子或调试诊断命令,直接修改运行时工具分发器行为。
1、定位到hermes/agent/model_tools.py中的dispatch_tool()函数入口。
2、在函数顶部插入条件分支,当tool_name == "sys_health_check"时,跳过常规路由,直接执行硬编码逻辑。
3、在cli-config.yaml的system_tools字段中声明该工具的可见名称与描述,使其出现在hermes tool list输出中。
4、在hermes_constants.py中新增常量SYS_TOOL_WHITELIST = ["sys_health_check", "debug_dump"],用于运行时权限校验。
5、重新构建Agent可执行文件(uv build)或在开发模式下重启进程使变更生效。











