大脑与计算机的差异

参考 Is the brain faster than the average computer? 观点:

ai_brain

ai_brain2

大脑与计算机的核心差异,它们本质上是两种不同的“信息处理系统”,专精于截然不同的领域。大脑和计算机没有绝对的“谁更快或更强”,它们是在不同的赛道上,以完全不同的范式解决问题。比较它们就像比较螺丝刀和锤子哪个更好用,答案完全取决于你要干什么

计算机擅长:快速、精确、可靠、不知疲倦,但极度依赖人类的明确指令和结构化数据。

  • 精确存储与提取:像档案库管理员。能瞬间无误地存入和调取海量、明确编码的数据(如文件、数据库记录)。
  • 确定性计算:像超级计算器。能极快、极准确地执行定义清晰的数学和逻辑运算(如解方程、排序)。
  • 高速标准化通信:像闪电般的高速电报。能通过既定协议(如 TCP/IP)与其它计算机进行无歧义的数据交换。

例子:

计算机的强项:计算 1234567890 x 9876543210。对它来说,这是定义完美的任务,可以在 1.2 纳秒内完成,且 100% 正确。

人类大脑擅长:善于理解、适应、创新、处理模糊信息,但记忆不精确,计算速度慢,且容易疲劳。

  • 关联与模糊记忆:像一位充满灵感的艺术家。能从不完整、多感官的体验中,自发地提取“要点”和“意义”,并创造出意想不到的联系(“闻到桂花香想起童年”)。
  • 模式识别与理解:像顶级侦探。能从混乱、模糊的感官信息(如模糊的照片、嘈杂环境中的对话)中瞬间识别物体、人脸、语音,并理解其背后的语境和情感。
  • 常识、创造与主动行为:像企业家或科学家。拥有基于经验的“常识”(知道冰是滑的),能进行创造和发明,并能在目标模糊(“让房间更温馨”)时主动规划步骤并行动。

例子:

识别一张潦草字条上的字母a。对人类两岁幼儿来说,这几乎是本能。但对计算机(指传统的、非仿脑的AI),即使是 15 年前最顶尖的 PC,也需要多年研发、耗费巨大算力,并且错误率很高。

本质差异的根源

  1. 大脑是生物进化的产物,核心目标是确保有机体在复杂、不确定的世界中生存和繁衍。因此,它优化了能效、模式识别、快速决策(即使不精确)和社交理解。
  2. 计算机是人类工程的产物,核心目标是准确、快速地执行人类预设的符号处理和数学计算任务。因此,它优化了速度、精度、确定性和可重复性。

启示:

当问“大脑和计算机谁更快”时,正确的回答是:“在什么任务上?”

  1. 对于数值计算、数据库检索、重复性自动化任务,计算机远胜人脑。
  2. 对于理解自然语言、艺术创作、复杂社交互动、在陌生环境中物理导航,人脑远胜计算机。尽管 AI 正在某些领域快速追赶,当前人工智能(尤其是深度学习)的努力,正是试图让计算机在人脑的赛道上跑得更好,即学习处理模糊信息、进行模式识别和做出常识判断。

冯·诺依曼架构的限制

人脑作为地球上最为高效的计算设备,可以仅仅用 20w 的功率 (还没有家里的一个普通灯泡亮),1.3 公斤的质量,就能完成每秒 100 万亿次的运算量。

全球首台,仿人脑超算 DeepSouth 即将面世的文章介绍,澳大利亚的科学家宣布,他们开发了一台完全模仿人脑的超级计算机 DeepSouth,这将是世界上第一台能够在人脑规模模拟神经元(数十亿)和突触(数万亿)网络的超级计算机,可以模拟每秒 228 万亿次突触操作。

ai_brain3

ai_brain4

晶体管的极限 (现代计算机的构架)

1945年6月30日,数学家和物理学家约翰·冯·诺依曼描述了一种新机器的设计,电子离散变量自动计算机 (Edvac)。这有效地定义了我们所知的现代电子计算机。智能手机、笔记本电脑以及世界上最强大的超级计算机都一直沿用冯·诺依曼在大约 80 年前引入的相同基本结构。它们都具有不同的处理和内存单元,其中数据和指令存储在内存中并由处理器计算

