# RPC 适配器

> 外部 CLI（signal-cli、imsg）的 RPC 适配器和 Gateway 网关模式

- 网址：https://funcoding.ai/agents/openclaw/reference/rpc/
- 来源：OpenClaw 官方文档原文（中文），MIT 许可，同步于 2026-10-11
- 官方原文：https://docs.openclaw.ai/zh-CN/reference/rpc

---
OpenClaw 通过 JSON-RPC 集成外部 CLI。目前使用两种模式。

## 模式 A：HTTP 守护进程（signal-cli）

- `signal-cli` 作为守护进程运行，通过 HTTP 使用 JSON-RPC。
- 事件流采用 SSE（`/api/v1/events`）。
- 健康探测：`/api/v1/check`。
- 当 `channels.signal.transport.kind="managed-native"`（默认值）时，OpenClaw 管理其生命周期。

有关设置和端点，请参阅 [Signal](https://funcoding.ai/agents/openclaw/channels/signal/)。

## 模式 B：stdio 子进程（imsg）

- OpenClaw 将 `imsg rpc` 作为子进程启动，用于 [iMessage](https://funcoding.ai/agents/openclaw/channels/imessage/)。
- JSON-RPC 通过 stdin/stdout 按行分隔传输（每行一个 JSON 对象）。
- 无需 TCP 端口，也无需守护进程。

使用的核心方法：

- `watch.subscribe` → 通知（`method: "message"`）
- `watch.unsubscribe`
- `send`
- `chats.list`（探测/诊断）

有关设置和寻址，请参阅 [iMessage](https://funcoding.ai/agents/openclaw/channels/imessage/)（优先使用 `chat_id`，而非显示字符串）。

## 适配器指南

- Gateway 网关管理进程（启动/停止与提供商生命周期绑定）。
- 保持 RPC 客户端的韧性：设置超时，并在进程退出时重启。
- 优先使用稳定 ID（例如 `chat_id`），而非显示字符串。

## 相关内容

- [Gateway 协议](https://funcoding.ai/agents/openclaw/gateway/protocol/)
