ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Hermes Agent 工具与工具集——70+ 内置工具的扩展之道:把 settings 改到 TaoToken

Hermes Agent 工具与工具集——70+ 内置工具的扩展之道:把 settings 改到 TaoToken 1. Hermes Agent 工具集到底解决什么问题Hermes Agent 是一个把大模型从能聊天推进到能干活的智能体框架它内置了 70 多个工具覆盖网页搜索、终端执行、文件编辑、浏览器自动化、记忆、委派等场景。这些工具不是散落一地的而是按功能组织成工具集toolset你可以按平台、按场景启用或禁用。对需要统一管理多模型调用的开发者来说这套工具体系最大的价值在于它把模型调用和工具执行解耦了你换模型、换 API 通道工具层不用重写。但实际用起来很多人卡在第一步Hermes Agent 默认走的是官方或某个固定 endpoint而团队往往已经有自己的统一 API 通道。这时候就需要把 settings 里的 endpoint 和鉴权配置改到自己的通道上。我试过把 Hermes 的模型调用统一改到 TaoToken 的 API 通道整个过程不复杂但有几个配置点容易踩坑下面一步步拆开讲。先说清楚适合谁如果你在用 Hermes Agent 做本地 CLI 助手、Telegram 机器人或者把它当成一个可扩展的 Agent 编排层同时你希望所有模型调用走同一个 Key、同一个 Base URL方便计费和切换模型那这篇就是给你写的。核心检索词就三个Hermes Agent、工具集、内置工具扩展。理解了工具怎么注册、怎么按工具集启用再理解 endpoint 怎么改你就能把 Hermes 真正跑起来。Hermes 的工具注册表按功能划分成若干大类。Web 类有 web_search、web_extract负责搜索网页并提取页面内容X 搜索类有 x_search通过 xAI 内置的 Responses 工具搜索帖子和话题需要 xAI 凭据默认关闭终端与文件类有 terminal、process、read_file、patch执行命令并操作文件浏览器类有 browser_navigate、browser_snapshot、browser_vision支持文本和视觉的交互式浏览器自动化媒体类有 vision_analyze、image_generate、video_generate、text_to_speech 等多模态分析与生成其中视频生成和分析需手动启用Agent 编排类有 todo、clarify、execute_code、delegate_task负责规划、澄清、代码执行和子 Agent 委托记忆与召回类有 memory、session_search自动化与投递类有 cronjob、send_message集成类有 ha_* 系列Home Assistant 设备控制和 MCP server 工具。这些工具被组织成工具集方便按场景组合。常用工具集包括 web、search、terminal、file、browser、vision、image_gen、memory、tts、todo、cronjob、code_execution、delegation、clarify、homeassistant、messaging、discord、debugging、safe 等还有 hermes-cli、hermes-telegram 等平台预设以及 mcp- 这类动态 MCP 工具集。操作上很简单用hermes chat --toolsets web,terminal指定工具集用hermes tools查看所有可用工具或者进入交互式界面按平台勾选启用哪些工具集。按平台差异化配置很有必要。比如公开的 Telegram 机器人只开 web 和 memory本地 CLI 才放开 terminal 和 file避免在不可信环境里给 Agent 终端权限。这一步想清楚了后面改 endpoint 才不会乱。2. 把 settings 的 endpoint 与鉴权改到 TaoTokenHermes Agent 的模型调用配置集中在~/.hermes/config.yaml和~/.hermes/.env两个文件里。config.yaml 管结构和行为.env 管密钥和敏感凭据。要把模型调用改到 TaoToken核心就是改这两处Base URL 指向 TaoToken 的 API 地址API Key 换成你在 TaoToken 控制台生成的 KeyModel ID 换成你要用的模型标识。先说 TaoToken 是什么。它是一个统一的模型 API 通道官网在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 入口是 https://taotoken.net/api 。你可以在控制台里创建 API Key然后在模型对话页面测试模型是否可用。对 Hermes 来说它只关心三件事Base URL、Key、Model ID。这三件套配对了工具调用链就能正常触发。先看 config.yaml 里跟模型相关的部分。Hermes 的模型配置通常长这样# ~/.hermes/config.yaml model: provider: openai-compatible base_url: https://taotoken.net/api model: claude-sonnet-4-20250514 api_key_env: TAOTOKEN_API_KEY max_tokens: 8192 temperature: 0.7这里有几个关键点。provider 用 openai-compatible因为 TaoToken 的 API 兼容 OpenAI 的请求格式Hermes 走这个 provider 就能对接。base_url 填https://taotoken.net/api注意不要多加路径Hermes 会自己在后面拼/v1/chat/completions之类的端点。model 填你要用的模型 ID具体有哪些模型可以在 TaoToken 的模型对话页面看。api_key_env 指向环境变量名真正的 Key 放在 .env 里不要直接写进 config.yaml。然后是 .env 文件# ~/.hermes/.env TAOTOKEN_API_KEYsk-你的TaoToken密钥如果你之前用的是别的 provider比如 OpenAI 或 Anthropic 的官方 Key这里要替换掉。改完之后Hermes 启动时会读取这个环境变量把它作为 Bearer Token 放进请求头。如果你用的是 Claude Code 或者类似的编码 Agent配置逻辑是一样的只是文件位置不同。Claude Code 的 settings 通常在~/.claude/settings.json里面配 Base URL 和 Key 的字段名不一样但三件套的逻辑不变。Cline 的 MCP 配置则在cline_mcp_settings.json里Codex 的 auth.json 在~/.codex/auth.json。不管哪个工具你都要确认 Base URL、Key、Model ID 这三样齐全缺一个都会报鉴权或模型不存在的错。改完配置后建议先跑一次hermes model命令它会列出当前可用的模型和 provider 状态。如果配置正确你应该能看到 TaoToken 通道下的模型列表。如果报错先检查 .env 里的 Key 有没有多余空格再检查 base_url 有没有拼错。3. 可复制配置片段与工具集启用这一节给你可以直接复制的配置片段。先给完整的 config.yaml 模型段和工具集段再给 .env最后给一个工具集启用的命令行示例。# ~/.hermes/config.yaml model: provider: openai-compatible base_url: https://taotoken.net/api model: claude-sonnet-4-20250514 api_key_env: TAOTOKEN_API_KEY max_tokens: 8192 temperature: 0.7 toolsets: enabled: - web - terminal - file - memory - todo disabled: - browser - vision - image_gen# ~/.hermes/.env TAOTOKEN_API_KEYsk-你的TaoToken密钥工具集启用也可以用命令行覆盖# 使用指定工具集启动对话 hermes chat --toolsets web,terminal,file,memory,todo # 查看所有可用工具 hermes tools # 按平台交互式配置工具 hermes tools如果你要把终端后端也配好比如用 Docker 隔离config.yaml 里加这一段# ~/.hermes/config.yaml terminal: backend: docker cwd: . timeout: 180 container_cpu: 1 container_memory: 5120 container_disk: 51200 container_persistent: trueDocker 后端不是每次命令都开新容器而是启动一个长期运行的持久容器通过 docker exec 把所有终端、文件、execute_code 调用路由进去。工作目录变更、已安装的包、写入 /workspace 的文件在同一 Hermes 进程生命周期内跨 /new、/reset 和子 Agent 都会保留。container_persistent 标志控制是否跨 Hermes 重启保留文件系统。SSH 后端是安全场景的首选核心优势是 Agent 无法修改自身代码。配好凭据即可# ~/.hermes/config.yaml terminal: backend: ssh# ~/.hermes/.env TERMINAL_SSH_HOSTmy-server.example.com TERMINAL_SSH_USERmyuser TERMINAL_SSH_KEY~/.ssh/id_rsa容器资源与安全加固方面所有容器后端都能统一配置 CPU、内存、磁盘和持久化。安全上容器后端默认全部加固只读根文件系统、丢弃所有 Linux capabilities、禁止权限提升、PID 限制 256 个进程、完整命名空间隔离、通过卷挂载而非可写根层实现持久化。Docker 还能通过 terminal.docker_forward_env 接受显式的环境变量白名单但转发的变量对容器内命令可见应视为在该会话中已暴露。后台进程管理对长构建、测试套件很有用terminal(commandpytest -v tests/, backgroundtrue) # 返回{session_id: proc_abc123, pid: 12345}然后用 process 工具管理process(actionlist) process(actionpoll, session_idproc_abc123) process(actionwait, session_idproc_abc123) process(actionlog, session_idproc_abc123) process(actionkill, session_idproc_abc123) process(actionwrite, session_idproc_abc123, datay)开启 ptytrue 还能启用 PTY 模式让 Codex、Claude Code 这类交互式 CLI 工具在终端里正常工作。如果命令需要 sudo系统会提示输入密码本次会话内缓存也可以在 ~/.hermes/.env 中设置 SUDO_PASSWORD 直接通过。4. 验证一次工具调用链是否正常触发配置改完之后最关键的一步是验证工具调用链能不能在统一 Key/API 通道下正常触发。很多人改完 endpoint 就直接用结果工具没触发以为是配置错了其实是模型没返回 tool_call。下面给一个完整的验证流程。第一步确认模型通道通。跑一个最简单的对话hermes chat --toolsets web -m 用一句话介绍你自己如果模型正常回复说明 Base URL、Key、Model ID 三件套没问题。如果报 401说明 Key 不对如果报 model not found说明 Model ID 写错了如果报 connection error说明 base_url 拼错了。第二步触发一个内置工具。用 web_search 工具集让 Agent 搜索一个实时信息hermes chat --toolsets web -m 搜索今天的日期并告诉我你用了哪个工具正常情况下Agent 会返回一个 tool_call调用 web_search拿到结果后再生成回复。你可以在输出里看到工具调用的 JSON 结构类似{ tool: web_search, arguments: { query: today date } }如果 Agent 直接编了一个日期没有触发工具说明模型没有正确返回 tool_call。这时候要检查两件事一是模型本身是否支持 function calling二是 Hermes 的 tool 定义有没有正确传给模型。TaoToken 通道下的模型如果支持 function calling这一步应该能正常触发。第三步验证多工具链。用 terminal 和 file 工具集让 Agent 执行一个组合任务hermes chat --toolsets terminal,file -m 在当前目录创建一个 test.txt写入 hello然后读取它正常流程是Agent 先调用 terminal 执行 echo 命令再调用 read_file 读取内容最后汇总回复。你可以在输出里看到两次 tool_call 和两次 tool_result。如果中间断了比如创建了文件但没读取说明工具集启用不全或者模型在多轮工具调用时丢了上下文。第四步验证 execute_code 的沙箱 RPC。这个稍微复杂一点但能确认工具在代码执行环境里也能触发hermes chat --toolsets code_execution,web -m 写一段 Python调用 web_search 搜索 Hermes Agent打印前三条结果execute_code 的核心价值是把多步工作流压成单次 LLM 调用Agent 写一段 Python 脚本通过沙箱 RPC 程序化调用 Hermes 工具。如果这段脚本能跑通并打印出搜索结果说明工具在代码执行层也正常。实测下来最容易出问题的是第三步的多工具链。因为多轮工具调用对模型的上下文管理要求高如果模型在第二轮丢了第一轮的工具结果就会重复调用或者直接编答案。这时候可以降低 temperature或者换一个 function calling 更稳的模型。5. 常见报错与排查对照这一节把实际会遇到的报错和排查方法列出来对照着查。401 Unauthorized。这是最常见的鉴权错误。原因通常是 Key 不对、Key 过期、或者 Key 没有对应模型的权限。排查步骤先确认 .env 里的 TAOTOKEN_API_KEY 没有多余空格和换行再确认 config.yaml 里的 api_key_env 字段名和 .env 里的变量名一致最后去 TaoToken 控制台确认这个 Key 还有效并且有你要用的模型的调用权限。如果用的是 Claude Code检查 settings.json 里的 apiKey 字段如果是 Codex检查 auth.json 里的 OPENAI_API_KEY。local proxy failed。这个报错通常出现在你本地配了代理但代理没启动或者端口不对。Hermes 本身不需要代理如果你之前为了别的工具配了 HTTP_PROXY 或 HTTPS_PROXY 环境变量先 unset 掉再试。命令是unset HTTP_PROXY HTTPS_PROXY然后重新跑 hermes。如果必须走代理确认代理地址和端口正确并且代理允许访问 taotoken.net。reading choices 相关报错。这个报错说明请求发出去了但返回的 JSON 结构不符合预期。常见原因是 base_url 拼错了比如多加了/v1或者少加了路径。TaoToken 的 base_url 就是https://taotoken.net/api不要自己加/v1Hermes 会自己拼。另一个原因是模型 ID 写错了返回了一个错误结构而不是正常的 choices 数组。去模型对话页面确认模型 ID 的准确写法。OAuth 相关报错。如果你用的是 Claude Code 或者 Codex 这类带 OAuth 的工具可能会遇到 OAuth token 过期或者 scope 不对的问题。这时候不要走 OAuth 流程直接用 API Key 模式。Claude Code 里把认证方式切成 API KeyCodex 里检查 auth.json 的字段。三件套Base URL Key Model ID配齐了就不需要 OAuth。工具不触发。模型正常回复但没有调用任何工具。排查先确认工具集启用了hermes tools看一下当前启用的工具列表再确认模型支持 function calling有些轻量模型不支持工具调用最后检查 Hermes 版本老版本可能对某些 provider 的 tool 定义支持不好升级到最新版。Docker 后端启动失败。检查 Docker 是否在运行docker ps能不能正常列出容器。如果报权限错误确认当前用户在 docker 组里。如果报镜像拉取失败检查网络能不能访问镜像仓库。container_persistent 设为 true 时容器会长期运行如果之前有残留容器占着名字先docker rm掉。SSH 后端连接失败。检查 TERMINAL_SSH_HOST、TERMINAL_SSH_USER、TERMINAL_SSH_KEY 三个变量是否都配了。确认私钥文件权限是 600chmod 600 ~/.ssh/id_rsa。确认目标服务器允许这个用户登录并且有执行命令的权限。execute_code 脚本报错。常见原因是沙箱环境里没有装对应的包。Docker 后端下你可以在脚本里先pip install再调用工具。如果报 RPC 超时检查 Hermes 进程是否还在运行沙箱 RPC 依赖主进程。6. 把统一通道用起来配置改完、验证通过之后你就有了一套统一的模型调用通道。Hermes Agent 的 70 多个内置工具、按需启用的工具集、六种终端后端全部走同一个 Base URL 和同一个 Key。这意味着你换模型只需要改 config.yaml 里的 model 字段不用动工具配置你加新工具只需要在 toolsets 里启用不用改模型通道。对长期编码和 Agent 场景建议把 Coding Plan 用起来它适合需要持续调用、多轮工具链的任务。如果你只是想先验证模型能不能用去模型对话页面测一下就行。API Key 在控制台的 API Keys 页面生成接入文档在 doc 页面有详细说明。Claude Code 和 Anthropic 相关的接入走 ClaudeCodeAnthropic 这个入口。最后说一个实际经验工具集不要一次全开。vision、image_gen、browser 这些工具的描述会占上下文窗口开多了既烧 token 又拖慢响应。本地 CLI 跑 web、terminal、file、memory、todo 这套组合能覆盖大部分日常任务公开的聊天平台机器人只开 web 和 memory绝不开 terminal。先把这套最小可用集跑顺再按需加工具比一上来全开要稳得多。
返回列表