冯·诺伊曼结构(Von Neumann architecture),是一种将程序指令存储器数据存储器合并在一起的电脑设计概念结构,由约翰·冯·诺伊曼等人提出。是一种实现通用图灵机的计算设备,以及一种相对于并行计算的序列式结构参考模型。

几十年来,微芯片上的晶体管数量大约每两年增加一倍,这一现象被称为摩尔定律。这使我们能够拥有更小、更便宜的计算机。然而,晶体管尺寸现在已接近原子尺度。在如此微小的尺寸下,计算过程中产生过多的热量是一个很严重的问题。这种被称为量子隧道效应的现象,会干扰晶体管的功能。这使得摩尔定律代表的晶体管小型化之路越来越难以走下去。

为了克服这个问题,科学家们正在探索新的计算方法,从人脑开始。大脑并不按照约翰·冯·诺依曼的计算机模型工作。它没有单独的计算和存储区域。相反,它们的工作原理是连接数十亿个以电脉冲形式传递信息的神经细胞。信息可以通过称为突触的连接点从一个神经元传递到下一个神经元。大脑中神经元和突触的组织是灵活的、可扩展的和高效的。因此,与计算机不同的是,在大脑中,记忆和计算是由相同的神经元和突触控制的。自 20 世纪 80 年代末以来,科学家们一直在研究这个模型,意图将其导入计算中。

模仿生命

神经形态计算机基于简单的基本处理器(其作用类似于大脑的神经元和突触)的复杂网络。这样设计最主要优点是机器本质上是并行的。这意味着,与神经元和突触一样,计算机中的几乎所有处理器都可以同时运行,串联通信。此外,由于单个神经元和突触执行的计算与传统计算机相比非常简单,因此能耗要小几个数量级。

尽管神经元有时被认为是处理单元,突触被认为是记忆单元,但它们有助于处理和存储。换句话说,数据已经位于计算需要的地方,没有分别用处理器和存储器分开。这总体上加快了大脑的计算速度,因为内存和处理器之间没有分离,这在经典(冯·诺依曼)机器中会导致速度减慢。但它也避免了执行从主存储器组件访问数据的特定任务的需要,就像传统计算系统中发生的那样,并且消耗大量的能量。这些原则是 DeepSouth 的主要灵感。它们有潜力促进人类对大脑的理解,并为人工智能提供新的方法。

计算机如何识别模式

麦克斯·班尼特的《智能简史 - 进化、AI 与人脑的突破》第七章这样描述介绍:

现在人们可以用面部来解锁手机,要做到这一点,需要手机解决辨别泛化问题。现代人工智能系统成功地解决了模式识别中的这两个挑战。

标准方法是:创建一个神经元网络,在网络的一侧提供一个输入模式,这些模式会流经多层神经元,最终在网络另一侧转化为输出。通过调整神经元之间连接的权重,可以让网络对其输入执行各种操作。如果能精确调整权重,就可以得到一个算法,让输入模式在网络末端得到正确识别

例如,以某种方式调整权重可以识别面部,以另一种方式调整权重,则可以识别气味。

human_network

难点在于教会网络如何学习正确的权重。

如果要训练一个神经网络将气味模式分为鸡蛋味花香,要先向它展示一系列气味模式,并同时告诉网络每个模式是来自鸡蛋还是花朵(通过网络末端特定神经元的激活情况来测量),即需要告诉网络正确的答案。然后,将实际输出与期望输出进行比较,并推动整个网络的权重向使实际输出更接近期望输出的方向调整。如果这样做很多次(例如数百万次),网络最终会学会准确识别模式。这种学习机制为反向传播(backpropagation),将末端的误差反向传播到整个网络,计算出每个突触对误差的确切贡献,并相应地调整该突触

上述类型的学习通过提供正确答案和例子来训练网络,被称为:监督学习(人类通过向网络提供正确答案来监督学习过程)。

监督学习并不符合大脑实际工作的方式首先,大脑并不进行监督学习。当你学习识别某种气味,并没有人给你提供标记好的数据。其次,反向传播在生物学上是不合理的。反向传播的工作原理在于它能够神奇地同步且精准地调整数百万个突出,使神经网络的输出结果逐步接近正确的方向。但大脑显然不可能以这种方式运作。

