据网上传,目前Anthropic的所有产品均为harness模式,不过最近他们推了一个harness产品,原本把我吓了一跳,但实质一看,并不是干货,多少有点恶心人了,好东西都藏起来。我昨晚也成功验证了自己的第二个harness,工程量比是一开始做demo的100倍,平均跑完要30-50M token,10个小时左右(glm-5),并且效果还挺好。不过还是有很多优化点的,这也正是本贴的由来,在接下来这段时间,我将对第二个harness工程进行总结以及优化,形成harness固定体系。可能会涉及harness的以下层面,如共识记忆、规划层、执行层、评估层、调度器、外部资源、状态等等,我均会在此贴中不断累计。
【0.1.1】理论篇
理论先行:请各位佬们先阅读以下harness理论文章,我觉得很好,我也是阅读这几篇,没有藏其它的。
Anthropic harness 工程实践:harness设计长时间运行的应用程序开发(2026.03.24):
OpenAI harness工程实践:工程技术:在智能体优先的世界中利用 Codex(2026.02.11):
https://openai.com/zh-Hans-CN/index/harness-engineering/
构建长时间高效运行的智能体(2025.11.26):
【0.1.2】理论篇
我的harness将全是基于claude code的,因为claude code是个很好的执行层,而我正好懒得写。像openAI是基于openAI SDK写的(最后还是改成了codex开始自举,这也是我参考因素之一),Anthropic是基于anthropic SDK写的,而我觉得claude code本身具备那些SDK所有的功能,我也不追求原生态。在这里也是想告诉各位佬,此时,卿面临第一道选择题,
1.claude code类的编程智能体,以插件或skill的形式编写harness工程【本人选择】
2.以openAI/anthropic等等SDK、langgraph、springAI、agentScope等纯原生形式编写harness【大厂选择】
选1的,需要熟读以下文档,选2的需要佬们各自找对应文档,该贴后续两条路线均可实施
【0.2.1】记忆篇(后面配合案例细讲)
我是软件行业出身,做工程先做表关系,开始第一个实践,共识记忆,以下是我个人设计的一个web应用harness的共识记忆目录,大家需要先做好这层构想,后续就需要开始走流程设计了:
.web-builder/
├── feature_list.json # 功能注册表 — 唯一可信来源
├── spec.md # 产品规格
├── design_tokens.json # 视觉标识(调色板、字体、反模式)
├── sprint_plan.json # 冲刺分解
├── progress.md # 持续构建日志
└── sprint_N_*.md # 各冲刺的合约、交接、QA 报告
【0.2.2】架构篇(后面配合案例细讲)
了解harness的佬们肯定都知道有三层架构,规划(planner)、生成(generator)、评估(Evaluator),在这之外还有一层协同调度(Orchestration),协同调度是启动harness的开关。在claude code中,可以使用command作为协同调度,以明确的命令启动harness,有助于使用者清醒此时为harness运行时,而其它三层架构使用subagent的由command引用,注意这里绝对不能使用background模式,claude code的bg有毒,会有跳步风险。另外这三层架构分类需要做哪一个领域的就是佬们自己想要的了,以下给的示例,是web应用领域的。
【0.3.1】长时间运行机制篇(后面配合案例细讲)
佬们有了理论,数据库,架构都搭建好了吧,好的,我们可以开始了,没想到吧佬们,是不是前面就已经够头痛的了,居然现在才是开始。这一步,是架构设计后的增补,却也是至关重要的一步,希望佬们不要卡住。我们需要充分利用claude code的agent、skill、hook机制,使流程保持在一个正向迭代循环中运行。比如:
planner:
- 1.收集需求
- 2.扩展验证
- 3.评估合理性
- 4.不合理
- 5.撤销
- 2.回到扩展验证
- 4.合理
- 6.开始分配sprint
- 7.sprint分配不合理
- 6.回到开始分配sprint
- 7.合理
- 8.planner完成
这里也是harness的关键,相信佬们看到过关于harness的文章,harness工程就是引导AI代替自己完成,而自己只需要优化harness即可,优化,指的就是这里。
【0.3.2】流程调度(这块太复杂,我不一定讲得好,佬们仅做参考)
以上我们就是完成了三层架构的内容了,不过我们还需要把三层架构给串起来,才是一个完整的harness工程,也就是网上一直传的很火的Orchestration,但是我这认为这里不能直译,仅作为harness的一个抽象概念。往细了讲我也有点不知所谓,大家就先保留一个这个概念吧。直接讲实现。
前面提到,我是使用claude code command + subagent完成调度的,这里为了照顾不使用claude code佬们,我提下两个点。
- command可以直接启动subagent,不断开与subagent的连接并保持subagent的独立上下文
- subagent任务进行中,command进程阻塞,subagent任务完成时,command恢复运行
我如何去保持自动迭代并完成任务的呢,这里就不丢原码了,我直接说流程:
1.启动command
2.由command带动环境初始化,如初始化目录,claude.md、setting.json、.git等基础文件
3.启动planner解构并放大(业务需要)用户需求,并分解为多个sprint(我原文写了6-8个),形成上述记忆文件
4.进入rahlp loop,启动generator,读取各类记忆文件并生成代码、playwright代码等
5.generator完成后启动evaluator,执行playwright,总结bug list,并评分,评分达到阈值则继续下一个loop,如未达到则启动generator修复,再往复
6.one more time直至结束。
command
你正在启动 web-builder 工作框架,构建目标:$ARGUMENTS
本工作框架按顺序运行三个智能体:
1. **策划者**(Planner)—— 将描述扩展为完整产品规格
2. **生成者**(Generator)—— 按冲刺逐步实现功能
3. **评估者**(Evaluator)—— 通过 Playwright 对每个冲刺进行 QA 审查
## 你的首要任务
将以下提示委派给 `web-builder-planner` 子智能体:
"
构建此应用:$ARGUMENTS
在开始前先读取 web-builder 技能中的完整指令。
创建所有必要的 .web-builder/ 文件,完成后输出「策划者完成」。
"
策划者完成后,读取 `.web-builder/sprint_plan.json` 查看冲刺总数,
然后将冲刺 1 委派给 `web-builder-generator` 开始实现。
工作框架仅在 `.web-builder/feature_list.json` 中所有功能的
`"passes"` 字段均为 `true` 时才视为完成。
省略中间git / pr等步骤,其实我觉得也可以不做这一步,本来就是AI一个人写代码,搞这些还浪费token。不过Anthropic和OpenAI都强调工作区干净概念,才会对有的git \ pr这些,各位佬也可自行决策,此处非harness核心概念
然后这里也是harness优化的关键
【0.3.3】状态设计
{这里是占位符,太复杂了,一时不知道该怎么写,先跳过}
【0.4.1】能力设计
这一块就是写提示词,相信佬们已经很熟悉了,结合上面的理论,这里给个参考,没啥好讲的。
注意:请不要直接使用,中文提示词用在模型上很费token,我这是为了方便理解翻译过来的。
planner Agent
你是 web-builder 工作框架中的**策划者**智能体。
你的唯一职责:在任何代码编写之前,读取 `web-builder` 技能,
然后创建完整的 `.web-builder/` 项目基础文件。
## 必须生成的文件
## 完成标准
generator Agent
你是 web-builder 工作框架中的**生成者**智能体。
你的职责:实现当前冲刺的功能,然后交接给评估者进行 QA。
## 每次会话必须按顺序执行的定向步骤
## 冲刺工作流
## 实现规则
## 交接信号
evaluator Agent
你是 web-builder 工作框架中的**评估者**智能体。
你的职责:严格测试生成者的工作成果并诚实评分。
你**发现问题**,而不是赞美工作。
## 评估者心态(至关重要)
## 合约审查(每个冲刺前)
批准(添加时间戳)或写 xx 要求修改。最多 x 轮修改。
## QA 流程(每次交接后)
## 评分维度
**通过阈值:75/100**
## 输出格式
【0.4.2】skill引入
skill是Anthropic公司设计的,大家都很了解了,简单提下,其主旨为为上下文减负,运行时只加载每个skill的前250个字符,所以大家在写description时,最好一句话描述该skill的能力即可,更多的放在script里面,然后在agent引用
by the way,不要安装太多无意义的skill在本地,无形中已吃掉了你大多数的token,比如agency-agent、superpower、everything-claude-code等大型框架
【0.4.3】mcp引入
mcp是Anthropic公司设计的,大家都很了解了,简单提下,基主旨为AI链接真实世界,但这里面是harness,我个人的理解应该是用harness的产物才链接真实世界。不过呢,现实大于理想,在harness设计中,为了补齐AI短板,我们还是需要通过MCP增强能力,推荐以下几点:
- figma MCP,增加页面设计能力
- playwright MCP 增加端到端验证能力,也就是保证产出无Bug(本人目前写的静态playwright代码测试的,mcp不成功,我也懒得去追查)
【1.0.0】工程实操
主体内容已经讲完,这里给几个主题,等待佬来交作业
- AI知识库,该知识库不允许利用RAG,同时提供chat能力、web搜索能力,对已上传文档进行二次创作,比如PPT、word、excel、图片、视频 等
- AI音频,该harness同样需要chat能力、web搜索能力,能够产出乐谱、音频文件
- AI空间,该harness为空间类型,同样需要chat能力,能够生成空间文件
- AI排版,该harness内容较为简单,但量大,排版要求高,与知识库差距胜在排版
- 这只是举例,怕佬们像无头苍蝇,大家也可自由发挥