HarnessRouter 是一个把多种「AI 编码智能体」收敛成一套统一接口的开源项目:你只要对接一个 API,就能在自己的产品里调用 Codex、Claude Code、Hermes、DeepSeek Harness 等不同的智能体,切换后端不需要改产品代码。它的社区版(Community Edition)采用 Apache-2.0 许可证,可以完全自托管,模型密钥、会话、文件和工作区都留在你自己的机器上;截至抓取时仓库约有 1300 Star、131 个 Fork,最新版本 v0.16.1 于 2026 年 9 月 11 日发布。适合的人群:想把智能体能力作为产品功能、又不愿意为每个智能体分别写集成代码的开发者或团队,尤其是对数据隐私有要求、倾向自托管的用户。

它解决什么问题

先解释一个词:harness(智能体执行环境)。一个编码智能体,除了大模型本身,还需要一层「外壳」来接收任务、调用工具、运行代码、整理结果——这层外壳就是 harness,Codex、Claude Code 这类产品本质上都是「模型 + harness」的组合。

麻烦在于集成是 N×M 的:假如你的产品要支持 N 种智能体,每种都要单独对接它的 API、文件格式和会话机制。HarnessRouter 把这一堆集成收敛成一套接口:产品只对接 HarnessRouter,具体用什么智能体,由请求里的 harness_id 字段指定,比如 codex 或 claude-code。这样产品代码只写一次,后端可以随时换,也能用同一任务对比不同智能体的成本与延迟。

架构与部署

HarnessRouter 社区版用一个 Docker 容器跑完三个组件:Console(网页控制台,默认端口 3000)、Gateway(网关,端口 8080,对外提供 API)、Runner(执行器,端口 8081,负责在独立工作区里实际跑智能体)。数据库、文件、密钥和工作区都存放在容器内的 /data 数据卷里,重启不丢。

部署只需一条命令:docker run -d --name harnessrouter -p 127.0.0.1:3000:3000 -v harnessrouter:/data harnessrouter/harnessrouter。首次启动会自动安装已启用的智能体命令行工具,日志出现 [harnessrouter] ready on :3000 后,打开 http://localhost:3000 登录——默认账号密码都是 harnessrouter,README 明确提醒要改掉默认密码。之后添加一个模型厂商的 API key(比如 OpenAI 或 DeepSeek 的密钥),就能新建任务、实时查看进度和智能体产出的文件。整个首次安装不需要注册 HarnessRouter 账号,也没有捆绑的模型或试用密钥。

UHP 协议与兼容性

围绕统一接口,HarnessRouter 提出并实现了一个公开、版本化的协议 UHP(Unified Harness Protocol,统一智能体执行协议),它规定了智能体如何被选择、会话如何保持、文件如何传输、任务如何取消、工具和技能如何管理。UHP 的任务层刻意兼容 OpenAI 的 Responses API,这意味着已经适配 OpenAI Responses 的 SDK、流式解析器和 UI 组件可以直接复用,不用重写客户端。

自托管与数据边界

社区版把密钥、会话、文件、工作区全部留在你自己的基础设施上,只有模型请求发往你配置的厂商;README 还注明社区版关闭了控制台内的产品分析管道,不采集使用数据。如果想要托管部署和弹性沙箱,同一套 API 契约可以平移到 HarnessRouter Cloud;本地配置好的自定义 harness 也能上传到云端,上传只复制配置,不带走密钥、会话和生成文件。

适用场景与注意点

值得用的情况:你在做 AI 产品,需要把编码智能体作为后端能力,但不想维护多套集成;或者有数据合规要求,必须自托管。项目由 12 名贡献者维护,仓库共 436 次提交,主要语言是 Python(62.6%)和 TypeScript(19.3%)。

需要注意的现状:项目迭代很活跃,最新版本 v0.16.1 于 2026 年 9 月 11 日发布;README 里用于生成幻灯片、表格、仪表盘、视频的 Starter Kits 属于单独的许可条款,不在社区版 Apache-2.0 范围之内。

结论

如果你正打算把 AI 编码智能体接进自己的产品,HarnessRouter 社区版是目前少有的「一套接口、多后端、可自托管」的完整方案:Apache-2.0 许可,一条 Docker 命令起步,可以先用本机实例验证效果,再决定是否迁移到云版。