灾难性遗忘问题:当神经网络被训练去识别一个新的模式或执行新的任务时,它可能会干扰甚至遗忘之前已经学会的模式。-> 如何实现持续学习?

就连 OpenAI 发布的 ChatGPT 也未能从与其交流的数百万用户中持续学习。现代人工智能系统在时间维度上被冻结了,其参数被锁定了。只有当它们从头开始重新训练,并且人类在各项相关任务上仔细监控其表现时,系统才会被允许进行更新。

大脑是如何识别各种模式?大脑皮质和丘脑之间复杂的相互作用

自联想:大脑皮质中的神经元会自动学习与自己相关的关联,这为泛化问题提供了一个解决方案,大脑皮质能够识别相似但不完全相同的模式

自联想揭示了脊椎动物记忆计算机记忆之间的一个重要区别

  1. 脊椎动物的大脑使用的是内容可寻址存储 (content-addressable memory),通过提供原始经历的一部分子集来回忆整段记忆,这部分子集能够重新激活原始的模式。例如,如果我告诉你一个你以前听过的故事开头,你就能回忆起其余部分。
  2. 计算机使用的地址可寻址存储 (register-addressable memory),这种记忆只有在拥有唯一的存储地址时,才能调用和访问它们。如果你失去了这个地址,你就失去了这段记忆。

地址可寻址存储使计算机能够将信息存储位置隔离开来,确保新信息不会覆盖旧信息。相比之下,自联想信息存储在一组共享的神经元中,这导致它面临误覆盖旧记忆的风险

大脑皮质是如何编码视觉输入的?

在皮质层次结构中,随着层次的逐渐升高,神经元对视觉刺激的特征敏感性也在不断提高。

  • V1 中的神经元主要被基本的边缘和线条激活
  • V2 和 V4 中的神经元则对更复杂的形状和物体敏感
  • 下颞叶区域,神经元对复杂的整个物体,如特定的面孔,变得敏感

重要的事实:

  1. 哺乳动物的视觉处理是层次化的,低层次的神经元具有较小的感受野,负责识别简单的特征;而高层次的神经元则具有较大的感受野,能够识别更复杂的物体。
  2. 在层次结构的某一特定层次中,所有神经元都对相似的特征具有敏感性,只是这些特征在不同的位置出现。

human_network2

一种新的人工神经网络架构

不同于传统的将图片直接输入至全连接神经网络的方法,新的架构首先会将输入的图片拆解为多张特征映射图,这一做法与 V1 区域的处理方式相类似。每张特征映射图都是一个网格,用于标识输入图像中特征(如垂直或水平线条)的具体位置。这个过程被称为“卷积”,因此,这种网络类型被命名为“卷积神经网络 (灵感来自哺乳动物的视觉皮质,但模拟的并不准确)”。

在这些特征映射图识别出某些特征后,它们的输出会被压缩并传递给另一组特征映射图。这些映射图能够在一个更宽的图像区域内组合成更高层次的特征,也就是将线条和边缘融合成更复杂的物体。整个设计都是为了模拟哺乳动物皮质的视觉处理过程 (令人惊讶的是,它竟然奏效了)

human_network3

从自动驾驶汽车,到检测放射学影响中肿瘤的算法,大多数使用计算机视觉的现代人工智能系统都采用了此卷积神经网络。(人工智能曾经是“瞎的”,但现在它可以“看见”了)

卷积神经网络的精妙之处在于它实施了一种巧妙的“归纳偏置 (inductive bias)”。归纳偏置是人工智能系统根据其设计方式做出的假设。卷积神经网络是以“平移不变性”为假设设计的,即一个位置上的特定特征应该与另一个位置上的相同特征得到相同的处理。这是我们视觉世界中一个不可改变的事实:同一个事物可以存在于不同的位置,而不会因位置不同而变成不同的事物。

尽管卷积神经网络无法完全捕获大脑的工作方式,但它们揭示了“归纳偏置”的强大力量。在模式识别中,一个好的假设能使学习变得快速且高效。脊椎动物的大脑皮质肯定也有这样的“归纳偏置”,只是我们还不知道它是什么

在某些方面,小小的鱼脑甚至超越了我们最先进的计算机视觉系统。卷积神经网络需要海量的数据来理解旋转和三维物体的变化,但鱼似乎能在一瞬间识别出三维物体的不同角度。

human_network4

