harnessrouter路由介绍

harnessrouter把Codex、Claude Code等Agent Harness统一封装成一个可切换的后端,通过OpenAI Responses API风格的接口供你的产品调用。


核心架构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
你的产品
│
│ OpenAI Responses-compatible API
▼
HarnessRouter
├── Gateway
│ └── Responses API / session / streaming / files
│
├── Runner
│ └── 实际运行Agent Harness
│
└── Harnesses
├── Codex
├── Claude Code
├── 其他Harness
└── Custom Harness

比较关键的是,它不是单纯的LLM Router,而是Agent Harness Router,它解决的是:

  • Agent运行时
  • Session持久化
  • Streaming
  • 文件输入/输出
  • Artifact
  • Cancellation
  • Agent工具
  • Skills
  • Harness切换
  • Sandbox/workspace
  • 统一API

对开发者最重要的接口

它实现了自己的**Unified Harness Protocol(UHP)**,同时兼容OpenAI Responses API。

调用方式:

1
2
3
4
5
6
7
8
9
10
11
curl "$HARNESSROUTER_BASE_URL/v1/responses" \
-H "Authorization: Bearer $HARNESSROUTER_API_KEY" \
-H "content-type: application/json" \
-d '{
"input":"Reply with exactly: it works.",
"metadata":{
"harness_id":"codex"
},
"model":"gpt-5.4-mini",
"stream":false
}'

因此你的业务代码可以保持类似:

1
2
3
4
5
6
7
8
9
10
11
产品
↓
Responses API
↓
HarnessRouter
↓
选择Harness
├─ Codex
├─ Claude Code
├─ Custom Harness
└─ ...

而不需要针对每一个Harness分别实现一套生命周期管理。

本地部署

Community Edition基本是一个Docker容器:

1
2
3
4
5
6
7
8
9
HarnessRouter container
├── Console :3000
├── Gateway :8080
├── Runner :8081
└── /data
├── database
├── files
├── secrets
└── workspaces

启动:

1
2
3
4
docker run -d --name harnessrouter \
-p 127.0.0.1:3000:3000 \
-v harnessrouter:/data \
harnessrouter/harnessrouter

然后通过Console配置Provider API Key和Harness。