hermes-agent-features/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/developer-guide/programmatic-integration.md
Teknium 76135b329d
docs(i18n): translate all docs into Simplified Chinese (zh-Hans) (#31942)
Translates the full English docs corpus (335 files) into Simplified
Chinese under website/i18n/zh-Hans/. Combined with PR #31895 (cross-
locale link fix), the 简体中文 locale toggle now serves a complete
Chinese site with working cross-page navigation.

Pipeline:
- Claude Sonnet 4.6 via OpenRouter, 8-way concurrent
- Preserves frontmatter keys, code blocks, MDX/JSX, link URLs, brand
  names, and technical jargon (prompt/token/hook/MCP/ACP/etc.)
- Translates only frontmatter title/description and prose
- Two largest files (configuration.md 93KB, research-paper-writing.md
  107KB) retried with 64K max_tokens after initial fence-drift
- 3 manual post-fixes for MDX edge cases the model didn't escape:
  < in optional-skills-catalog table, double-quotes in an alt= tag,
  and a bare URL adjacent to a full-width period

Cost: ~$30 total (Sonnet 4.6 input $3/M + output $15/M).

Verified `npm run build` succeeds for both en and zh-Hans locales,
no double-prefixed /docs/zh-Hans/docs/ URLs in rendered output,
all in-page navigation resolves correctly.

Translations are machine-generated and may need human review on
specific pages — but they're an enormous improvement over the
previous state (3 zh-Hans pages out of 335).
2026-05-25 01:47:38 -07:00

