探针 4|Claude Code 凭什么能自己干活

Claude Code 凭什么能自己干活
你大概用过 Claude Code 这类 AI 编程工具。给它一句话,它自己改代码、自己跑测试、自己修 bug,全程不用你盯着(偶尔犯傻了,也得你拽一把)。
你可能纳闷:前几篇才说,模型只会「猜下一个字」、只会聊天。那它怎么突然就能自己改代码、跑命令了?一个只会说话的东西,凭什么会干活?
这篇就挖这个。
先纠正一个误会:模型自己,根本不会「动手」
很多人以为,Claude Code 里是模型自己在改你的代码、跑你的命令。
不是。模型自己,从始至终只会做一件事:输出文字。
它不会读文件、不会写文件、不会跑命令、不会上网。它就是个只会「动嘴」的。
那活是谁干的?是它外面套了一层壳。这层壳,行话叫 harness(字面是「线束、外壳」)。真正读文件、改代码、跑命令的,是 harness,不是模型。
真正的核心:一个叫 model loop 的循环
模型和 harness 怎么配合着干活?靠一个循环,叫 model loop(模型循环)。四步,转着走:
- 模型想一步:看看眼下有什么信息,决定下一步干嘛(比如「我得先读一下这个文件」)。
- 模型喊一声:输出一句「我要调这个工具,参数是这些」。
- harness 动手:替模型把工具真的执行了,拿到结果。
- 结果喂回去:把结果塞回给模型,模型接着想下一步。
转到任务完成,循环才停。

你看,模型从头到尾只在做两件事:想、说(说要调什么工具)。真正动手的,一直是 harness。
这就能解释一件事:同一个模型,套上不同的 harness,能力天差地别。Claude Code 之所以强,很大程度是它那套 harness 写得好——工具给得全、循环转得稳、出错能兜住。模型是同一个底子,外壳决定了它能干多少活。
那模型怎么「调工具」?靠 Function Calling
新问题来了:模型只输出文字,它怎么「喊」要调工具?随便说一句「帮我读那个文件」算吗?
不算。得按规矩来。这套规矩,叫 Function Calling(函数调用)。
办法是这样:harness 先把一堆工具的「说明书」塞给模型——每个工具叫什么名字、要什么参数、能干什么活。这份说明书,行话叫 schema。模型读懂 schema 之后,要调工具时,就不输出大白话了,而是输出一段结构化的「工具调用指令」(行话叫 tool call):明明白白地写「我调的是 Read 工具,参数 path 是 /Users/xxx」。
harness 拿到这段 tool call,就知道模型要干嘛,替它去执行。

这里有个容易搞混的点,值得专门点一句:Function Calling 属于 L1(能力接口层),不是 L2(应用层)——回到序幕那张四层图,FC 是模型本身提供的一个口子,harness 和 model loop 才是把它包起来干活的 L2。两回事,别搅在一块。
挖到底:模型凭什么「会」调工具
再往下挖一层。模型凭什么看得懂那堆工具说明、凭什么会按格式输出 tool call?两个原因。
第一,它被人专门训练过。还记得上一篇讲的「对齐」吗?预训练之后的对齐阶段,模型不光学会了对话,还被专门教会了一件事:看到工具的 schema,就按 tool call 的格式输出。它「会」调工具,是练出来的,不是天生的。
第二,它有 Attention(注意力)。这是模型能理解文字的根本机制——靠它,模型才读得懂那堆工具说明在写什么。Attention 具体在算什么,留到后面的总成篇专门拆,这里你先记住:没有它,模型连工具说明书都看不懂。
反直觉:你以为 AI 在改你代码,其实它一个字都没写进你的硬盘
讲到这,给你一个反直觉的点。
你看着 Claude Code 在你的项目里改这改那,心里大概觉得「AI 在改我的代码」。严格讲,模型从来没碰过你的硬盘。它从头到尾只在输出文字(其中有些文字凑成了一段 tool call)。真正把代码写进文件的,是 harness。
模型是个动嘴的,harness 是个动手的。你平时感受到的「AI 在干活」,是它俩配合出来的——模型动嘴指挥,harness 动手执行。

顺带这就解释了一个你大概撞见过的现象:Claude Code 有时会「犯傻」,反复调同一个工具、或者卡在一个错误里出不来。因为循环本质上是模型在想,模型一旦想岔了,循环就跟着原地打转。所以 harness 必须有兜底——比如最多转几十步、或时间、token 超了预算就强制喊停,不然它真能给你转一晚上。
这根探针挖到了什么
一个「Claude Code 凭什么自己干活」的疑问,底下连着这些:模型自己不动手,是 harness 在动手;它俩靠 model loop 这个循环配合;模型调工具靠 Function Calling,靠 schema 和 tool call 沟通;而模型之所以「会」调,是因为训练过、加上有 Attention。
这一趟,harness、model loop、Function Calling、tool call、schema 这些词,你都摸过了。以后再刷到,你大概就知道在讲哪一环。
下一篇,换个现象扎下去:你跟 AI 聊着聊着,它怎么就把你前面说的话给忘了?下回聊。