OpenHarness 是什么

OpenHarness 是由香港大学 Data Intelligence Lab(HKUDS)开源的 Agent Harness。它没有把 Agent 简化成一次模型请求,而是把 Tool Use、Skills、Memory、Permissions、Hooks 与 Multi-Agent Coordination 一起放进 LLM 外层的运行基础设施。

项目于 2026 年 4 月开源。截至 2026 年 7 月 11 日,GitHub 仓库约有 14.7k Stars 和 2.4k Forks。这些数字不能代表技术结论,但可以说明它在开源后的短时间内获得了明显关注。

我选择它作为源码研究样本,是因为目标不只是使用现成 Agent,而是理解模型怎样通过上下文、工具、权限和运行时边界变成一个真正能工作的系统,再逐步构建属于自己的 Agent。

读什么,改什么

  • Agent Loop:用户消息怎样进入 ,模型如何在文本回复与 之间选择,工具结果又如何进入下一轮判断。
  • Tool System:工具如何定义输入模型、注册、生成 Schema,并在可观测的边界内执行。
  • Permissions 与 Hooks:模型提出动作后,系统如何结合模式、路径规则与生命周期事件决定它能否发生。
  • Context 与 Skills:系统提示词、环境信息、项目规则与按需加载的技能如何组成模型当前看到的世界。
  • Memory 与 Compaction:长会话如何压缩历史、保留任务状态,并在跨会话中持续积累知识。
  • Multi-Agent Coordination:子 Agent、任务和隔离工作区如何被创建、调度与回收。
  • 自定义 Agent:在理解上述边界后,逐步替换或扩展模块,形成自己的 Agent Runtime。
  • 工程迁移:通过本项目的源码学习,提炼可以迁移的设计思路,并尝试把它们落到真实工程 Agent 中。

目前的产出

产出不是一份逐文件源码目录,而是一组可以迁移到其他 Agent 系统的判断:模型负责提出候选动作,Runtime 负责让动作安全发生,工程师负责目标、权限与风险阈值。

这个系列的文章

  1. 按下回车之后After you press Enter7 分钟7 min
  2. 模型答完了,任务还没完The model is done. The task isn't.13 分钟13 min
  3. 从零写一个工具,到模型能调用它From an empty file to a tool the model can call10 分钟10 min
  4. 九道检查,顺序就是安全策略Nine checks, and the order is the policy9 分钟9 min
  5. Hook 返回 blocked,不等于真的拦住了A hook returning blocked doesn't stop anything by itself11 分钟11 min
  6. 先给目录,用到再翻正文Catalog first, body on demand11 分钟11 min
  7. 外部工具接进来,走的还是同一条管线External tools, same pipeline14 分钟14 min
  8. 谁定义,谁派活,谁来跑Who defines, who dispatches, who runs12 分钟12 min

从第一篇读起Start from part one