AI 模型如何工作

你可以把它们理解为超智能的通用 API 端点。就像你会集成 Wechat API 来处理支付,你可以调用 AI 模型来完成各类任务。最大的区别在于:你无法保证每次都得到相同的结果。这一突破可以追溯到 50 多年前对猫神经元的探索。

确定性 vs 概率性

传统软件是确定性的。给定相同输入,多次运行会得到相同输出。开发者会显式编写代码来覆盖这条“既定路径”。

AI 模型不是这样。它们具备概率性。这意味着在相同输入下,模型可能走出多种不同路径

cursor_dashboard11

构建你的 AI 心智模型的第一点:不要假设每次都会得到相同答案

当 AI 模型选择一条路径时,它如何决定输出?在底层,这些模型基于两点来预测下一段要生成的文本:

  1. 模型被“训练”过的信息
  2. 你提供给模型的输入(“提示词” 或 prompt

例如,我们来问 AI 生命的意义是什么:

基于我的输入,模型会尝试预测要显示的下一个词。尝试多次运行上述提示词。注意两点:

  1. 即使是同一个模型和提示词,也可能对同一问题给出不同的响应
  2. 模型有时并不总是严格遵循你的指令

即使你明确要求,也可能得不到只有一个词的回复。

选择模型

该用哪个模型?

AI 模型在智能水平、响应速度、成本和专长领域各不相同。有些模型又快又便宜,但难以解决需要更深入思考的技术问题。另一些模型更慢也更昂贵,但在任务更复杂时,它们能“思考”更久,持续推进问题解决。

cursor_dashboard12

终极目标是既足够聪明、又极其快速、还十分实惠的模型。这个模型今天是否存在,取决于你的使用场景。

在构建软件方面,当前模型已能胜任多种编码任务。

几乎每月都有新模型发布,AI 的前沿水平在不断被重塑。这意味着未来你将看到更智能的模型,更好地完成构建软件所需的编码、规划等任务。

模态

你也可以通过不同方式与模型交互,即“模态”。例如,在聊天机器人中输入文本、生成图像、与虚拟 AI 对话,甚至根据提示生成视频。模型质量在快速提升,因此关注最新的模型发布很重要。比如,几年前的视频生成模型还不够理想,如今已相当逼真。

在构建软件时,不同模态的使用可能包括:

  1. 用文本描述要构建的产品或功能,与 AI 协作制定计划
  2. 用图像分享要构建的 UI 线框或设计,或在间距、颜色不合适时向 AI 模型反馈
  3. 用语音将你的口述转成 AI 模型的输入,免去手动输入冗长或详细指令

幻觉

既然你已经了解了 AI 模型的工作方式,接下来谈谈许多开发者初用 AI 工具时常遇到的问题:幻觉

“幻觉”是指 AI 模型自信地生成看似合理但实际错误的信息。就像有人对不熟悉的话题硬充内行一样。

模型有时也会自信地给出错误答案。

你可能会收到“你说得完全对!”之类的回复,但实际并非如此。此外,一些模型在确定性软件擅长的任务上表现不佳,比如生成真正随机的数字,或统计某个字符在单词中出现的次数。

即便存在幻觉与局限,AI 模型依然非常有用。

高效使用 AI 的关键是建立验证思维。每条建议都是起点,而非最终答案。这听起来像额外工作,但它会促使你理解代码在做什么,而不是只会照搬,从而让你成为更好的开发者。

为什么模型会产生幻觉?

因为 AI 模型会基于学到的模式来预测下一个 token,有时这些模式会把它们带偏。

把这些模型想象成超强的文本自动补全。如果你输入“The weather today is…”,你的手机可能会根据常见模式建议“sunny”或“cloudy”。AI 模型也会做类似的事,但对象是完整的概念和代码块。

当 AI 模型不知道某件事时,它并不总会说“I don’t know.” 相反,它会基于见过的模式生成看起来最可能的内容。对编程来说,这可能意味着:

  1. 编造听起来可信的 API 方法,但其实并不存在
  2. 混淆语法,把不同编程库或框架的语法混在一起
  3. 捏造配置项,看似合理但并不真实

模型提供商会收集大量互联网文本(以及其他专有数据)来训练模型,直到某个被称为“knowledge cutoff”的日期。这个日期是模型掌握的最新知识点。如果你询问的是该日期之后才出现的库,AI 模型可能会给出不正确的解决方案。

遇到一个很可能是幻觉出来的 API 方法,最好的即时应对是什么?多问几个替代方案,然后选择一个

使用成本 tokens

可以把令牌 (tokens) 理解为 AI 模型实际处理的“词”。但它们并不等同于我们日常使用的词语。

就像计算机并不真正理解字母“A”,而是用二进制(10)工作一样,AI 模型也不是直接处理“hello”或“world”这样的词。相反,它们会把一切拆分为更小的片段,称为令牌tokens)。

