嗨,我是小华同学,专注解锁高效工作与前沿AI工具!每日精选开源技术、实战技巧,助你省时50%、领先他人一步。👉免费订阅,与10万+技术人共享升级秘籍!
你以为 Agent 有了大模型就能交付?现实不是这样。
它可能知道该读文件、改代码、跑测试,但真正决定 Agent 能不能稳定干活的,是工具怎么接、权限怎么控、上下文怎么续、失败怎么重试。
这篇用 3 分钟讲清 OpenHarness:给模型套上一层 Harness,让 AI 从“会聊天”变成“能在边界内做事”。
这个项目是什么
OpenHarness 是一个面向开源社区的 Agent Harness,项目入口命令是 oh,另外还提供基于它构建的个人 Agent ohmo。
一句话理解:模型负责决定做什么,Harness 负责决定怎么做、能不能做,以及做完之后留下什么结果。
| 维度 | OpenHarness 提供的能力 |
|---|---|
| Agent Loop | 流式 Tool Call、重试、并行执行、Token 与成本跟踪 |
| 工具体系 | 43+ 工具,覆盖文件、Shell、搜索、Web、MCP 等 |
| 知识扩展 | Markdown Skills 按需加载,支持插件、Hooks 和 Agents |
| 上下文 | CLAUDE.md 注入、MEMORY.md 持久记忆、会话恢复、自动压缩 |
| 安全治理 | 多级权限、路径规则、命令拦截、PreToolUse/PostToolUse Hooks |
| 协作能力 | 子 Agent、团队注册、任务生命周期和后台任务 |
截至 2026 年 7 月 19 日,官方仓库页面显示约 14.9k Star、2.4k Fork,使用 MIT 协议,主要技术栈是 Python,并配套 React/Ink TUI。
别把 Agent 只理解成一个聊天框
很多 Agent Demo 看起来很聪明:输入一句话,模型给出一段漂亮回答。
但真正进入项目后,问题马上变成:
- 它能不能读到正确的文件?
- 它有没有权限执行危险命令?
- 工具失败后会不会无限重试?
- 上一轮会话的上下文还能不能接上?
- 多个 Agent 同时工作时,任务和结果怎么管理?
这就是 Harness 的价值。它不是替代模型,而是把模型放进一个有工具、有观察、有记忆、有边界的运行环境里。
上图其实可以浓缩成一句话:模型决定 WHAT,Harness 处理 HOW。
OpenHarness 真正补齐了什么
1. 把 Agent Loop 做成基础设施
OpenHarness 不只是发起一次模型调用,而是围绕“请求、流式响应、Tool Call、执行结果、继续循环”组织运行时。
工具执行前后还可以经过权限检查和 Hook。这样,Agent 的每一步都有机会被观察、限制和记录。
2. 把 Skills 和 Plugins 变成可插拔能力
项目支持按需加载 Markdown Skills,也支持插件、命令、Hooks、Agents 与 MCP 服务。
对开发者来说,这意味着你可以把领域知识和操作规范写成可复用模块,而不是把所有规则硬塞进一个超长 System Prompt。
3. 把“记忆”从一句口号变成文件和会话机制
CLAUDE.md 可以参与上下文注入,MEMORY.md 用于持久知识,Session Resume 和 Auto-Compact 则负责让长任务不至于因为上下文压缩而失忆。
这对代码 Agent 尤其重要:真正的开发任务往往不是一次问答,而是连续几小时甚至几天的协作。
4. 把权限放到 Agent 的主流程里
文件路径、命令规则、交互式审批、PreToolUse/PostToolUse Hooks,构成了一个更明确的治理层。
它不能替你自动消灭所有风险,但至少让“模型说要做什么”和“系统允许它做什么”分成两件事。
最值得收藏的功能:oh --dry-run
这是 OpenHarness 很适合工程团队的一点:先预演,再执行。
oh --dry-run
oh --dry-run -p "Review this bug fix and grep for failing tests"
oh --dry-run -p "Explain this repository" --output-format json
Dry-run 会解析当前的配置、认证状态、Prompt、Skills、Commands、Tools 和 MCP 配置,但不会调用模型、执行工具、启动子 Agent 或连接 MCP Server。
它还会给出三种 readiness 结论:
| 结果 | 你应该怎么理解 |
|---|---|
ready | 当前配置基本可以直接运行 |
warning | 能解析,但存在认证或 MCP 等待处理的问题 |
blocked | 按当前状态继续执行大概率会失败 |
这类设计的意义不在于多一个参数,而在于它把 Agent 运行前的“可解释检查”变成了标准流程:先知道它准备调用什么,再决定是否真的放行。
3 分钟跑起来
pip install openharness-ai
oh setup
oh -p "Explain this repository"
如果想从源码体验:
git clone https://github.com/HKUDS/OpenHarness.git
cd OpenHarness
uv sync --extra dev
uv run oh
想体验个人 Agent,可以继续:
ohmo init
ohmo config
ohmo gateway start
项目文档还提供 Claude、OpenAI、Codex、GitHub Copilot 以及多种兼容接口的 Provider Workflow。Windows PowerShell 下,官方建议使用 openh,避免和系统的 Out-Host 别名冲突。
它适合谁
| 人群 | 值得看的原因 |
|---|---|
| Agent 开发者 | 研究工具调用、上下文、权限与多 Agent 的组合方式 |
| AI 应用团队 | 参考一套从 Prompt 到运行时治理的工程骨架 |
| Python 开发者 | 可以从清晰的模块边界入手扩展工具、Provider 和插件 |
| 想做个人 Agent 的人 | ohmo 可接入飞书、Slack、Telegram、Discord 等渠道 |
但也要保持清醒:OpenHarness 是 Agent 基础设施,不是“装上就自动完成一切”的万能机器人。 你仍然需要配置 Provider、认证和权限;真正用于生产环境时,还要自己评估数据边界、命令白名单、成本和失败恢复策略。
小华的判断
OpenHarness 最值得关注的地方,不是又做了一个聊天界面,而是它把 Agent 最容易被忽略的部分摆到了台面上:工具、记忆、观察、行动和权限。
当大家都在讨论“哪个模型更聪明”时,Harness 提醒我们:Agent 能不能稳定交付,往往取决于模型之外的那一整层工程系统。
如果你正在做代码 Agent、MCP 工具、个人 AI 助手或多智能体协作,OpenHarness 很适合拿来做一次结构化拆解。后续可以继续研究它的 Tool Registry、权限检查、Provider Workflow 和 ohmo Gateway。