乐于分享
好东西不私藏

AI编程助手不是工具,是系统

AI编程助手不是工具,是系统

昨天晚上,我在宿舍用 Claude Code 写一个数据分析的小任务,写到一半,舍友凑过来看了一眼我的屏幕。

他问了一个特别朴素的问题。

「你这玩意,不就是 ChatGPT 吗,套了个壳?」

我当时愣了一下,想说不是,但一时间又不知道怎么解释。因为从操作上看,他说的好像也没毛病,都是你打字,它回你,然后你复制粘贴。但我知道,Claude Code 给我的体验,跟 ChatGPT 完全不是一个东西。

那种感觉,就像你跟一个人聊天,跟跟一个团队协作,是两码事。

但我当时没想明白到底差在哪。

直到后来,我脑子里突然冒出一个之前自学过的概念,系统论。好多之前想不通的事情,一下子全通了。

所以今天这篇文章,就是想跟你聊聊,为什么我觉得 Claude Code、Cursor 这些东西,根本不是什么「工具」,而是一个「系统」。

以及,用系统论的视角看它们之后,你会发现很多之前让你困惑的事,突然就变得可以解释了。

先说说,我之前是怎么理解 AI 编程助手的。

我一开始,真的就是把它当工具用的。

跟用计算器差不多,你给它一个问题,它给你一个答案。你问它「帮我写一个 Python 函数,把 CSV 里的数据按日期排序」,它啪地一下给你一段代码,你复制粘贴,完事。

这个阶段,我觉得 Claude Code 跟 ChatGPT 没啥区别,就是 ChatGPT 能写代码而已。

我非常理解这种看法。真的。你不是程序员,不需要天天写代码。你就是个商学院的学生,偶尔做做项目,用 AI 帮忙写点脚本,能跑就行。把它当计算器用,没毛病。

我一开始也是这么干的。

而且说实话,这个阶段用 AI 写代码,体验真的不算好。有时候给的代码跑不通,有时候逻辑有问题,有时候它理解错了你的意思。你改来改去,花的时间可能比自己写还长。很多朋友在这个阶段就放弃了,觉得 AI 写代码也就那样。

后来我发现不对劲了。

有一次我用 Claude Code 做一个项目,让它帮我搭一个简单的 Web 应用。我本来以为它就给我一段代码,我自己复制粘贴到文件里,然后自己跑一下就完事了。

结果不是。

它自己读了整个项目目录,自己判断了应该用什么框架,自己创建了文件,自己跑了命令,甚至还自己发现了依赖没装好,然后自己装上了。整个过程,我就说了一句话,剩下的全是它干的。

我当时就愣住了。

这哪是计算器啊,这特么是一个人。

再后来,我注意到一个更诡异的现象。同一个 Claude Code,有时候聪明得吓人,能自己找到代码里一个藏得很深的 bug,有时候又蠢得离谱,连一个简单的变量名都拼错。

我就纳闷了,同一个模型,为什么表现差距这么大?

如果它只是一个工具,那工具的表现应该是稳定的。一把锤子不会今天能钉钉子明天不能。但 Claude Code 会。

这个矛盾,在我脑子里卡了很久。

我也问过身边用 Claude Code 的朋友,他们也有同样的困惑。有人说可能是网络问题,有人说可能是上下文太长了模型变笨了,还有人说是 Anthropic 的服务器抽风。各种解释都有,但没有一个能让我满意的。

直到我看到了系统论。

说真的,之前自己看《系统之美》那本书的时候,觉得这玩意就是一堆抽象的理论,跟我日常用 AI 写代码没什么关系。

但其实不是。

系统论是一个叫贝塔朗菲的奥地利生物学家在 1937 年提出来的。这哥们是个研究生物的,但他发现一个很有意思的事,就是不管是生物体、社会组织、还是经济系统,它们好像都遵循一些相同的一般性规律。

什么规律呢?

他发现,一个活的东西和一个死的东西,最大的区别不在于它由什么材料组成,而在于这些材料之间的关系和互动方式。

一个活细胞,你把它拆开,蛋白质是蛋白质,DNA 是 DNA,水是水,每一坨东西单独拿出来都是死的。但把它们按特定的方式组织在一起,这个细胞就活了。

关键不在于组分,而在于结构。

