把 Claude Code 拆成乐高积木:OpenHarness 让 TypeScript 写 Agent 像拼乐高

TypeScript 写 Agent 的「乐高积木」,把 Claude Code 拆给你看。

如果你用过 Claude Code、Codex 这类终端 Agent,一定会感慨它们的能力上限——但真要把它内嵌到自己产品里,官方 SDK 又重得像砖头。OpenHarness 就是来解这事的:把 Claude Code 那一整套能力拆成可组合的代码原语,让你在自己的应用里像搭乐高一样构建 Agent。

它在解决什么问题

Claude Agent SDK 和 Codex App Server 都是「大而全」的方案,你要么吞下整套范式,要么全部放弃。OpenHarness 的思路不一样——它把 Agent 当成「无状态的执行器」:你传历史进去,它吐事件出来,中间所有逻辑(上下文压缩、重试、持久化、子代理委派)都拆成独立的中间件,你想用哪个就装哪个。

它建在 Vercel AI SDK 5 之上,所以你天然能用上 AI SDK 的所有 provider(OpenAI、Anthropic、Gemini、Ollama 本地模型都行),不是只能绑死一个供应商。

核心特性:可组合是核心

  • Stateless Agent:Agent 就是纯执行器,不背任何状态,状态全部交给 Session。这点设计很聪明——你可以随时序列化、调试、替换,而不会因为某个隐藏状态踩坑。
  • Middleware 链:会话压缩、重试、回合追踪、持久化,全部是可链式调用的中间件。和 Express / Hono 的中间件思路一脉相承,写过 Node 服务的同学一秒上手。
  • 子代理委派:Agent 可以 spawn 自己的子 Agent 处理子任务,深度可配,还能后台运行(独立 run ID + session ID)。
  • MCP 集成:原生支持 Model Context Protocol,stdio / HTTP / SSE 三种传输方式都能接。
  • 流式 UI:@openharness/react 和 @openharness/vue 包给前端工程师打包好了——开箱即用的流式聊天 UI,类型完整。

一段代码看懂用法

import { Agent, createFsTools, createBashTool, NodeFsProvider, NodeShellProvider } from "@openharness/core";
import { openai } from "@ai-sdk/openai";

const agent = new Agent({
  name: "dev",
  model: openai("gpt-5.4"),
  tools: {
    ...createFsTools(new NodeFsProvider()),
    ...createBashTool(new NodeShellProvider()),
  },
  maxSteps: 20,
});

for await (const event of agent.run([], "Refactor the auth module")) {
  if (event.type === "text.delta") process.stdout.write(event.text);
}

想加上下文压缩?套一层 withCompaction。想加重试?再套一层 withRetry。每一个能力都是独立可组合的,不会污染你的业务逻辑。

适合谁用

  • 想在自家产品里嵌入 Agent 能力、又不想被某个大厂 SDK 绑死的团队
  • 需要做内部 Copilot、代码审查机器人、自动化运维 Agent 的工程团队
  • 已经在用 Vercel AI SDK、想升级到完整 Agent 形态的 TypeScript 团队

实际使用注意

当前对 OpenAI 依赖比较重(默认 examples 都用 OPENAI_API_KEY),其它 provider 需要自己接。文档站 docs.open-harness.dev 写得挺干净——Agents、Sessions、Middleware、Tools、Subagents、MCP、UI Integration 七大模块,每个都有完整例子。CLI demo 和 Next.js / Nuxt 聊天 demo 都跑通,直接 clone 就能玩。

总星数 600+,MIT 协议,TypeScript 项目,最近 3 周刚更新过。比起那些动辄 10w+ 星的「全家桶型」框架,OpenHarness 走的是轻量、克制、可组合的路子——如果你信奉「组合优于继承」,这玩意很对你的胃口。

GitHub: https://github.com/MaxGfeller/open-harness


GitHub: https://github.com/MaxGfeller/open-harness

评论区

0 条评论

登录后可评论。

江望 2343 阅读