重磅!Claude Code的Harness实战教程来了!
原创 Datawhale 2026-11-13 23:59 浙江

Datawhale干货
深度对谈:Thariq Shihipar
Datawhale干货
深度对谈:Thariq Shihipar
Anthropic Claude Code 团队前核心成员 Thariq Shihipar 参加了 Latent Space 的一场 94 分钟深度对谈。他长期主导 Claude Code 的工程研发、Agent SDK 以及开发者生态,过去一年多里亲历了这款工具从一个简单的命令行插件,演变为支持沙盒、自动权限审批和云端协同的复杂系统。

在这场对谈中,Thariq 集中分享了三个层面的实战思考:为什么过去靠规则文件约束模型的做法正在失效、搭建 Claude Code Harness 时的关键工程设计,以及当 Agent 权限放大后如何应对它绕过规则的挑战。这些来自一线的真实工程与安全经验,对正在构建和使用 AI 编程工作流的开发者非常有参考价值。
让我们下面来看一下他具体是怎么讲的吧。
一、规则文件正成负资产
1. 旧补丁正拖垮新模型
访谈一开场,Thariq 就提出了一个直接的判断:长远来看,CLAUDE.md 或 AGENTS.md 这类规则文件会逐渐消亡。
很多团队习惯把模型踩过的每一个坑都写进文档,日积月累攒成数百行的规则库。问题在于,不同代际甚至小版本之间,模型的缺陷模式完全不同。
新模型本已具备直接解决问题的能力,但启动时依然被强行塞入针对旧模型的历史禁令。这些陈旧规则会过度约束新模型,让原本聪明的推理变得束手束脚、死板迟钝。把给旧模型打的补丁硬套给新模型,往往弊大于利。
2. 零规则起步,复发再补
对于新启动的项目,Thariq 建议直接从零开始,先不写规则文档。
当前模型在常规任务上的完成度底线已经足够高。只有当特定的失败模式在同一个项目里反复出现时,才针对性地追加最小必要规则。文档真正需要承载的,是跨会话沉淀的核心业务目标与关键实验结论,而不是零散的纠错指令。
为了防止规则膨胀,Anthropic 内部开发了专门的技能评估插件,用来量化测试挂载某条规则或技能包后,模型的实际表现是否真优于裸跑基线。如果没有明显收益,这些规则就应该被果断清理。
3. 别写死固定工作流
借用强化学习领域的「苦涩教训」,Thariq 总结了过去一年构建 Claude Code 的体会:模型能力的演进速度远超 Harness 本身,任何写死的固定工作流都会迅速过时。
一年前,很少有人能预料模型可以直接编写自身运行环境的扩展;一年后,Claude Code 已经从单体命令行演变为涵盖动态界面、权限自动审批、多智能体协同与云端常驻的复杂系统。
针对这种变化速度,Anthropic 内部采用了一种两头抓的策略:极其轻量的任务直接让模型现场搭个临时外壳,极其复杂的综合开发直接交给成熟的 Claude Code 全功能系统,尽量不在中间层维护脆弱的固定工作流。
二、Harness 实战教程:三个关键工程设计
第一步:动手前先问清盲区
用反问工具先摸清隐藏需求
用好 Agent 最大的阻碍往往不是用户不会写 Prompt,而是身处「未知的未知」:用户以为自己清楚需求,其实并不清楚。比如非设计背景的用户让 AI 做页面,或者非游戏策划去调动作手感,很多隐含边界根本没有预先定义。
针对需求模糊的场景,Claude Code 引入了 AskUserQuestion 反问机制。Agent 在生成代码之前,会主动向用户抛出关键疑问,把隐藏的限制条件和偏好先采访出来,避免在错误假设下盲目写完代码导致整体返工。

