返回项目

PROJECT FILE 01 · SOURCE RESEARCH

OpenHarness Lab

选择 OpenHarness,不是为了再使用一个现成 Coding Agent,而是为了把 LLM 外面的执行系统拆开,并以它为起点构建自己的 Agent。

Source Reading / Modification2026RESEARCH

项目介绍

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。

为什么不选 OpenCode

OpenCode 是更成熟的开源 AI Coding Agent,已经覆盖终端、桌面端、IDE 扩展、Server 和 SDK。它同样拥有 Tools、Permissions、Skills、MCP 和子 Agent,所以这里不是在判断哪个项目的功能更强。

两者的区别更像是研究入口不同:OpenCode 适合研究一个完整 Coding Agent 产品如何成立;OpenHarness 则直接把 Agent Loop 与 Harness 子系统放在架构中心。从我目前的阅读体验看,它的核心边界更集中,更容易沿着一次请求追踪 QueryEngine、ToolRegistry、Permissions、Hooks 与上下文装配。对“先看清 Harness,再构建自己的 Agent”这个目标来说,它是更合适的第一份样本。

阅读与改造重点

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

项目产出

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

相关文章