这个洞察,听起来好像挺简单的,但你想深一点,其实挺震撼的。

因为它意味着,你理解一个东西,不能只看它由什么零件组成,你得看这些零件怎么互相配合、怎么传递信息、怎么对外界做出反应。

说到这个,我突然就想到了人体。

你看,人体就是一个典型的系统。你有大脑,负责处理信息。你有眼睛耳朵,负责接收输入。你有手脚,负责执行输出。你有血液和神经,负责传递信息。你有记忆,负责存储经验。你还有各种本能和反射,那是你的规则。

这些东西单独拿出来,没有一个是「你」。但它们组合在一起,按照特定的方式运作,就变成了一个完整的、能思考、能行动、能学习的你。

而且人体有一个特别重要的特征,它是开放的。

什么意思呢?就是你不是封闭的,你要吃饭、要呼吸、要跟外界交换物质和信息。你从外界获取能量和信号,处理后做出反应,再输出行动。这个输入、处理、输出的循环,一直在进行。

如果你把这个思路,套到 Claude Code 上,你会发现一件非常有趣的事。

Claude Code 不是一个工具。

它是一个系统。

而且是一个开放系统。

我们来拆一下。

Claude Code 的组分是什么?它有一个大语言模型,也就是 LLM,这是它的「大脑」,负责理解和生成文本。它有工具,能读文件、写文件、跑命令,这是它的「手脚」。它有记忆,每次对话的上下文、项目代码、配置文件,这是它的「经验」。它有规则,系统提示词里定义了什么能做什么不能做,这是它的「本能」。它还有 Skill,封装好的能力模块,能处理特定类型的任务。

这些组分单独拿出来,没有一个是 Claude Code。大语言模型本身,其实啥也不是,它就是一堆参数,没有记忆,没有状态,每次你新开一个对话,它就是一张白纸。

Claude Code 的模型本身,真的是无记忆、无状态的。

每次新开对话,都是空白的。

所有记忆,都来自系统组装的上下文。

这句话特别重要,我再说一遍。

所有记忆,都来自系统组装的上下文。

也就是说,Claude Code 的「聪明」,不在于那个模型本身有多强,而在于系统在每次对话开始的时候,把什么信息喂给了它。项目结构、代码文件、对话历史、系统规则,这些东西被组装成一个完整的上下文,然后一起丢给模型。

模型拿到这些信息之后,才能做出正确的判断。

这就像一个人,你把他所有的记忆都删掉,他连自己叫什么都不知道。但你把他的日记、照片、通讯录都给他看一遍,他又能重新「变成」他自己。

你想想看,这其实挺可怕的。因为也就是说,Claude Code 的「智商」,不是固定的。它取决于你给它搭了什么样的舞台。你给它一个信息丰富的上下文,它就是天才。你给它一个空荡荡的上下文,它就是白痴。同一个模型,完全不同的表现。

所以 Claude Code 的核心能力,不在于那个模型,而在于那个「组装上下文」的系统。

这就是结构的力量。

组分之间的关系,比组分本身更重要。

然后我们来看输入和输出。

Claude Code 的输入是什么?不只是你打的字。你的项目代码、文件结构、系统环境、之前的对话历史,甚至你使用的终端类型,都是输入。你给它的每一个请求,都是在一个巨大的上下文背景下的。

它的输出也不只是文字回复。它可以直接创建文件、修改代码、运行 shell 命令、调用外部工具。这些操作会改变你的项目状态,而这个新的状态,又会在下一轮对话中成为新的输入。

你发现了吗?这就是一个循环。

输入,处理,输出,反馈。

一直在转。

然后是系统边界。

Claude Code 不是孤立存在的。它通过 MCP 协议连接外部工具,通过 API 连接其他服务,甚至可以通过 A2A 协议跟其他 Agent 交互。

MCP 这个东西,我得多聊两句。

MCP 的全称是 Model Context Protocol,你可以把它理解为给 LLM 设计的一个「USB 接口」。以前每个工具都要自己搞一套跟 LLM 对接的方式,乱得一塌糊涂。你想让 LLM 调用一个数据库,得写一套适配。想让它调用一个搜索引擎,又得写一套适配。每个工具都有自己的接口规范,开发者头都大了。

MCP 出来之后,统一了连接方式,任何工具只要支持 MCP,LLM 就能直接调用。

