OpenHarness 中文使用教程
2026-07-26发表于
Python一、项目速览
入门 · 1 分钟版
OpenHarness 是港大数据团队开源的一套轻量级 Agent 基础设施,而 ohmo 是基于它构建的个人 AI 助手。它解决的不是"再做一个聊天框",而是把 Agent 在长会话里真正"替你干活"所需的脚手架全部铺好——tool-use、skills、memory、多 agent 协同。
仓库目前 15k+ Star、2.4k+ Fork,114 个测试通过、43+ 工具、54 个斜杠命令,社区反馈活跃度属于近期 Agent 框架里第一梯队。
二、核心功能与架构
进阶 · 推荐细读
整个仓库围绕 10 个子系统展开:engine 负责 Agent 主循环(query → stream → tool-call → 循环),tools 提供 43+ 个开箱即用工具(文件 I/O、Shell、搜索、Web、MCP),skills 用 .md 文件按需加载领域知识,permissions 做多级安全拦截,hooks 暴露 PreToolUse/PostToolUse 生命周期钩子。
一句话判断:模型负责"想什么",Harness 负责"怎么安全地做"——权限、钩子、工具编排、日志它全包了,你只关心业务。
剩下的子系统同样关键:coordinator 处理多 Agent 协同(subagent 派生、team 调度),memory 跨会话持久化记忆,mcp 内置 Model Context Protocol 客户端可直接挂外部 MCP 服务,配合 React+Ink 写的 TUI 和兼容 Anthropic 协议的 API Client,整套从 CLI 到 UI 都是可替换的。
三、动手实践
入门 · 1 分钟版
环境准备:Python ≥ 3.10、Node(仅 TUI 需要),以及一个 Claude Code 或 Codex 订阅账号——ohmo 直接复用订阅,不另收 API key。
安装有两种姿势,二选一:
# 一键安装(macOS / Linux)
curl -fsSL https://raw.githubusercontent.com/HKUDS/OpenHarness/main/scripts/install.sh | bash
# 或走 PyPI
pip install openharness-ai
装好后先做一次 dry-run,零消耗地看一眼 runtime 是否就绪:
oh --dry-run
这条命令会输出 ready / warning / blocked 三档判断,并附上下一步建议——比如 auth 没配、MCP 配置坏了,还是可以直接跑 prompt。是上线前的健康检查神器。
最小可运行示例:让 ohmo 在本地仓库开分支、写代码、跑测试、提 PR:
oh "为当前仓库新增 README 中文翻译,并跑一遍 pytest"
第一次执行会触发权限弹窗(permissions 子系统),选 allow-for-session 即可。
两个常见踩坑:
- IM 接入不响应:很多人把 ohmo 接到飞书/Slack 后发现 bot 不说话,原因是它走的是出站 WebSocket而不是入站 webhook,需要在
~/.openharness/config.yaml里填feishu.app_id和app_secret,由 ohmo 主动连 IM 网关。 - 工具调用静默失败:八成是
permissions默认模式拦截了bash工具,先跑oh --dry-run看清楚 warning 列表再放行。
四、进阶玩法
深入 · 老手可选
想在团队里复用 ohmo 的工作流,最直接的做法是写自定义 plugin。下面是一个简化版配置,挂上去 /deploy 命令就能被 ohmo 识别:
# ~/.openharness/plugins/deploy.yaml
name: deploy
description: 部署当前分支到 staging
commands:
- name: deploy
handler: ./handlers/deploy.py
permission: write
hooks:
PreToolUse:
- match: "bash"
deny_regex: "^rm -rf /"
文件丢到 ~/.openharness/plugins/ 后,oh --dry-run 会立刻把它列在已加载插件里。
作者视角:如果你是做后端开发的,建议优先研究
engine/query_engine.py和tools/registry.py——这两个文件决定了工具怎么注册、prompt 怎么组装。把它们读懂,再去看coordinator/的多 Agent 调度,理解路径最短。
更激进的玩法是把 ohmo 接到内部 MCP 服务(例如自家的日志查询、CI 触发器):
# ~/.openharness/mcp.yaml
servers:
- name: internal-logs
command: ["python", "-m", "my_company.mcp_logs"]
env:
LOG_TOKEN: ${env:LOG_TOKEN}
oh 启动时会自动发现并加载,模型调用工具时可直接用 mcp__internal-logs__query 这种命名空间前缀。
五、判断与建议
进阶 · 推荐细读
应该选它:你已经在用 Claude Code 或 Codex,想把"在 IM 里喊一句,机器人就把 PR 开了"这个工作流跑起来;或者想搭一套自己的 Agent 基础设施,又不想从零写 tool-use 循环、权限拦截、hooks 这些脏活。
不该选它:你只想要一个本地跑命令的轻量 CLI——oh 自带 43+ 工具和 React TUI,对纯脚本场景偏重;或者你的模型不在 Anthropic 兼容协议范围里(虽然 API Client 可替换,但默认没适配)。
一句话结论:把它当成"Agent 时代的 Rails"——基础设施给你铺好,差异化靠你自己的 plugin 和 skill,而不是重新发明轮子。
项目信息
| 项目 | 值 |
|---|---|
| 仓库 | HKUDS/OpenHarness |
| 语言 | Python |
| Star | 15,042 |
| Fork | 2,450 |
| 主页 | 无 |
参考链接
74
45
1
974
文章目录
评论