大叔自由人
DeepSeek Harness:模型是马,缰绳是手艺
技术分享

DeepSeek Harness:模型是马,缰绳是手艺

这两年写代码的人大概都经历过同一个瞬间:第一次让 AI 编程助手干完一整件事,看着它自己读代码、改文件、跑测试,心里咯噔一下——这玩意儿是真的。

我也是。但用久了会发现一件怪事:同一个模型,在不同人手里的效果差得离谱。 有人用它一天干完一周的活,有人用它改个 bug 引入三个新 bug。模型是同一个,价格都一样,差的到底是什么?

差的就是今天要聊的词:harness。

什么是 harness

harness 直译是马具——缰绳、鞍子、挽具那一整套。模型是马,力气是真实存在的,但马不会自己知道往哪拉。harness 就是你套在模型外面的那一整套东西。

拿我日常用的 AI 编程工具拆开看,harness 至少包含四样:

  • 上下文管理:仓库这么大,模型一次只能看一部分,喂哪部分、按什么顺序喂、什么时候让它自己去找——这是 harness 决定的。
  • 工具:能不能读文件、能不能执行命令、能不能跑测试看到真实报错。只有一张嘴的模型和有一双手的模型,是两个物种。
  • 循环:写代码 → 跑测试 → 看报错 → 修 → 再跑。这个闭环每收紧一圈,产出质量就上一截。
  • 校验:干完活怎么算数?靠模型说”我改好了”不算,测试过了、构建过了、能跑起来才算。

这四个词合起来,就是现在大家说的 agent 框架的本质。名字换了一茬又一茬,骨架一直没变。

为什么我盯着 DeepSeek 练这套手艺

练驭术总得选一匹马。我的选择是 DeepSeek,理由很朴素:

便宜到可以随便折腾。 harness 是要靠大量实践磨出来的,用贵的模型练手,心疼钱就练不开。DeepSeek 的 API 价格友好得多,一个任务让它反复跑、对比不同的上下文组织方式,成本几乎可以忽略。

长上下文足够装下一个真实项目。 上下文窗口够大,harness 才有发挥空间——把整个模块、相关测试、报错日志一起喂进去,模型的表现和只喂一个文件完全不是一个量级。

中文场景的语感在线。 我做学校的项目,需求文档、注释、变量命名一半是中文,这一点比很多模型顺手。

于是一个挺有意思的循环出现了:模型越来越便宜、越来越强,马越来越好买;那驭马的手艺,反而越来越值钱。

我摸出来的几条驭法

练了这么久,沉淀几条具体的,都是拿真实项目换来的:

一、先给地图,再给任务。 不要上来就甩一句”帮我实现 XX 功能”。先让它通读相关模块、复述一遍它的理解,确认它脑中的地图和真实代码一致,再动手。这一步能拦掉一半的方向性错误。

二、小步闭环,拒绝长跑。 让 agent 一口气改十几个文件,最后大概率烂尾。切成小任务,每一步都让它跑测试自证,错了马上回头。短闭环的质量远高于长冲刺——人如此,AI 也如此。

三、验证是 harness 里最硬的一环。 我现在给所有项目补测试,一半原因是为了自己,另一半是为了让 AI 有东西可跑。有自动化验证的任务可以放心交给它循环;没有验证的任务,它说完成了你也只能干瞪眼。

四、把经验写进项目。 我现在每个项目里都放一份给 AI 看的说明文件:构建怎么跑、测试怎么跑、哪些坑别踩。相当于把驭法刻进鞍子,换个会话照样好使。

模型会降价,手艺不会

往后看,模型这条赛道只会越来越卷:更强、更便宜、上下文更长,今天是 DeepSeek,明天可能又是一匹新马。马会一直降价,这是趋势,拦不住也不必拦。

但 harness 不一样。怎么组织上下文、怎么设计工具、怎么把验证做硬、怎么把一个模糊需求拆成 agent 能跑的任务——这些东西长在人和项目里,模型换了一代又一代,它一直作数。

我给学生上 AI 大模型课,第一节课就把这事讲透:别只顾着惊叹模型多厉害,去搭一遍自己的 harness——哪怕只是给一个开源模型接上工具、接上测试,跑通一个最小的循环。跑通的那一刻,你才从”用产品的人”变成”造系统的人”。

这个转变,比记住一百个模型名字都管用。