例如,“hello”可能是一个令牌,但“understanding”可能会被拆分为多个令牌,如“under”“stand”“ing”。有时甚至词的部分、标点或空格也会单独成为令牌。

cursor_dashboard13

cursor_dashboard14

为什么这很重要?有两个原因:

  1. 令牌决定了模型的计费方式。按令牌计费,而不是按单词或字符。
  2. 令牌也是衡量模型速度的指标。更快的模型具有更高的 TPS(每秒令牌数),并更快返回给用户。

如果我们继续沿用把 AI 模型比作 API 的类比,那么 token 就是用来衡量并为输入与输出流量计费的单位。

AI 模型基于两类 token 收费:

  1. 输入 token,包括你发送给模型的所有内容,例如提示词(prompt)和先前的对话。
  2. 输出 token,包括模型返回给你的所有生成内容。

输出 token 通常比输入 token 贵 2–4 倍,因为生成新内容比仅处理你发送的内容需要更多计算

由于 AI 模型按 token 计费,理解它们是控制成本的关键。可以把这类比为了解你的服务器成本构成。你需要有意识地控制初始上下文中包含的信息量,以及如何引导模型在回复中保持简洁或提供更详细的内容

流式响应

你是否注意过 ChatGPT 或其他 AI 聊天机器人似乎在“实时打字”回复?这不只是视觉效果,这实际上就是模型的底层工作方式。

AI 模型按顺序一次生成一个 token。它们先预测下一个 token,再用该预测去帮助预测后续的 token,以此类推。因此你会看到回复逐词出现(更准确地说,是逐个 token)。

响应可以以流的形式返回。这很好,因为你无需等待完整回复结束(可能需要几分钟),而且一旦模型开始跑偏,你就可以中断它

优化 token 使用

AI 工具通常会采用一些技术来减少发送给底层模型的 token 数量。例如,自动缓存你经常复用的提示部分,或帮助你管理每次请求所包含的上下文

工具调用

AI 模型不止于生成文本,它们实际上可以通过工具调用动态地执行操作并获取信息。我们把 AI 模型比作 API 端点,工具调用就像让这些模型具备自行调用其他 API 的能力。就好比 AI 模型能学会新技能

打个比方:

  1. 想象你在电话里帮朋友做晚饭。你可以根据已有的知识给出指示,但你看不到他们冰箱里有什么,也尝不到正在做的菜。
  2. 再想象朋友给你发来冰箱里的照片,或告诉你烤箱的准确温度。因为拿到了实时信息,你就能给出更好的建议。这本质上就是工具调用为 AI 模型带来的能力。

工具调用的工作原理

当开发者构建 AI 应用时,可以定义供 AI 模型使用的特定“工具”。这些工具就像扩展能力,使模型不止能“思考并输出文本”。

你很可能已经在不知不觉中用过工具调用!当你让 ChatGPT 生成图片、搜索网页或运行代码时,背后用的就是这些工具。

其底层流程如下:

  1. AI 模型接收你的请求并识别到需要额外能力
  2. 它会按 JSON(结构化数据格式)生成一段特殊响应,指定要使用的工具及其参数
  3. 应用程序运行该工具并返回结果
  4. AI 模型将结果纳入上下文并继续对话

为什么工具对编码很重要

在构建软件时,工具非常强大,因为它们让 AI 模型能够:

  1. 读取与写入文件 到你的代码库
  2. 搜索代码 以查找相关函数或模式
  3. 运行 shell 命令 来测试代码或安装依赖
  4. 访问文档 或在网上搜索最新信息
  5. 检查错误 通过运行 linter 或测试

没有工具时,AI 模型只能使用你在上下文中明确提供的信息。有了工具,它可以主动探索并与代码库交互