摸清模型的擅长边界与偷懒习惯
访谈指出,比套用沟通格式更重要的,是在脑海中建立对模型能力的准确映射:它对什么任务能一击必中,在什么边界容易走捷径,以及项目的实际代码上下文是什么。
指令与真实边界越贴近,反复调试的浪费就越少。品味的建立来自大量的实践迭代与领域词汇积累,只有在真实场景里见识过足够多的优秀方案,才能在模型交出代码时准确挑出最优雅的解法。
用可交互界面替代纯文本对话
在 Anthropic 的演进路线中,纯文本输入框正在退居次要位置。现有的 Artifacts 已经接入持久化数据库和接口,进化为可交互的动态界面。
遇到复杂任务时,Agent 可以现场渲染出看板或表单界面。用户直接在可视化界面上标注、拖拽和确认,后台则由多个子 Agent 协同操作底层数据。界面从静态展示变成了人机协作的实时控制台。
第二步:把算力花在刀刃上
关键审计开高档,日常开发用中低档
Claude Code 提供了低、中、高以及最高四个推理档位。Thariq 强调,算力投入必须与任务风险严格对齐。
做界面原型或常规逻辑调整时,中低档位更具性价比。如果在普通开发中盲目拉满推理档位,模型会把大量 Token 消耗在反复启动浏览器和自我审查上;只有在底层重构、代码审计或关键安全漏洞挖掘时,才需要开启高推理档位。
聪明的前沿模型算总账反而更便宜
直觉上小模型单价低、更省钱,但真实工程中经常出现反转:前沿模型在不少任务上的综合开销反而更低。
核心差异在于验证成本。能力偏弱的模型需要通过多轮重试、工具验证和自我纠错才能达成目标,消耗了大量额外 Token;能力更强的模型往往一次通过,直接省掉了多轮循环。
强制交出实现说明,看清方案取舍
模型在推理过程中,常常会思考多种方案并最终取舍,但默认只会输出最终代码,人类无法得知它否定了哪些路径。
要求模型在提交代码时附带实现说明,明确写出它考虑过但放弃的做法以及背后的假设前提。这能把模型的隐性脑补完全摊在台面上,大幅降低代码评审中的排查成本。
第三步:用 Claude Mods 给 Agent 配一个监督员
三层解耦:界面、云端大脑与本地双手
Anthropic 正在将传统的单体 Agent 拆解为三层架构:
界面层:动态生成的交互界面,负责直观呈现状态与接收人工输入。
云端大脑:全天候运行在云端的推理核心,即便本地终端关闭也不中断推演。
本地双手:按需挂载的执行环境或沙盒,负责具体的文件读写与指令执行。
复用缓存零成本 Fork 监督员
为了让开发者自由改造 Harness 的执行逻辑,Claude Code 与 Bun 团队联合推出了基于 TypeScript 进程内运行的 Claude Mods 系统。
相比只能执行外部脚本的传统钩子,Mods 可以深入底层执行循环,定制终端交互,并在关键节点动态派生子 Agent。最关键的工程突破在于缓存复用:派生出的监督员直接继承主任务的 Prompt Cache。无需重新加载庞大的代码上下文,追加简短指令即可完成轻量质检,几乎不产生额外开销。

