OpenHarness:又一个新一代 Harness 框架?基座?
如果之前看过我写的 Harness 相关内容,那这篇我就不再重复解释“什么是 Harness”了。
这次介绍的是一个新开源项目:OpenHarness。
香港大学数据科学研究所(HKUDS) 开源的 OpenHarness,4 月 1 日刚发布、已斩获 5k+ Star,还在飞速攀升。
一开始我以为会是又一个新的 Harness 框架,但我实际看了才发现根本不一样。
不同于之前我介绍的 OpenSpec、ECC、Trellis 这类项目。OpenHarness 本身就是一套可运行的、实现 Harness 架构的 Agent Runtime。
说得再简单一些,你可以理解成是更类似于 ClaudeCode/Codex,但是又在上层直接集成了 Harness 的新 TUI。
当然,身为 cc/codex 党,暂时还没有切换工具的打算。
所以我看到的第一反应不是“OpenHarness 能帮我做到什么程度”,而是:
又出现了一个可以认真拆架构的 Harness 实现。
先做个整体介绍
它的项目Readme直接写了它的定位:Open Agent Harness。
从公开资料看,这个项目覆盖的不是单点能力,而是一整套 Agent 运行时链路:Agent Loop、43+ 工具、Skills、Memory、权限、Hooks、Tasks、多代理协调、CLI/TUI、插件生态系统。

我看这类项目有个很朴素的习惯:
先不听它讲得多牛逼,先看三件事——实际上手难度、支持什么能力、能做到什么程度
OpenHarness 在这三件事上,至少第一眼看过去是成立的。
它的结构也比较清楚,没有那种“功能很多,但不知道核心在哪”的感觉。项目里基本能看到几层很明确的划分:
engine:负责 Agent Looptools:负责工具注册和执行skills:负责按需加载知识plugins:负责扩展permissions/hooks:负责治理memory/tasks/coordinator:负责长期运行和协作ui:负责 CLI 和 TUI
说白了,它不是在回答“怎么做一个会调工具的聊天框”,而是在回答:
如果把 Agent 当成一个真正的系统,它的 Harness 底座应该怎么搭。
先说安装和上手
最简单的安装方式是一条脚本:
curl -fsSL https://raw.githubusercontent.com/HKUDS/OpenHarness/main/scripts/install.sh | bash
如果你想直接从源码装,也可以:
git clone https://github.com/HKUDS/OpenHarness.git
cd OpenHarness
uv sync --extra dev
依赖要求也比较标准,这些如果缺失的可以自行安装:
Python 3.10+
uvNode.js 18+(如果要用 React TUI)
一个可用的模型 API Key

后面按照终端的提示,或者在~/.openharness/settings.json 目录中进行环境配置。
# 这里是举例了kimi的接入
export ANTHROPIC_BASE_URL=https://api.moonshot.cn/anthropic
export ANTHROPIC_API_KEY=your_kimi_api_key
export ANTHROPIC_MODEL=kimi-k2.5
这里说一个坑,由于现在项目刚刚开始发展,版本号还处于 0.1.x 版本。如果你想试用的话,我建议主要使用 Linux/MacOS,至少截止4月6号,我自己在 Windows 上,包括 WSL 上都尝试了会报错。
不只局限于做个聊天壳
最直接的方式就是进交互模式:
uv run oh
或者venv启动的话可以直接使用 oh 指令进入
如果你只是想丢一个 Prompt 测试,也很简单:
oh -p "解释这个代码库"
如果你想把它接到自动化流程里,它也支持结构化输出:
oh -p "列出main.py中的所有函数" --output-format json
或者流式 JSON:
oh -p "解决登录失败的问题" --output-format stream-json
这一点我还算是比较有意思。
因为很多项目的实际使用方式还是停留在“命令行聊天”,OpenHarness 至少已经把几种典型场景都考虑进去了:
人在回路里的交互式使用
shell 脚本里的自动化调用
程序对程序的结构化消费
Provider 支持
OpenHarness 支持三种主流供应商 API 形态:
以我们最常用的 OpenAI 兼容模式为例,你可以这么切:
uv run oh --api-format openai
--base-url "https://dashscope.aliyuncs.com/compatible-mode/v1"
--api-key "sk-xxx"
--model "qwen3.5-flash"
也可以走环境变量(当然也可以像前面说的在配置文件中配置):
export OPENHARNESS_API_FORMAT=openai
export OPENAI_API_KEY=sk-xxx
export OPENHARNESS_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
export OPENHARNESS_MODEL=qwen3.5-flash
uv run oh
不局限于单一模型的这个思想,其实有点类似 OpenCode,但是又有些许不同。至少没有把自己绑死在某个模型供应商上。
特色能力部分

