xworkmate-app/docs/architecture/unified-routing-architecture.md
2026-04-21 16:28:26 +08:00

69 lines
2.6 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.

# xworkmate-bridge 统一路由架构文档
## 1. 架构概览 (Unified Routing Architecture)
当前系统采用 `xworkmate-bridge.svc.plus` 作为统一入口。App 侧只通过 managed bridge ACP 主入口发送任务provider / gateway 的 public mapping 由 bridge 后端拥有。
```mermaid
graph TD
subgraph "External Access"
Client["xworkmate-app (Client)"]
end
subgraph "Unified Gateway (Caddy)"
Bridge_Domain["https://xworkmate-bridge.svc.plus"]
end
subgraph "Bridge-owned Routing"
ManagedBridge["Managed Bridge ACP<br/>/acp/rpc"]
CodexProvider["Codex map<br/>/acp-server/codex"]
OpenCodeProvider["OpenCode map<br/>/acp-server/opencode"]
GeminiAdapter["Gemini map<br/>/acp-server/gemini"]
OpenClawGateway["OpenClaw map<br/>/gateway/openclaw"]
end
%% Routing Rules
Client -->|HTTPS/WSS| Bridge_Domain
Bridge_Domain -->|/acp/rpc| ManagedBridge
ManagedBridge -->|provider routing| CodexProvider
ManagedBridge -->|provider routing| OpenCodeProvider
ManagedBridge -->|provider routing| GeminiAdapter
ManagedBridge -->|gateway routing| OpenClawGateway
%% Service Connections
ManagedBridge -.->|Capabilities Discovery| Client
```
## 2. 路由分发规则
| Bridge-owned mapping | App 侧行为 | 备注 |
| :--- | :--- | :--- |
| `/acp/rpc` | 直接调用 | Managed Bridge ACP 主入口,提供能力发现与任务发送 |
| `/acp-server/codex` | 不直连 | Bridge 后端映射至 Codex Provider |
| `/acp-server/opencode` | 不直连 | Bridge 后端映射至 OpenCode Provider |
| `/acp-server/gemini` | 不直连 | Bridge 后端映射至 Gemini Adapter |
| `/gateway/openclaw` | 不直连 | Bridge 后端映射至 OpenClaw Gateway |
## 3. 运维配置优化
### 3.1 统一鉴权
App 发往 `xworkmate-bridge.svc.plus/acp/rpc` 的请求必须携带:
- **Header**: `Authorization: Bearer <bridge-auth-token>`
- **未授权响应**: `401 Unauthorized`
### 3.2 SSE / WebSocket 优化
所有反向代理均配置了 `flush_interval -1`,禁用了响应缓冲,以支持低延迟的 SSE 流式输出和稳定的 WebSocket 长连接。
### 3.3 日志持久化 (Docker)
`xworkmate-bridge-managed` 容器已配置日志挂载:
- **宿主机路径**: `/var/log/xworkmate-bridge/`
- **容器路径**: `/app/logs`
- **轮转策略**: 单文件 50MB保留最近 3 个文件。
## 4. App 侧不变量
- App 不写入或拼接本地 provider endpoint。
- App 不直接调用 `/acp-server/*``/gateway/openclaw`
- `acp.capabilities` 是 provider catalog、gateway catalog、available execution targets 的唯一来源。