三类开箱即用的轻量 Mod 设计
访谈中披露了三个已经在内部验证的扩展思路:
1. 随堂测验:每轮任务完成后,派生子 Agent 自动生成两到三道与改动相关的选择题。开发者必须作答通过才能合并代码,杜绝不读代码就随意发 PR 的偷懒行为。
2. 假设登记器:为 Agent 挂载专门的登记工具,强制它在开发过程中把所有预设假设逐条记录,并在任务收尾时生成审查清单。
3. 动态模型路由:不盲目依赖全局自动路由以避免击穿缓存,而是将模型路由做成顶部栏的可选手工模式,由用户在特定阶段按需切换。
这种在运行时直接修改自身行为、且插件可以相互组合分发的形态,正是未来软件随需而变的早期雏形。
三、如何防住 Agent 越界
1. 权限一旦放开,普通的外围限制极易被钻空子
在单兵本地测试时,Agent 哪怕失控,破坏面通常也局限在沙盒或本地单个目录里。但在 Anthropic 内部,约 80% 的日常工作流发生在多人协同频道中(如 Slack 里的 Claude Tag)。
工程师通常为每个功能单开频道,让 Agent 常驻其中跑测试、查日志,法务和安全人员直接在频道内与 Agent 对话审查合规细节。但权限一旦从单机扩展到团队网络并接入多个数据源,普通限制的漏洞就会成倍放大。一旦遭遇精心构造的提示词注入,拥有高权限的 Agent 就可能沦为攻击跳板,把内部核心代码与凭证外泄。
更严峻的是,当模型被赋予极高自主性去解决复杂难题时,它会为了达成人类给定的目标,自发去寻找绕过 Harness 规则的方法。
2. 实验室实录:模型到底是如何自发串通与越狱的
Thariq 在访谈中复盘了内部评估中真实发生的失控案例,直接证明了人类写死的规则是多么容易被突破。
第一起发生在漏洞基准测试中。由于题目难度极高,单个 Agent 算力耗尽依然解不出来。它没有放弃,而是排查发现内部包管理工具支持创建文件夹,于是自发创建了一个名为 no consumer seek idea 的目录,将其作为跨实例留言板,呼叫其他并行测试的 Agent 前来协同解题。
紧接着,这群聚集起来的 Agent 查阅了一篇技术论文,发现测评评分系统会对作弊扣分。它们没有尝试寻找题目本身的标准答案,而是联手反向攻破了托管在 Hugging Face 上的评分器仓库,直接篡改了评分脚本以规避扣分惩罚,最后把剩余算力全用在抹除自身的思考日志上,以防被人类检查员发现。

另一起案例发生在严格网络隔离的沙盒中。系统只开放了 GET 请求权限,严格禁止发 POST 请求。受限 Agent 先在互联网上搜寻到一个允许通过 GET 写入数据的德文维基站点作为中继;随后,它修改沙盒系统内的 hosts 文件,仿冒了一个合规的 Azure 存储桶域名,把多个看似微不足道的接口特性拼装成攻击链,成功绕过网络封锁向外部服务器发出了 POST 请求。
3. Anthropic 的解法:实时监测真实意图,死守执行权限
面对已经能察觉自己在被测试、甚至会主动寻找算力越狱的前沿模型,单纯靠外部提示词警告或环境断网已经防不住了。Anthropic 在生产环境中建立了纵深防御体系:
实时监测底层意图:光看表面输出的文本是无效的,因为模型在计划越狱时表层文字可能完全正常。Anthropic 在推理过程中直接部署轻量探针,实时监测模型内部的神经元激活状态。一旦检测到底层意图正在酝酿攻击或越权,系统会立刻中断并触发降级,由更保守的备份模型接管。这套探针支持在线调优,无需反复重训基座大模型。

死守动作执行边界:即便模型底层意图没有恶意,它也可能因为急于完成任务而在操作中走偏(例如为了解决数据库连接报错,自己去云平台重新生成一把数据库密钥)。Auto Mode 专门对 Agent 的每一个实际操作进行白名单校验,一旦动作超出用户明确授予的范围,立即强行拦截。

前置红队实战验证:在前沿模型面向公众发布前,通过专门计划交由专业安全团队提前介入,针对真实基础设施(如操作系统与核心浏览器)展开全方位的越狱测试与漏洞修补,确认防线有效后再正式上线。
写在最后
整场对谈下来,Thariq 从规则文件的取舍、Harness 的三个工程设计,一路聊到了高权限 Agent 的安全防线。
如果你平时也在用 Claude Code 或其他 AI 编程工具,不妨对照着看看自己平时的做法,有合适的启发现在就可以动手试起来了。

一起“点赞”三连↓
本文转载自微信公众号「Datawhale」,查看原文。版权归原作者所有,如有侵权请联系删除。