126 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
sidebar_position: 8
title: "程序化集成"
description: "从外部程序驱动 hermes-agent 的三种协议ACP、TUI gateway JSON-RPC 以及兼容 OpenAI 的 HTTP API"
---
# 程序化集成
Hermes 提供三种协议,供外部程序驱动 agent——IDE 插件、自定义 UI、CI 流水线、嵌入式子 agent。根据你的传输方式和消费端选择合适的协议。
| 协议 | 传输方式 | 适用场景 | 定义位置 |
|----------|-----------|----------|------------|
| **ACP** | JSON-RPC over stdio | 已支持 [Agent Client Protocol](https://github.com/zed-industries/agent-client-protocol) 的 IDE 客户端VS Code、Zed、JetBrains | `acp_adapter/` |
| **TUI gateway** | JSON-RPC over stdio或 WebSocket | 需要精细控制会话、slash 命令、审批及流式事件的自定义宿主 | `tui_gateway/server.py` |
| **API server** | HTTP + Server-Sent Events | 兼容 OpenAI 的前端Open WebUI、LobeChat、LibreChat……及语言无关的 Web 客户端 | `gateway/platforms/api_server.py` |
三种协议均驱动同一个 `AIAgent` 核心,区别仅在于线路格式和所暴露的功能集。
---
## ACPAgent Client Protocol
`hermes acp` 启动一个基于 stdio 的 JSON-RPC 服务器,使用 ACP 协议。已在 VS CodeZed Industries 的 ACP 扩展、Zed 以及所有安装了 ACP 插件的 JetBrains IDE 中投入生产使用。
暴露的能力会话创建、prompt提示词提交、流式 agent 消息块、工具调用事件、权限请求、会话 fork、取消及身份验证。工具输出会被渲染为 IDE 可理解的 ACP `Diff`/`ToolCall` 内容块。
完整生命周期、事件桥接及审批流程:[ACP 内部机制](./acp-internals)。
```bash
hermes acp # 在 stdio 上提供 ACP 服务
hermes acp --bootstrap # 打印适用于支持 ACP 的 IDE 的安装代码片段
```
---
## TUI Gateway JSON-RPC
`tui_gateway/server.py` 是 Ink TUI`hermes --tui`)和嵌入式仪表板 PTY 桥接所使用的协议。任何外部宿主均可通过 stdio或经由 `tui_gateway/ws.py` 的 WebSocket使用相同协议。
### 方法目录(精选)
```
prompt.submit prompt.background session.steer
session.create session.list session.interrupt
session.history session.compress session.branch
session.title session.usage session.status
clarify.respond sudo.respond secret.respond
approval.respond config.set / config.get commands.catalog
command.resolve command.dispatch cli.exec
reload.mcp reload.env process.stop
delegation.status subagent.interrupt spawn_tree.save / list / load
terminal.resize clipboard.paste image.attach
```
### 流式返回的事件
`message.delta`、`message.complete`、`tool.start`、`tool.progress`、`tool.complete`、`approval.request`、`clarify.request`、`sudo.request`、`secret.request`、`gateway.ready`,以及会话生命周期和错误事件。
### Pi 风格 RPC 映射
Pi-mono RPC 规范([issue #360](https://github.com/NousResearch/hermes-agent/issues/360))中的每条命令均有对应的 TUI gateway 等价项:
| Pi 命令 | Hermes 等价项 |
|------------|-------------------|
| `prompt` | `prompt.submit`(或 ACP `session/prompt` |
| `steer` | `session.steer` |
| `follow_up` | 在当前轮次结束后排队的 `prompt.submit` |
| `abort` | `session.interrupt` |
| `set_model` | 通过 `command.dispatch` 执行 `/model <provider:model>`(会话中途生效,持久化) |
| `compact` | `session.compress` |
| `get_state` | `session.status` |
| `get_messages` | `session.history` |
| `switch_session` | `session.resume` |
| `fork` | `session.branch` |
| `ui_request` / `ui_response` | `clarify.respond` / `sudo.respond` / `secret.respond` / `approval.respond` |
---
## 兼容 OpenAI 的 API Server
`gateway/platforms/api_server.py` 通过 HTTP 暴露 Hermes供任何已支持 OpenAI 格式的客户端使用。适用于需要 Web 前端、curl 驱动的 CI 运行器或非 Python 消费端的场景。
端点:
```
POST /v1/chat/completions OpenAI Chat Completions通过 SSE 流式传输)
POST /v1/responses OpenAI Responses API有状态
POST /v1/runs 启动一次运行,返回 run_id202
GET /v1/runs/{id} 运行状态
GET /v1/runs/{id}/events 生命周期事件的 SSE 流
POST /v1/runs/{id}/approval 解决待处理的审批
POST /v1/runs/{id}/stop 中断运行
GET /v1/capabilities 机器可读的功能标志
GET /v1/models 列出 hermes-agent
GET /health, /health/detailed
```
配置、请求头(`X-Hermes-Session-Id`、`X-Hermes-Session-Key`)及前端接入:[API Server](../user-guide/features/api-server)。
---
## 该选哪个?
- **正在编写 IDE 插件,且 IDE 已支持 ACP** → 选 ACP。IDE 侧无需任何协议工作。
- **正在编写自定义桌面 / Web / TUI 宿主,且需要 Hermes 的全部功能**slash 命令、审批、clarify、多 agent、会话分支→ 选 TUI gateway JSON-RPC。
- **需要任意兼容 OpenAI 的前端、语言无关的 HTTP 客户端或 curl 驱动的自动化** → 选 API server。
- **需要在 Python 进程内嵌入,不想启动子进程** → 直接导入 `run_agent.AIAgent`。参见 [Agent Loop](./agent-loop)。
---
## 模型热切换
会话中途切换模型在所有接入方式上均可用——底层均为 `/model` slash 命令。
- **CLI / TUI** `/model claude-sonnet-4``/model openrouter:anthropic/claude-sonnet-4.6`
- **TUI gateway RPC** 使用 `{"command": "/model claude-sonnet-4"}` 调用 `command.dispatch`
- **ACP** IDE 将 slash 命令作为 prompt 发送agent 负责分发
- **API server** 在请求体中包含 `model` 字段,或设置 `X-Hermes-Model`
内置 provider 感知解析(相同的模型名称会根据当前 provider 自动选择正确格式)。参见 `hermes_cli/model_switch.py`
---
## 关于 `--mode rpc` 的说明
Hermes 没有 `--mode rpc` 标志。上述三种协议已覆盖所有使用场景——ACP 用于 IDE 协议客户端TUI gateway 用于 stdio JSON-RPC 宿主API server 用于 HTTP。如果你发现上述协议均无法满足的真实需求请提交 issue 并说明你正在构建的具体消费端。