Harness 到底是什么?一次讲清楚Darren Nizna

Report

This page runs in an isolated sandbox because it contains scripts.

Text version

Harness 到底是什么?一次讲清楚

@theo 长文解读

harness

bash

read_file

search

edit_file

Harness

到底是什么?

大模型只会生成文字。

是谁让它真的动手干活?

01人 → 界面

人用电脑不写代码

靠的是界面

界面 Interface

Chrome · Claude Code

ChatGPT App

按钮

快捷键

命令

↓ 人看不见的那一层

def open_tab(url): …

on_key("cmd+t", new_tab)

subprocess.run(cmd, shell=True)

代码一直都在,人只看见界面。

02模型 → 文字

大模型默认只做一件事

生成文字

<read_file name="README.md">

……也只是一串字

像关着机敲键盘:什么也不会发生

03harness = 五样东西

想让模型真动手

需要这五样

1工具read_file · edit_file · bash …

2调用格式用文字表示「去跑这段代码」

3解析并执行的系统认出格式,运行对应的代码

4结果回传把工具的输出交还给模型

5工具清单有哪些工具、各自怎么用

合起来 = harness

04它跑的是一个循环

调用 → 执行 → 回传

→ 模型再想下一步

① 模型

写出调用

② harness

认出来,去执行

③ 工具运行

read_file(…)

④ 结果送回

模型接着往下想

一圈一圈

直到任务做完

05一条分界线

Claude Code

其实分两半

界面

终端里的 TUI · 桌面 App

(你敲 claude 打开的那个)

↑ 人看见的

↓ 模型看见的

harness

Anthropic Agent SDK

Codex 同理:App ⇄ Codex App Server

06拆下来,换个 App

同一个 harness

能装进别的应用

harness

装进的应用

Cursor 的 harness

Grok Bot

Pi

OpenClaw

Agent SDK

+ Codex App Server

T3 Code

Claude Code 和 Codex 把 harness 焊进了自己的 App,所以大家容易混。例子都出自原文。

07一个比方

harness 是厨房

工具是锅碗刀铲

harness = 厨房

没有哪个厨房什么都有 → 允许自带工具

TypeScript 插件

操作电脑 CUA

08工具层

工具在另一层

人和模型都摸不到

bash

read_file

edit_file

read_skill

…

harness

工具层

TS 插件

跳转定义…

操作电脑

截屏 · 点击

看不见 ✕

✕ 看不见

界面

harness 把工具亮给模型,也亮给界面。

09MCP

工具在这里跑

MCP 去别处要

工具 Tool

>_

在本机跑代码

像 Chrome 插件

得先装上

MCP

向别处发请求

像 网站

知道地址就能用

最常见:把数据接给模型 邮件网站数据

10全景

MCP 像菜谱

是做法,不是锅铲

bash

read_file

edit_file

harness

memory

CLAUDE.md

AGENTS.md

工具层

在 harness 里跑

界面

模型

数据层

代码跑在「别处」

Supabase MCP

PostHog MCP

T3 Code MCP

= 一本菜谱

11那 agent 是什么?

harness + 模型

= agent

模型

只会出字

+

harness

自己不会做菜

=

agent

能开火了

厨师

模型

厨房

harness

餐厅

T3 Code 带哪间厨房来都行

不同的 agent,往往只是 harness 的配置不同:工具、指令、MCP。

记住三句

01界面,给人用

02harness,把模型的文字

变成动作

03harness + 模型 = agent

下次听到 harness,先问一句:

它是给人看的界面,

还是让模型动手的那一层?

原文:Theo《What is a “harness”?》

x.com/theo · 2026-10-23