这就像以前每个手机充电器都不一样,后来统一成了 Type-C。不是充电的速度变了,而是连接的方式统一了,整个生态一下子就活了。

Claude Code 的定位是「终端原生 AI 智能体」。它能读取你的整个代码库,能编辑文件,能运行 shell 命令。它的核心隐喻是「项目经理」或者「CEO」,你给它一个模糊的目标,它自己拆解任务,自己调度 Skill,自己调用 MCP 工具,一步一步把事情做完。

你想想看,你跟一个项目经理合作过的话就知道了。你给项目经理说「我要做一个电商网站」,他不会马上开始写代码。他会先问你需求细节,然后拆分成一个个子任务,分配给不同的人,每个人负责一块,做完之后再整合到一起。Claude Code 干的事,跟这个一模一样。只不过它的「人」不是真的人,是 Skill 和 MCP 工具。

字节跳动那边做过一个分析,挺有意思的。他们发现,模型每一轮的运行逻辑其实是固定的,就是读取全部上下文,判断要不要调用工具,执行,返回结果。就这么一个循环,但每一轮循环,上下文都在变化,因为上一轮的输出变成了这一轮的输入。

所以你看到的效果是,Claude Code 好像在「思考」,在「规划」,在「自主决策」。但其实,它只是在每一轮都重新读取最新的上下文,然后做出反应。

这就是反馈循环的力量。

Claude Code 有两种反馈机制。一种是前馈控制,就是系统提示词和规则,在你还没开始用的时候,就已经告诉模型应该怎么行为。另一种是反馈回路,就是每一轮对话的结果,会影响到下一轮的决策。代码改对了,下一轮就继续这个方向。代码跑报错了,下一轮就调整策略。

这个反馈循环,就是 Claude Code 能「越用越强」的原因。

不是模型变强了,是系统在每一轮循环中积累了更多的上下文,做出了更好的决策。

说到这里,回到我之前的那个困惑。

为什么同一个 Claude Code,有时候聪明得吓人,有时候又蠢得离谱?

用系统论的视角看,这个问题特别好解释。

Claude Code 的表现,不取决于模型本身,而取决于系统在那一刻给它组装了什么样的上下文。如果上下文信息充足,项目结构清晰,之前的对话历史有价值,它就表现得聪明。如果上下文信息混乱,或者新开了一个对话什么历史都没有,它就表现得蠢。

不是 Claude Code 变笨了,是系统给它喂的信息不够了。

这就像一个人,你让他做他熟悉领域的事,他表现得特别专业。你突然把他扔到一个完全不熟的领域,他可能连基本概念都搞不清楚。人没变,是输入变了。

我之前一直觉得是 Claude Code 抽风了,心情好的时候聪明,心情不好的时候犯蠢。现在想想,太特么赤鸡了,根本不是它的问题,是我给它搭建的系统环境不够好。

这个认知翻转,给我一下子整不会了。

理解了这个,你就会明白一个特别重要的事。

你用 Claude Code,不是在用一个工具,而是在跟一个系统协作。你的每一次输入,都在改变这个系统的状态。你提供的信息越准确,项目结构越清晰,对话历史越有价值,这个系统就表现得越好。

反过来,如果你每次都给它模糊的指令,项目乱七八糟,也不维护对话的连续性,那它表现不好,真的不怪它。

系统论还有一个特别牛逼的洞察,就是贝塔朗菲说的那句话,不同领域的系统遵循相同的一般性规律。

什么意思呢?就是你理解了人体是一个系统,你就能理解 Claude Code 也是一个系统。你理解了一个公司是一个系统,你就能理解为什么 Claude Code 需要规则和分工。你理解了生态系统是一个系统,你就能理解为什么 Claude Code 需要跟外部工具和 Agent 交互。

贝塔朗菲是个生物学家,但他研究的不是某个具体的生物,而是「系统」这个东西本身。他发现,不管你研究的是细胞、是人体、是公司、还是经济,只要它是一个系统,它就遵循一些共同的规律。比如系统需要跟外界交换信息才能存活,比如系统的整体行为不能通过单独研究它的组分来预测,比如系统会通过反馈机制自我调节。

这些规律,放之四海而皆准。

你甚至可以用它来理解为什么一个公司,换了 CEO 之后整个公司的行为方式都变了。不是员工变了,是系统的「规则」和「结构」变了,输入变了,输出自然就变了。

