hermes agent 支持四类工具控制方式:一、启动时用 --toolsets 指定工具集;二、运行中用 /tools enable/disable 动态调整;三、修改 cli-config.yaml 的 allowed_tools 实现持久化配置;四、通过 skills_guard.py 基于角色与上下文细粒度拦截技能调用。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用 Hermes Agent 时需要临时启用或禁用某类功能,例如仅允许文件操作而禁止终端执行,则需通过命令行直接控制工具集的加载状态。以下是执行该操作的具体步骤:
一、使用 --toolsets 参数在会话启动时指定工具集
此方法适用于单次会话,不修改配置文件,所有工具集加载行为仅作用于当前交互周期。工具集名称必须为预定义合法值,如 web、file、terminal 等;多个工具集可用英文逗号分隔,且不支持空格。
1、启动仅含网页搜索与文件操作的会话:hermes chat --toolsets web,file
2、启动包含全部内置工具的会话:hermes chat --toolsets all
3、启动调试专用工具集(自动展开为 code_execution、terminal、file、session_search):hermes chat --toolsets debugging
二、在运行中动态启停工具
此方法适用于已启动的交互式会话,通过内置指令实时调整工具可用性,变更立即生效,但重启后恢复默认配置。
1、禁用 browser 工具以阻止自动化浏览器操作:/tools disable browser
2、启用 vision 工具以支持图像分析功能:/tools enable vision
3、查看当前已启用的工具列表:/tools list
三、修改 cli-config.yaml 实现持久化工具控制
此方法将工具启用状态固化至用户级配置,影响所有后续会话,需手动编辑权限策略文件并确保语法正确。修改后无需重启服务,但新会话才会加载更新后的配置。
1、打开配置文件:nano ~/.hermes/cli-config.yaml
2、定位到 allowed_tools 字段,删除或注释掉不希望启用的工具名,例如移除 terminal 和 code_execution
3、保存文件并退出编辑器,新会话将仅加载 remaining 列表中的工具
四、通过 skills_guard.py 控制技能级工具访问
此方法不直接开关工具,而是基于角色和上下文拦截对特定技能(如 git_commit、github-code-review)的调用请求,属于运行时细粒度防护机制,优先级高于 cli-config.yaml 静态声明。
1、确认 tools/skills_guard.py 中 SKILL_ACCESS_POLICY 字典已取消注释并启用
2、为待限制技能添加角色白名单,例如:"browser_navigate": ["admin"]
3、在 check_skill_access 函数内插入校验逻辑,如检查 context.session_origin == "trusted-domain.example.com"