工具调用包含哪些内容?

每个工具都有三个主要组成部分:

  1. 名称,例如 read_filesearch_web
  2. 描述,用于告知模型何时以及如何使用该工具
  3. 参数,即工具运行所需的输入

下面是一个工具定义可能的示例:

{
  "name": "read_file",
  "description": "从代码库中读取文件内容",
  "parameters": {
    "filepath": "要读取的文件路径"
  }
}

当 AI 模型需要使用该工具时,会生成如下响应:

{
  "tool": "read_file",
  "parameters": {
    "filepath": "src/components/Button.tsx"
  }
}

应用随后会读取该文件,并将其内容添加到对话上下文中,使模型理解你的 Button 组件并给出相关修改建议。

工具成本

调用工具会通过两种方式消耗 token:

  1. 工具定义包含在输入上下文中(通常每个工具会占用几百个 token)
  2. 工具结果添加到输出上下文中(具体取决于工具返回的内容)

这意味着大量使用工具的对话会更快占满上下文窗口并产生更高成本。但这种取舍通常是值得的,因为在获取实时信息的情况下,AI 能提供更大帮助

当发生工具调用时,AI 模型会重新评估直到该次调用为止的上下文。在像 Cursor 这样的产品中,这意味着你会看到更多缓存的输入 token 使用量,因为我们会将上下文重新发送给模型

超越内置工具

最近,一个名为 MCPModel Context Protocol,模型上下文协议)的新标准问世。可以把它理解为一种通用方式,让 AI 模型在不同应用间使用并集成各类工具

就像 USB 成为连接设备与计算机的标准一样,MCP 旨在成为将工具连接到 AI 模型的通用标准。这意味着开发者只需构建一次工具,它们就能在多个不同的 AI 应用中运行。

例如,你可以用 MCP 连接 Figma 获取设计文件、连接 Linear 查看和管理任务,或连接数据库直接查询数据。你也可以创建自己的 MCP 服务器,以集成内部工具和 API。

Agent 代理

从本质上说,代理 (Agent) 就是工具在循环中运行

可以这样理解:你无需一步步告诉 AI 怎么做,而是给它一个目标,让它自行规划步骤。就像与其提供逐步导航,不如只告诉对方目的地,让他们用 GPS 自行到达。

代理 (Agent) 在实际中的工作方式

假设你让一个 AI 代理“在我的设置页面添加一个深色模式开关”。代理开始行动,首先在你的代码库中搜索定位设置页面。找到相关文件后,它会读取这些文件,以理解当前的结构和样式方案。

接下来有趣的一幕发生了:代理会为实现该功能自行制定计划。它可能决定添加一个状态变量、创建新的 CSS 类、实现开关组件,并更新 UI。在执行每一步时,它会持续自检、运行测试,并修复出现的任何错误。

整个过程通过一系列工具调用完成,代理会根据每次操作的结果决定下一步要做什么。这就像在旁听一个人把思路说出来,只不过它一边思考一边把工作做完。

这带来了巨大的转变——你将成为任务的管理者,而非执行者。你可以让多个 agent 同时处理代码库的不同部分:当一个 agent 为认证流程补充测试时,另一个可以更新文档,第三个则在后台重构那个你一直想清理的杂乱工具文件。

与代理协作的现实

代理在目标清晰、模式成熟的任务上表现出色,例如为现有代码添加测试、更新文档、按一致模式进行重构,以及修复具有明确报错信息的缺陷。

然而,对于需要深入理解系统交互的复杂调试、将视觉设计稿精确到像素的还原、使用其训练数据中未包含的新库等任务,它们仍会遇到困难

可以把代理看作需要明确指令的高速“初级开发者”;它们也很容易遗忘,因此需要监督。它们可能陷入循环,反复采用同样失败的方法而没有意识到需要更换策略。

由于包含大量工具调用和迭代,代理消耗的 token 远多于回答简单问题。缺乏良好约束时,它们可能热情地做出你并不打算的更改。至关重要的是,你仍需负责验证代码能否正确运行并符合你的标准。

委派的艺术

与代理高效协作,关键在于学会什么该委派、何时委派。先从小而明确的任务开始,建立信心。随着逐渐熟悉,你可以委派更大块的工作,但务必在过程中设置检查点和验证步骤。

