OpenHarness:又一个新一代 Harness 框架?基座?

0 阅读9分钟

如果之前看过我写的 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、插件生态系统。

Pasted image 20260406150656.png我看这类项目有个很朴素的习惯:
先不听它讲得多牛逼,先看三件事——实际上手难度、支持什么能力、能做到什么程度

OpenHarness 在这三件事上,至少第一眼看过去是成立的。

它的结构也比较清楚,没有那种“功能很多,但不知道核心在哪”的感觉。项目里基本能看到几层很明确的划分:

  • engine:负责 Agent Loop

  • tools:负责工具注册和执行

  • 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+

  • uv

  • Node.js 18+(如果要用 React TUI)

  • 一个可用的模型 API Key

Pasted image 20260406180048.png后面按照终端的提示,或者在~/.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 指令进入

landing.png如果你只是想丢一个 Prompt 测试,也很简单:

oh -p "解释这个代码库"

如果你想把它接到自动化流程里,它也支持结构化输出:

oh -p "列出main.py中的所有函数" --output-format json

或者流式 JSON:

oh -p "解决登录失败的问题" --output-format stream-json

这一点我还算是比较有意思。

因为很多项目的实际使用方式还是停留在“命令行聊天”,OpenHarness 至少已经把几种典型场景都考虑进去了:

  • 人在回路里的交互式使用

  • shell 脚本里的自动化调用

  • 程序对程序的结构化消费


Provider 支持

OpenHarness 支持三种主流供应商 API 形态:

  • Anthropic

  • OpenAI-compatible

  • GitHub Copilot

以我们最常用的 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,但是又有些许不同。至少没有把自己绑死在某个模型供应商上。


特色能力部分

Pasted image 20260406153443.pngOpenHarness 官方文档里已经比较清楚列举了,整体还是以 Harness 体系构建为核心,我就直接拿来了。

🔧 工具(43+)

类别工具描述
文件输入输出敲击、阅读、写作、编辑、glob、grep带权限检查的核心文件操作
搜索WebFetch、WebSearch、ToolSearch、LSP网页和代码搜索功能
笔记本笔记编辑Jupyter笔记本单元编辑
代理人代理、发送消息、TeamCreate/Delete子代理生成与协调
任务任务创建/获取/列表/更新/停止/输出后台任务管理
MCPMCPTool,ListMcpResources,ReadMcpResource模型上下文协议集成
模式进入计划模式、退出计划模式、工作树工作流程模式切换
赛程CronCreate/List/Delete, RemoteTrigger定时执行与远程执行
元文化技能、配置、简报、睡眠、AskUser知识加载、配置与交互

每个工具都具备:

  • 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 个官方插件:

插件类型它的作用
commit-commands指挥git提交、推送、PR工作流程
security-guidance钩子文件编辑的安全警告
hookify命令 + 代理创建自定义行为钩子
feature-dev指挥功能开发工作流程
code-review代理人多代理PR评审
pr-review-toolkit代理人专业的PR审核代理
# Manage plugins
oh plugin list
oh plugin install <source>
oh plugin enable <name>

🤝 生态系统工作流程

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 自动化验证

·Claude Code / OpenCodeOpenHarness
定位Terminal AI coding assistantAgent Harness framework
核心单 agent 对话多 agent 编排 (swarm coordinator + in-process teammates)
provider绑定单一 provider24+ LLM provider 注册表 (Anthropic/OpenAI/DeepSeek/Gemini/Kimi/Ollama...)
channels仅 CLICLI + 11 种 IM channel (Telegram/Slack/Discord/飞书/钉钉/微信...)
可编程性有限 (hooks + MCP)完整 (hooks + skills + plugins + agent definitions + permission sync)
验证harness-eval: 在陌生代码库上用真实 API 跑端到端验证

关键差异化能力

  • 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 当然还早,可能现在连正常使用起来都费劲。

但至少它给了我们一个新的思考方向。

对我来说,这就够了。