OpenHarness 官方文档里已经比较清楚列举了,整体还是以 Harness 体系构建为核心,我就直接拿来了。
🔧 工具(43+)

每个工具都具备:
pydantic 输入验证——结构化、类型安全输入
自描述 JSON 模式——模型会自动理解工具
权限集成——每次执行前检查
钩子支持 — PreToolUse/PostToolUse 生命周期事件
📚 技能系统
技能是按需知识——仅在模型需要时加载:
Available Skills:
- commit: Create clean, well-structured git commits
- review: Review code for bugs, security issues, and quality
- debug: Diagnose and fix bugs systematically
- plan: Design an implementation plan before coding
- test: Write and run tests for code
- simplify: Refactor code to be simpler and more maintainable
- pdf: PDF processing with pypdf (from anthropics/skills)
- xlsx: Excel operations (from anthropics/skills)
- ... 40+ more
兼容人类/技能——只需复制文件到。.md``~/.openharness/skills/
🔌 插件系统
兼容 claude 代码插件。测试了 12 个官方插件:

# Manage plugins
oh plugin list
oh plugin install
oh plugin enable
🤝 生态系统工作流程
OpenHarness 作为轻量级束层,适用于 Claude 风格的工具约定:
面向OpenClaw的工作流程可以重用Markdown优先的知识和命令驱动的协作模式。
Claude风格的插件和技能保持可移植性,因为OpenHarness让这些格式保持熟悉。
ClawTeam 风格的多智能体工作很好地映射到内置的团队、任务和背景执行原语。
关于具体的使用建议而非泛泛的声明,请参见docs/SHOWCASE.md。
🛡️ 权限
多级安全与细粒度控制:

路径层级规则在:settings.json
{
"permission": {
"mode": "default",
"path_rules": [{"pattern": "/etc/*", "allow": false}],
"denied_commands": ["rm -rf /", "DROP TABLE *"]
}
}
🖥️ 终端用户界面
React/Ink TUI 提供完整互动体验:
命令选择器:输入→方向键选择 → 进入
/权限对话框:互动 y/n 含工具详情
模式切换器:→从列表中选择
/permissions会议简历:→历史中的精选
/resume动画旋转器:工具执行过程中的实时反馈
键盘快捷键:底部显示,上下文感知
📡 CLI
oh [OPTIONS] COMMAND [ARGS]
Session: -c/--continue, -r/--resume, -n/--name
Model: -m/--model, --effort, --max-turns
Output: -p/--print, --output-format text|json|stream-json
Permissions: --permission-mode, --dangerously-skip-permissions
Context: -s/--system-prompt, --append-system-prompt, --settings
Advanced: -d/--debug, --mcp-config, --bare
Subcommands: oh mcp | oh plugin | oh auth
关于和同类产品的比较
既然是一整套 TUI 工具,比较的当然就是 Claude Code、OpenCode 了。
开发者是这么说的:OpenHarness = Claude Code 级别的 agent 能力 + 多 provider 支持 + 多 channel 接入 + harness engineering 自动化验证

关键差异化能力
Harness Engineering 方法论:不是"写代码然后手动测",而是:spawn agent → 自动执行 → 自动验证 → 报告结果。整个开发循环都在 harness 内完成。
Swarm 多 agent 协作:支持 coordinator 编排多个 in-process teammate 并发工作,不是只有单个 agent 独立对话。
Provider 无关:同一套 harness 可以跑在 Claude、GPT、Kimi、DeepSeek、Gemini、本地 Ollama 等任何 LLM 上。OpenAI-compatible endpoint 开箱即用。
快速扩充中:现阶段直接对标 Claude Code 的核心能力(从其源码提取转写),同时在快速扩展到更多应用场景:
类 openclaw 的 auth 管理
IM channel 集成(可以通过 Telegram/Slack 等使用)
一键安装 (
curl | bash)可换肤 TUI
写在最后
为什么会关注 OpenHarness,不是我觉得它是标准答案,而是看看这个项目能不能给我带来新的思路。
如果你之前已经理解了 Harness 的重要性,那这次看 OpenHarness,重点就不该还是停留在“哦,原来 Harness 很重要”。
更值得看的,其实是:一个新的开源团队,正在怎么把 Harness 真正做成系统。
团队里到底如何推进构建,这个最终形态到底是什么样子,现在我还不清楚。
究竟是通过团队自己整理出一份自己的 Harness 架构组成清单呢,还是找到接入一套够轻量成熟完备的 Harness 框架?亦或是连入口工具都统一,OpenHarness 这种整合了 Harness 的入口工具?
像我以前的文章里说的,没有所谓的“标准答案”。
至少现在还没有。
OpenHarness 当然还早,可能现在连正常使用起来都费劲。
但至少它给了我们一个新的思考方向。
对我来说,这就够了。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