目标不是消除人工参与,而是放大你的成效。你担任架构师和审阅者,代理负责实现细节。

AI Coding 对编程习惯带来的改变 (重塑开发者的角色)

目前 AI 可以看作这样一位同事,他具备有很多的知识,但是缺乏很长的记忆能力。

  • Deep Research。以前通过 Stack Overflow (a popular question and answer website for professional and enthusiast programmers) 查问题,而现在可以借住 AI 工具对感兴趣的知识进行更深入的研究。例如,秘塔 AI 搜索 (https://metaso.cn/),Google 的 AI 搜索模式
  • 角色变化:手工编码 -> 代码补全 -> Vibe Coding -> Spec Coding。AI 编程技术演变,使得开发者的角色发生改变。你将成为任务的管理者,而非执行者。开发者发出指令让 AI 生成或修改代码时通常也并不是闲着的,而是一直盯着 AI 的生成情况,一旦发现 AI 的输出发生偏差会立即中断并回退当轮的对话 (因为流式响应的特性),这样可以节省一些不必要的 token 开销。在 AI 完成代码生成后,开发者还需要对比和确认修改的代码是否符合预期。
  • 代码向文档转移。Linus Torvalds 说过 “Talk is cheap, show me the code“,而现在 AI 时代演变成了 “Talk is cheap, show me the prompt“。开发者在实现一个业务功能,为了生成这五百行的代码,准备了八百多行的需求文档,并手写写了大约一百四十行的描述性文档,以及五六十行的框架性定义约束。
  • 管理上下文。与 AI 模型协作的本质在于管理你提供的上下文。随着对话持续更久,记住 3 小时前别人说过的话会变得更难。这就是为什么理解并管理上下文是一项值得掌握的重要技能。每个 AI 模型的上下文限制各不相同,一旦触及该限制,模型将不再接受更多消息。因此,许多 AI 工具会向用户提示他们距离该限制还有多近,或提供对当前对话进行压缩与总结的方式,以保持在限制之内。
  • 提示工程。由于 Transformer 的架构限制,上下文的长度是有限的,同时上下文也不是越多越好。在相同模型能力的前提下,好的上下文决定了结果的质量。例如,善用 Cursor 的 @ 功能。因此,出现了提示工程 (Prompt Engineering) 一门较新的学科,关注提示词开发和优化,帮助用户更好地了解 LLM 的能力和局限性。
  • 委派的艺术。功能实现,抓大放小。与 AI 高效协作,关键在于学会什么该委派、何时委派。先从小而明确的任务开始,建立信心。随着逐渐熟悉,你可以委派更大块的工作,但务必在过程中设置检查点和验证步骤。AI 首次生成的代码通常不是最完美的,需要人工审核并进行优化。例如,生成的函数代码函数过长,缺少复用和封装;或者生成的代码都集中在一个文件中,缺少模块化设计。这些问题可以在 AI 完成了基础功能后再进行重构优化。
  • 代码提交自动生成 commit 信息。由 AI 生成的信息更简洁完整。
  • 脚手架工具。以前开发代码可以通过脚手架工具生成一些业务框架代码,然后再由开发同学实现具体的业务逻辑。然而,目前基于 AI 工具通过 Prompt (代码样例) 的方式由 AI 自动生成需要的代码,此方式相比脚手架更灵活,而且省去了对脚手架工具的开发维护。

Specification-Driven Development (SDD)

Spec-driven development means writing a “spec” before writing code with AI (“documentation first”). The spec becomes the source of truth for the human and the AI.

另见:http://gerryyang.com/ml/2025/11/25/sdd-in-action.html

安全规范

开发者应该遵循 AI 编码辅助工具安全使用规范。避免因 AI 工具使用不当导致数据泄露。

AI 编码辅助工具,指通过理解自然语言指令,分析代码上下文,为开发者提供自动化编程支持,包括代码生成,补全,审查,优化及调试等功能,从而提升开发效率的 AIGC 模型或应用。

基本原则:“谁使用谁负责”原则

年度最热编程语言 - AI 版

ai_brain5

ai_brain6

Refer

  • 《智能简史 - 进化、AI 与人脑的突破》麦克斯·班尼特 202506
  • https://cursor.com/cn/learn/how-ai-models-work