Hermes 用 structured HTTP 和 argv tools 逃离 bash quoting 陷阱
这个窗口里最有实用价值的 Hermes 更新,是不再把所有机器可结构化的动作都塞进 `bash -c`。PR #25861 增加 structured `http` tool,通过 `httpx.Client` 接收 method、URL、headers、JSON/body、params、timeout 等字段;动机来自 production telemetry:一个 JSON payload 里的 apostrophe 就能打断 shell quoting,并触发重复 retry。PR #25864 给 terminal tool 增加 argv-list form,用 `shell=False` 执行,让参数按 byte-for-byte 传给目标程序,而不是先拼成 shell-safe string。PR #25862 则让旧 terminal path 能识别 unexpected EOF 这类 bash parse errors,并在 tool result 里给出 actionable hint,指向 structured HTTP tool 或更安全的 quoting 写法。周边可靠性也很贴近 operator:issue #25859 记录两套 clarify timeout key,导致用户调大 gateway timeout 后,CLI / TUI 仍会在 120 秒自动决定;PR #25856 修 Telegram slash-confirm preview 在 Markdown-sensitive 字符上 silent fail;#25857 保证迁移 Codex config 时 `default_permissions` 仍是 TOML top-level key;#25858 对 LiteLLM 这类 unrecognized server 跳过需要 proxy_admin 的 `/v1/models/{model}` probe;#25624 则停止 deterministic MCP OAuth failure 反复拉起浏览器授权。
Shell quoting 不适合作为 agent tool calls 的序列化层。把 HTTP 和 argv 形态的工作迁到 structured arguments,可以减少 retry loops、意外 command mutation 和审批歧义;clarify 与 Telegram 修复则针对用户正等着 agent 提问或确认的关键时刻。
- PR #25861 说明 production telemetry 中 JSON apostrophe 打断 `bash -c` quoting,并让 PATCH flow 重复 retry
- PR #25864 增加 `argv` sibling parameter,使用 `subprocess.Popen(..., shell=False)` 执行
- PR #25862 识别 return code 2 的 terminal parser failures,并返回指向 structured tools 或 safer quoting 的 `_hint`
- Issue #25859 记录 Gateway 的 `agent.clarify_timeout` 和 CLI / TUI 的 `clarify.timeout` 默认值不同,分别是 600 与 120 秒
- PR #25856 将 Telegram slash-confirm preview 走 `format_message()`,修 raw Markdown 导致的 swallowed `BadRequest`
- PR #25857 防止 Codex `default_permissions` 在迁移时被嵌入前一个 TOML table
- PR #25858 避免 unrecognized local servers 每 turn 触发 LiteLLM proxy-admin model-detail probe
- PR #25624 将 initial MCP OAuth / auth failures 视为本次连接的 terminal failure,不再反复打开浏览器授权
- Structured tools 会改变模型习惯;prompt 和 examples 需要教会它何时避免 raw terminal strings
- argv path 仍然是在执行命令,approval display 必须清楚展示 exact argv elements
- 在配置与文档统一前,clarify timeout 行为仍然是 split-brain