这个视角,不只是能解释 Claude Code。

它能解释所有 AI 编程助手。

Cursor 也是一个系统,只不过它的组分和结构跟 Claude Code 不一样。Cursor 把模型嵌入了编辑器,它的「眼睛」能直接看到你的代码变化,它的「手」能直接修改你的文件,它的反馈循环比 Claude Code 更短、更快。你在 Cursor 里改了一行代码,模型下一秒就能看到这个变化并做出反应。这个反馈速度,是 Claude Code 在终端里做不到的。

Copilot 也是一个系统,而且跟 Cursor 一样,它也能自主执行任务、做规划。但它的自主程度比 Claude Code 低一些,更像是一个「项目经理助理」而不是「CEO」。它能直接在你的编辑器里改代码、跑命令,但它更依赖你给的上下文,不会像 Claude Code 那样自己去翻整个代码库。你给它的指令越具体,它表现得越好。指令模糊的时候,它就容易跑偏。

但它们都是系统,不是工具。

理解了这一点,你用这些东西的方式,会完全不一样。

如果你把它当工具,你会期待它稳定、可靠、随叫随到。一旦它表现不好,你就会觉得这玩意不行。

但如果你把它当系统,你会知道,系统的表现取决于你给它什么样的输入,取决于你维护什么样的上下文,取决于你跟它建立什么样的反馈循环。

你会开始有意识地去「喂养」这个系统。

把项目结构整理清楚,把需求描述得准确一点,保持对话的连续性,及时纠正它的错误方向。这些操作,不是在「使用工具」,而是在「维护一个系统的健康运转」。

这个心态的转变,我觉得特别重要。

我自己就是活生生的例子。自从我开始有意识地维护跟 Claude Code 的对话上下文之后,它的表现真的好了很多。不是模型升级了,是我跟它协作的方式变了。我把项目说明写清楚,把每一步的需求描述准确,遇到错误及时告诉它,它就能在后续的对话里越来越精准。

这感觉太爽了。

因为 AI 编程助手还在快速进化。Claude Code 今天能做到的事,半年前根本不敢想。半年后能做什么,现在也没人知道。但不管它怎么进化,只要它还是一个系统,你跟它协作的方式,就一定是通过输入、反馈、上下文来影响它的表现。

理解了系统论,你就理解了跟 AI 协作的本质。

不是你命令它做什么,而是你跟它一起,维护一个不断进化的系统。

回到昨天晚上我舍友问我的那个问题。

「这不就是 ChatGPT 套了个壳吗?」

如果现在让我回答,我会说,不是。

ChatGPT 像一个特别聪明的百科全书,你问它什么它答什么,答完就完了。你跟它的关系是单向的,你问,它答,没有延续性。

Claude Code 像一个团队,它有大脑,也就是模型。它有手脚,也就是工具。它有记忆,也就是上下文。它有规则,也就是系统提示词。它有技能,也就是 Skill。你给它一个目标,它自己拆解、自己执行、自己纠错。它通过 MCP 连接外部工具,通过反馈循环不断调整策略。你跟它的关系是双向的,你影响它,它也影响你的项目状态。

百科全书是工具。

团队是系统。

你用百科全书的方式,和带团队的方式,能一样吗?

一个是「你问,它答」。

一个是「你定方向,它执行,你纠偏,它调整,你们一起把事情做成」。

完全两个物种。

好了,今天聊了不少。

我知道有些朋友可能会说,我一个商学院的学生,在这聊什么系统论,是不是有点装。

怎么说呢,可能有些想法还不成熟,我自己也还在摸索。愚钝如我,也是最近才想明白这些事。但这些东西确实帮我解决了很多之前的困惑。如果你也在用 Claude Code 或者 Cursor,也遇到过「它怎么突然变蠢了」的困惑,不妨试试用系统的视角重新理解一下它。

可能会有新的发现。

下一期,我想聊一个大家肯定都遇到过的问题,就是你的 AI 助手为什么每次都像失忆。明明上次聊得好好的,新开一个对话它就什么都不记得了。这个「失忆」的背后,其实藏着 Claude Code 架构里一个特别精妙的设计。

我们下期见。

以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~ 

谢谢你看我的文章,我们,下次再见。