logo

为什么把 Linux 之父塞进 Claude Code 可以这么管用?讲讲 AI 编程的底层逻辑

2025年9月22日 · 2158 字

本文首发于微信公众号:FUTURE CODER 未来开发者点此查看原文

前几天看到一个有趣的 Prompt:把 Linux 之父放进 Claude Code。这是一份带有「角色定义」「核心哲学」「沟通原则」的 CLAUDE.md 文件。

给不了解 Claude Code 的同学介绍一下:CLAUDE.md 中放的是系统 Prompt,类似 Cursor 的 rules,在每次的任务中都会加载。

把 Linux 之父放进 Claude Code的 Prompt

装备上这个 Prompt 之后,Claude Code 果然充满了 Linus Torvalds 的风格:直言不讳与极致的嘴臭。

Claude Code 的输出

当然,除了嘴臭之外,Claude Code 写代码也变得异常犀利,不再有过度设计和过度工程化,而是开始思考数据流动和数据结构来处理问题,写出的代码精简而流畅。

这样一份 Prompt 固然有趣,但是更值得思考的是它背后的原理:为什么这样一份 Prompt 能起作用?

今天,我们就借着这个 Prompt 来讲解一下 AI 编程的底层逻辑,它不仅适用于 Claude Code,也同样适用于任何的 AI 编程工具。

Claude Code 编程的原理

Claude Code 编程的原理,其实就是最近火热的 AI Agent。换句话说,Claude Code 的主体就是一个为编程能力打造的 Agent。

所谓 Agent,简单来说,就是在大模型的基础上,添加了一系列的工具(如读写文件、修改代码等)。有了这些工具的帮助,大模型就具备了写代码的能力。

当你让 Claude Code 帮你写一段代码的时候,Claude 模型会接收到这样一些信息:

  • 你项目的 CLAUDE.md 内容(一般是一些项目说明、编码规范之类的内容)
  • 它能使用的各种工具的介绍
  • 当前任务相关的信息,比如当前打开了哪个文件,选中了哪些代码
  • 当前任务的内容,也就是你刚才说的话

这些信息统称为模型的 Context,也就是上下文。模型会根据所有的上下文信息,决定下一步该做什么、该写什么样的代码。

为什么简单的 Prompt 不起作用

一般情况下,你在用 Claude Code 写代码的时候,给出的任务说明都是比较简单的,比如说:「帮我实现 xxx 功能」。

这时候,模型在确认了任务内容后,就会直接开始写代码。因为你没有给模型任何风格、流程上的指引,它在上下文中看不到任何相关的信息,所以它会按照自己的风格来写代码。

这个风格,也就是 Claude 模型本来的风格。

而 Claude 模型是根据网上的各种语料训练出来的。它写出来的很可能是网上代码的平均水平,这并不是很高。当然,模型训练的时候会针对编程能力做强化学习,所以它写出来的代码一般是正确的,但是「品味」可能不够好,经常有过度设计和过度工程化的问题。

为什么 Linux 之父能拯救你的任务

这样一套 Linux 之父的 Prompt,实际上是给大模型定义了一套行为模式,引导它关注系统和结构,注重解决根本问题。

这时候,模型收到的上下文中,除了有你给 Claude Code 的任务说明,还有一整套模仿 Linus Torvalds 的行为模式。让我们看看里面都有什么吧。

它需要主动、犀利地澄清问题

Prompt 的开头,规定了用户给出任务后的思考步骤:

Prompt 的「思考前提」部分

于是,它不会直接上手开始写代码,而是会先像一个资深架构师一样,分析你的任务指令,发现其中的漏洞。

它需要对问题进行系统化的思考和分析

Prompt 中定义了 5 点「Linus 式的问题分解思考」,包括:

  • 第一层:数据结构分析
  • 第二层:特殊情况识别
  • 第三层:复杂度审查
  • 第四层:破坏性分析
  • 第五层:实用性验证

可以看到,这正是对 Linus 代码品味的凝练总结。Linus 的编程水平可以认为超过 99% 的人。接收到这些分解思考的灌输,模型的推理思考会被激发,在经过系统化思考和分析之后,代码品味自然会提升,向 Linus 靠拢。

这样,AI 就不再会随意地自由发挥,直接写出一些补丁式的代码,而是会细致寻找更为合适的解法,思考如何写出优雅的、符合 KISS 原则的代码。

它需要遵循一个完整工作闭环

Prompt 的最后部分,要求模型的输出中必须包含「值不值得做」的核心判断:

Prompt 的「输出模式」部分

这要求模型以解决根本问题为导向,而不是仅仅满足于「代码能跑就行」。而且这些内容必须作为结果告诉用户。

这样,就构成了一个从输入(用户任务指令)到处理(五层思考法)再到输出(固定结果格式)的完整工作闭环。

可以看到,这个 Prompt 的成功,源于它用一个高度结构化、极其明确、自称体系的流程,固定了模型的行为模式和思考路径。这让模型从自由发挥(大概率平庸)到了固定的工作流(具备工程化系统化思维),整体效果显然会有进步。

如何优化你自己的任务效果

看到这里,你可能已经跃跃欲试,希望直接用 Linux 之父来指导你的 AI 编程任务。

不过,这种高度结构化的行为模式不一定适合所有的场景。对于代码重构、问题分析,可能它的效果会比较好。但如果问题进一步复杂,这种一整套复杂的指令也有可能让模型「大脑过载」,起到反作用。

而且,Linux 之父的经验毕竟是用来做 Linux 内核的,虽然数据结构分析、复杂度控制、代码品味这些哲学是通用的,但是不同的语言和框架都有不同的注意事项,放在你的任务中,未必合适。

所以,我推荐给你的上手流程是:

第一步,先套用 Linux 之父的 Prompt,尝试使用看看效果。

在使用的过程中,重点要看的不是最终的输出(好品味 or 垃圾),而是它分析问题的过程。

这里的 Prompt 是给 Claude Code 用的。如果你用 Cursor,可以把它放在 Cursor rules 里,设置成始终生效。

第二步,寻找你项目的语言、框架的「编程之道」,改写这个 Prompt。

例如,对于前端项目,可以把尤雨溪的语录放进去;对于 Python 项目,可以把「Python 之禅」放进去。

如果你不知道该怎么写,我自己写了一份「Python 之禅」的 Prompt,供你参考:https://github.com/nettee/ai-collection/tree/master/content/zen-of-python-prompt

第三步,你需要抛开这个 Prompt,尝试在自己的项目中,给 AI 指定风格和流程。

当你指挥 AI 写一段代码的时候,如果发现 AI 在模块设计上或者编程风格上有你不满意的地方,不要直接在对话里跟它说,而是写在 CLAUDE.md 中。下次再下发任务的时候,你可以观察 AI 的行为是否有改变。时间久了,你就能得到一份最适合自己的 Prompt。

总结

有时候我们会奇怪,为什么同样的 Claude Code,不同的人使用就会有不同的效果。

这其实还是取决于每个人对于底层模型能力和 Agent 系统原理的了解。

会用的人,能够意识到模型和工具可能会出现的问题,从而在任务指令中强调,或者直接做成系统化的上下文(CLAUDE.md)。相比于简单地一句话描述需求,这样更有可能让模型按照自己的意图去做事。

当我们看到一个新奇的 Prompt 的时候,除了路过说一句真好玩,也不妨了解一下它背后的机制和原理。当你也能够创造自己的 Prompt 的时候,你就离成为 AI 编程大师不远了。