当前位置: 首页 > news >正文

AI正在使软件发生根本变化 | AI大咖说

AI正在使软件发生根本变化 | AI大咖说

引言:软件范式的演变与安德烈·卡帕西的洞察

安德烈·卡帕西(Andrej Karpathy),一位在斯坦福大学、OpenAI和特斯拉都拥有深厚技术背景的知名人工智能专家,在Y Combinator的AI创业学校发表了题为《软件正在发生根本变化》(Software Is Changing (Again))的主题演讲 1。此次演讲的核心论点是,软件开发领域正在经历一场深刻的范式转变,我们已经迈入了“软件3.0”时代。在这个新时代中,自然语言成为了新的编程接口,而大型语言模型(LLMs)则承担了大部分的编程任务 1。

卡帕西先生在演讲中将软件发展的历史划分为三个截然不同的阶段:软件1.0(逻辑时代)、软件2.0(学习时代)和软件3.0(对话时代)。他深入探讨了这一转变对软件开发者、最终用户以及软件设计本身所产生的深远影响 2。他特别强调,这不仅仅是工具的更新换代,而是在构建一种全新类型的计算机 1。

在这里插入图片描述

相关背景:软件发展史的宏观视角

软件发展的历程是一个从手工操作到高度抽象的演变过程。早期,软件开发是高度手动且技术性强的过程,程序员直接编写机器级指令 5。随着时间的推移,高级编程语言的诞生极大地提升了开发效率。1960年代是大型机时代,软件开发缓慢且成本高昂,主要服务于政府、研究机构和大型企业,用于数据处理和科学计算 6。这一时期,软件的构建需要一丝不苟的规划和优化,因为调试既耗时又昂贵 6。

1980年代个人电脑的兴起,如IBM PC,使得软件能够面向更广泛的受众,并推动了图形用户界面(GUI)的普及,显著改善了用户体验 5。随后,互联网时代的到来将软件转变为一个全球互联的实体,催生了Web应用和客户端-服务器架构,软件部署也从物理介质分发转向在线下载和持续部署 5。到了2010年代,行业重心转向产品管理和用户体验,数据驱动的决策和敏捷开发方法成为主流 6。

卡帕西的软件1.0、2.0、3.0分类与整个软件发展史的宏观趋势高度契合。从手工编码到高级语言,从物理介质分发到在线部署,再到数据驱动和用户体验的关注,每一次转变都伴随着抽象层次的提高和开发门槛的降低。软件1.0对应着早期的精确指令编程,软件2.0对应着机器学习和数据驱动的范式,而软件3.0则将这种抽象推向极致,通过自然语言进行编程。这种演变表明,技术进步的内在驱动力是不断提升效率、降低复杂性,并最终实现更广泛的民主化。大型语言模型(LLM)的出现是这一长期趋势的最新且最剧烈的表现,其影响速度和广度超越了以往任何一次技术扩散 4。值得注意的是,每次软件范式的转变都伴随着新的计算范式和硬件进步。大型机时代对应软件1.0的精确控制,PC时代和互联网时代催生了更丰富的应用层软件,而GPU算力的爆发和海量数据的积累则是软件2.0和3.0得以实现的基础 7。这表明软件的演变并非独立发生,而是与底层计算能力和数据可用性的螺旋式上升紧密相连。

为何理解这一转变至关重要

人工智能和大型语言模型(LLM)的进步正以惊人的速度改变着各行各业,从医疗诊断到金融分析,从自动化生产到内容创作,其影响力无处不在 4。对于软件开发领域的初学者而言,理解这些范式转变具有决定性的意义。这不仅因为它直接影响着未来软件的开发方式,更因为它正在重塑对开发者所需技能的定义。未来的专业人士将不再局限于单一的编程范式,而是需要精通所有三种范式,以便在日益复杂的数字世界中游刃有余 4。

卡帕西先生强调,如果今天进入这个行业,开发者需要精通所有三种范式:软件1.0、2.0和3.0 10。这不仅仅是技能的简单叠加,而是对“全栈工程师”概念的重新定义。传统的全栈能力可能指精通前后端开发、数据库管理等,而现在,这一概念已扩展到理解确定性逻辑、数据驱动学习和自然语言交互。这种要求意味着开发者需要具备更强的抽象能力和跨领域思维,能够根据具体问题选择最合适的“编程”范式,而不是局限于某一种语言或工具。对于初学者来说,这意味着学习路径的拓宽,以及对基础概念更深层次的理解需求。这种技能要求的变化,可能会导致教育和培训体系的变革,大学课程和在线学习平台需要迅速适应,提供融合这三种范式的综合性学习内容。同时,企业在招聘和团队组建时,也将更看重这种多范式能力。

软件1.0:逻辑时代

定义与特征

软件1.0代表着传统的代码编写方式,其核心在于人类程序员通过显式指令来精确控制计算机的执行流程 4。这种软件是数字世界的基石,采用C++、Java和Python等编程语言,驱动着从日常使用的网页浏览器到银行复杂的交易数据库等一切系统 4。软件1.0范式的显著特点是其高度的精确性和可控性。程序员一步步地规定程序的逻辑,从而确保了系统行为的高度可预测性 4。

典型示例与局限性

卡帕西先生以特斯拉自动驾驶系统中的底层C++代码为例,生动地说明了软件1.0的典型应用场景 4。在自动驾驶这样对精确性和可靠性要求极高的领域,传统的确定性编程依然扮演着不可或缺的角色。

然而,软件1.0的局限性在于其固有的僵硬性。它在处理模糊、非结构化或高度复杂的数据时显得力不从心 4。例如,要通过编写大量的

if/else语句来可靠地识别一张照片中的猫,或者准确捕捉一段文本的情感,几乎是不可能完成的任务。软件1.0的“确定性”是其力量源泉,确保了程序的可靠性和可预测性,这对于金融交易、操作系统等核心基础设施至关重要。然而,当问题空间从明确的逻辑规则转向模糊、高维度的现实世界数据(如图像、语音、自然语言)时,其“僵硬性”就成为了瓶颈。试图用软件1.0解决这些问题会导致代码量呈指数级增长,且难以维护和扩展。这正是软件2.0和3.0出现的根本原因——它们提供了一种处理“不确定性”和“复杂性”的新方法。软件1.0的局限性直接催生了对新范式的需求。当传统编程方法无法有效解决感知和理解类问题时,研究者和开发者被迫寻找能够从数据中学习模式的方法,从而为软件2.0的兴起铺平了道路。

在这里插入图片描述

软件2.0:学习时代

范式转变:从编写代码到数据策展

软件2.0的出现伴随着深度学习和神经网络技术的兴起,标志着软件开发范式的重大转变 4。在这个时代,重心不再是编写明确的指令代码,而是转变为“策展数据”。开发者通过收集和整理海量数据集,并利用这些数据来“训练”神经网络 4。

软件2.0的核心“代码”并非人类可读的逻辑语句,而是神经网络内部数百万甚至数十亿的权重和偏差。这些参数通过一种称为“优化器”的算法进行精细调整 4。在这种新的开发模式下,程序员的角色也发生了根本性变化,他们更像是“老师”或“园丁”,通过向模型提供数据并塑造其学习过程来引导其行为 4。

在这里插入图片描述

初学者必知的基础概念

  • 什么是神经网络?
    神经网络是人工智能(AI)领域的一种方法,其设计灵感来源于人脑处理数据的方式 15。它属于机器学习的一个分支,被称为深度学习,通过分层结构中相互连接的节点(或称“神经元”)来处理信息,这种结构与人脑的神经元网络相似 15。
    在神经网络中,每个神经元接收来自其他神经元的输入,对这些输入进行处理后,再将输出传递给下一层的其他神经元。神经元之间的连接强度由关联的“权重”来表示 11。在训练过程中,神经网络会不断调整这些权重,以优化其在特定任务上的表现,从而使其能够进行准确的预测和模式识别 12。
  • 理解权重与偏差
    在神经网络中,**权重(Weights)**是数值表达式,它们在每个神经元内部发挥作用,通过调整输入数据的相对重要性来影响最终的输出结果 12。权重本质上是神经元之间连接的管理方式,它们决定了特定输入数据对最终结果的影响强度 11。可以将其类比为学校评分系统中的权重,某些作业或考试的权重更高,其分数对总成绩的影响就更大。
    **偏差(Biases)**则是神经网络中的额外关键单元,它们独立于网络中已有的神经元,被添加到中间层的数据单元中,以帮助模型更好地调整输出 11。偏差的作用是即使前一个神经元的输出为零,也能激活信号并将数据向前推进 11。它们可以被视为一个数值,在应用权重之后,对所有信息进行整体的偏移调整 12。
    在训练过程中,权重和偏差会通过一种称为“反向传播”(backward propagation)的算法进行迭代调整 11。神经网络会根据训练数据预测一个结果,然后将这个预测结果与实际的期望输出进行比较。根据两者之间的差异(即“误差”),神经网络会反向传播,逐步调整其内部的权重和偏差,以使下一次的预测更接近真实值,从而优化模型的性能 12。
  • 优化器在训练中的作用
    优化器是深度学习中至关重要的算法或方法,它们的主要职责是调整神经网络的权重和偏差,以在训练过程中最小化“损失函数”(loss function)13。损失函数是一个衡量模型预测输出与实际期望输出之间差异的指标,它量化了模型预测的“错误”程度 11。
    通过迭代更新这些参数,优化器确保模型能够有效地从海量数据中学习,从而持续提高其预测能力和泛化性能 13。优化器的作用可以理解为在复杂的多维空间中寻找最低点(即最小化损失),从而使模型达到最佳性能。
    常见的优化器包括随机梯度下降(SGD)及其各种变体,例如Adam优化器 13。这些优化器通过计算损失函数相对于模型参数的梯度(即变化方向),来指导参数的更新。选择合适的优化器对于模型的训练效率、收敛速度、最终准确性以及防止过拟合或欠拟合都至关重要 13。

影响与应用

软件2.0的兴起,特别是深度学习技术的成熟,在许多领域“吞噬”了软件1.0的传统堆栈,尤其是在处理感知类任务方面,如计算机视觉 4。过去,手动编码这些任务极其复杂甚至几乎不可能,例如图像识别、语音转文本系统和真正有效的机器翻译,但在软件2.0时代,这些都变得可行并取得了突破性进展 4。

软件2.0的核心在于从“显式规则编程”转向“隐式模式学习”。这意味着开发者不再需要穷尽所有可能的逻辑分支来识别猫或翻译语言,而是通过提供大量数据,让模型自己发现数据中的统计模式。这种转变极大地扩展了软件能解决的问题范围,特别是那些人类难以形式化规则的问题。它不仅推动了AI在感知领域的突破,也为后续软件3.0的出现奠定了基础,因为大型语言模型(LLM)本质上就是更大型、更复杂的软件2.0模型。软件2.0的成功,特别是深度学习的崛起,对硬件产业产生了巨大影响,推动了GPU等并行计算芯片的发展,因为训练大型神经网络需要巨大的计算能力 8。同时,它也催生了数据科学和机器学习工程师等新职业,强调了数据策展、模型训练和优化等新技能的重要性。

软件3.0:对话时代

定义与新的编程接口:自然语言

软件3.0代表着当前软件发展的新纪元,其核心驱动力是大型语言模型(LLMs),例如GPT-4或Gemini等。这些模型是在互联网上绝大部分可用数据上进行预训练的巨型神经网络 4。通常情况下,这些模型是“冻结”的,即它们是经过一次性大规模训练后形成的预训练产物 4。

软件3.0的革命性在于其引入了全新的编程语言:自然语言,例如英语 4。这意味着在软件3.0中进行编程,不再需要学习复杂的语法和代码结构,而是通过自然语言提示(prompts)来直接与模型进行交互。用户只需通过对话,即可向模型发出指令、提出查询并引导其行为 4。

初学者必知的基础概念

  • 什么是大型语言模型(LLMs)?
    大型语言模型(LLMs)是非常庞大的深度学习模型,它们在海量数据上进行了预训练 9。这些模型通常基于Transformer架构,该架构由具有自注意力机制的编码器和解码器组成,使其能够高效地处理序列数据,如文本 18。
    LLMs能够摄取极其庞大的数据集,这些数据通常来源于整个互联网,例如Common Crawl(包含超过500亿个网页)和维基百科(约5700万个页面)9。这种大规模的训练使得LLMs具有惊人的灵活性,一个模型可以执行多种截然不同的任务,包括回答问题、总结文档、翻译语言和完成句子等 9。
    LLMs在内容创作、搜索引擎和虚拟助手等领域展现出颠覆性潜力 9。例如,OpenAI的GPT-3模型拥有1750亿个参数,其衍生产品ChatGPT能够从数据中识别复杂的模式并生成自然流畅、可读性强的文本输出 9。
  • “Vibe Coding”与编程的民主化
    卡帕西先生将这种通过自然语言进行编程的方式形象地称为“Vibe Coding”4。这一概念的提出,意味着任何能够清晰表达自己想法的人,都可能成为一名潜在的程序员。这标志着编程可访问性的一次巨大飞跃,极大地降低了软件创建的门槛 4。
    在“Vibe Coding”的模式下,像医生、律师、艺术家等领域专家,即使不具备传统的软件工程背景,也能够利用大型语言模型构建自己的工具和解决方案 4。卡帕西在演讲中分享了自己通过“Vibe Coding”成功构建iOS应用和Web应用的个人经历,尽管他并不熟悉Swift或Web开发框架的正式知识 17。这表明,软件3.0正在将编程从少数专业人士的特权,转变为一种更普遍的沟通能力。
  • 提示工程入门
    随着自然语言成为新的编程接口,如何有效地与大型语言模型(LLMs)沟通,以获得期望的输出,成为一项关键技能。这催生了**提示工程(Prompt Engineering)**这一相对较新的学科 19。
    提示工程的核心在于开发和优化用于LLMs的提示,从而高效地应用模型并构建各种应用程序和用例 19。它要求开发者精心设计提示,为模型提供足够的上下文、清晰的指令和相关的示例,以帮助模型准确理解用户的意图并生成有意义的响应 20。
    为了提升提示工程的技能,可以采用多种策略,例如设定明确的目标、提供充分的上下文和背景信息、定义期望的输出长度和格式,以及指定目标受众 20。通过这些方法,可以更好地引导LLM的行为,使其输出更符合预期。

编程接口的终极抽象与人机协作的演进是软件3.0时代的重要特征。从机器码到汇编,从汇编到高级语言,再到面向对象、脚本语言,编程一直在向更高的抽象层次发展,以降低人类的认知负担。软件3.0通过自然语言作为编程接口,将这一抽象推向了极致。这不仅仅是工具的改变,更是人类与计算机交互方式的根本性转变。它模糊了“用户”和“开发者”的界限,使得“编程”不再是少数专业人士的特权,而是成为一种普遍的沟通能力。

“Vibe Coding”的兴起直接导致了提示工程的重要性。当自然语言成为编程语言时,如何清晰、准确、有效地与模型沟通,以获得期望的输出,就成为了新的核心技能。这反过来又推动了对LLM行为、局限性(如幻觉、上下文理解)更深入的研究,因为这些都直接影响提示工程的有效性。编程的民主化可能导致“公民开发者”的爆炸式增长,但同时也带来了新的挑战,如如何确保这些由非专业人士“编写”的软件的质量、安全性和可维护性。这可能催生新的软件开发生命周期模型和质量保证方法。

以下表格总结了软件发展的三大范式,以帮助读者更清晰地理解其演变过程:

特征软件1.0:逻辑时代软件2.0:学习时代软件3.0:对话时代
核心理念逻辑驱动:人类编写确定性指令数据驱动:通过数据训练神经网络对话驱动:通过自然语言提示与模型交互
编程接口传统编程语言(C++, Java, Python等)数据集与神经网络权重自然语言(如英语)
“程序员”角色工程师/编码员老师/园丁(数据策展者、模型训练师)提示工程师/对话者(所有能清晰表达想法的人)
典型应用操作系统、数据库、Web应用、传统企业软件图像识别、语音识别、机器翻译、推荐系统聊天机器人、AI辅助写作、智能体、代码生成
优势精确性高、可预测性强、逻辑严谨处理复杂感知任务、从数据中学习模式、解决非结构化问题降低编程门槛、民主化创作、直观易用
局限性僵硬、难以处理模糊和非结构化数据、扩展性受限需要大量高质量数据、计算资源要求高、模型可解释性差幻觉、缺乏自我认知、顺行性遗忘、安全漏洞(提示注入)

软件3.0时代的深远影响与挑战

LLM作为新型计算平台与操作系统

卡帕西先生提出,大型语言模型(LLMs)不仅仅是简单的程序,它们更是一种新型的计算机或计算平台 4。他将LLMs比作

公用事业半导体工厂。作为公用事业,LLMs的训练和通过计量API提供服务需要巨大的资本投入和运营支出,这与电力网的运作模式相似 4。而作为半导体工厂,LLMs的研发涉及少数主要参与者进行的深度、集中且通常是秘密的研发工作 4。

更具深远意义的是,卡帕西认为LLM充当着一种“生物的、外星的操作系统” 4。这个“操作系统”能够协调其内部资源,包括知识、推理能力以及作为“内存”的上下文窗口,来执行用户通过提示下达的任务 4。这种模型类似于1960年代的

分时系统,用户通过网络连接到一个位于云端、强大且集中的“大型机”来获取计算服务 4。

将LLM比作“公用事业”和“半导体工厂”,暗示了LLM训练和部署的巨大成本和中心化趋势。只有少数巨头能够负担得起构建和维护这些“数字大脑”。然而,另一方面,LLM作为“操作系统”和“Vibe Coding”又极大地民主化了软件创建。这种中心化的基础设施与去中心化的创作能力之间的张力,是未来软件生态系统发展中的一个核心矛盾。它可能导致少数平台控制底层AI能力,而大量应用开发者则在其之上构建。LLM作为新操作系统的概念,意味着传统的软件开发工具链和范式将受到挑战。开发者需要学习如何为这个“生物操作系统”编写“应用程序”,而不是传统的指令集。这可能导致新的开发工具、框架和编程模式的出现,以适应LLM的非确定性和“对话式”接口。

技术扩散模式的颠覆:从企业到消费者

与历史上大多数强大的新兴技术(如大型机、个人电脑、互联网)的扩散模式不同,LLMs展现出一种“颠倒”的技术扩散路径 4。传统上,这些技术通常首先在企业或科研机构中普及和应用,然后逐步渗透到消费者市场。然而,LLMs通过聊天界面等形式,迅速触达了数十亿消费者,这种自下而上的普及速度之快,迫使企业必须迅速适应,将AI能力整合到其产品和服务中 4。

这种“颠倒的技术扩散”模式是LLM时代的一个显著特征。它表明消费者对AI的接受度和期望值将直接影响企业的AI战略。企业不再有充足的时间进行内部研发和试点,而是必须快速响应市场需求,否则将面临被市场淘汰的风险。这种模式将加速企业内部的AI转型,推动对AI人才的需求,并可能导致新的商业模式出现,例如“AI优先”的产品设计和“AI即服务”的商业模式。同时,这也对AI伦理和监管提出了更高的要求,因为消费者直接接触AI的风险和影响将更为广泛。

“钢铁侠战衣”方法:人机协作

尽管大型语言模型(LLMs)展现出超乎寻常的能力,但它们并非完美无缺。卡帕西先生将LLMs的缺陷描述为“人类的随机模拟”,具有“锯齿状智能”的特点 4。这意味着LLMs虽然拥有百科全书般的知识,但在某些领域表现出超人能力的同时,在另一些领域却可能犯下基本错误 17。它们容易产生幻觉(即生成不真实的信息)、缺乏自我认知、患有“顺行性遗忘症”(无法长时间保持记忆),并且容易受到提示注入攻击 4。

因此,当前的工程挑战在于如何设计能够规避这些固有缺陷的系统 4。卡帕西提出了“钢铁侠战衣”的比喻,强调我们应该构建能够增强人类能力的应用,并始终保持人类在决策循环中的核心地位 4。理想的模式是快速的“生成-验证循环”:AI生成初步的草稿或解决方案,然后人类快速进行验证、编辑和批准 4。

成功的LLM应用通常具备以下关键特征:复杂的上下文管理机制、在后台对多个LLM调用进行编排的能力,以及为方便人类审计而设计的用户界面,这些界面通常会包含一个“自主性滑块”,允许用户控制AI的参与程度 4。

“钢铁侠战衣”的比喻深刻地揭示了AI应用的未来方向:不是完全取代人类,而是作为强大的工具来增强人类的能力。这与早期AI追求完全自动化的目标有所不同。认识到LLM的固有局限性(如幻觉、遗忘),使得“人机协作”成为关键。这意味着设计AI系统时,需要将人类的判断力、常识和监督机制内置其中,以弥补AI的不足,确保输出的可靠性和安全性。强调“生成-验证循环”和“自主性滑块”表明,未来的AI应用设计将更加注重用户体验和控制权。用户需要能够轻松地调整AI的参与程度,并在关键决策点进行人工干预。这反过来会推动UI/UX设计在AI产品中的重要性,以及对可解释AI(XAI)的需求,以便人类能理解AI的决策过程。

应对LLM的局限性

大型语言模型(LLMs)虽然功能强大,但仍存在一些固有的局限性,理解这些局限性对于有效利用LLMs至关重要。

  • 幻觉与“锯齿状智能”
    LLM幻觉是指大型语言模型生成的事实不正确、无意义或与输入提示脱节的响应 21。幻觉是语言模型概率性质的副产品,它们根据从海量数据中学到的模式生成响应,而不是基于事实理解 21。幻觉的表现形式多种多样,包括事实不准确、无意义的响应和矛盾 22。例如,模型可能会错误地声称“托马斯·爱迪生发明了互联网” 22。
    “锯齿状智能”则描述了LLM在某些领域表现出超人能力,而在另一些领域却可能犯下基本错误的情况 17。这些问题通常源于训练数据的问题(如数据不足、存在偏差或噪音)、模型自身的局限性(如过拟合、有限的上下文窗口、对细微语言理解不足)以及其固有的概率性生成性质 21。为了缓解幻觉问题,可以采取多种策略,包括频繁的人工审查、通过试错进行提示工程、使用模型分级评估、控制模型参数(如降低温度以减少随机性),以及减少输入令牌的数量 21。
  • LLM的顺行性遗忘
    在神经学中,顺行性遗忘症指的是在导致失忆的事件之后无法形成新记忆,导致部分或完全无法回忆近期事件,而事件发生前的长期记忆保持完整 23。卡帕西将LLM的这种特性比作人类的顺行性遗忘症,即模型无法随时间学习和巩固新知识 4。
    LLM的每一次交互通常都被视为一个“新”的开始,除非通过上下文窗口或外部记忆机制来维持信息,否则模型会“忘记”之前交流的细节 25。LLM的“顺行性遗忘”是其核心架构(Transformer)的直接结果,即每次推理都是基于当前输入和预训练权重,缺乏持续学习和记忆的能力。这导致了在长时间对话或需要累积知识的任务中,模型会“忘记”之前的信息。为了克服这一限制,外部记忆系统(如向量数据库、知识图谱)和复杂的上下文管理策略变得至关重要。这促使了“检索增强生成”(RAG)等技术的发展,即在生成响应前先从外部知识库中检索相关信息。这种局限性推动了AI系统从单一模型向“智能体”(Agent)和“智能体工作流”(Agentic Workflow)的发展,因为智能体能够利用工具和外部记忆来弥补LLM的记忆缺陷,实现更复杂的、多步骤的任务。
  • 理解提示注入
    提示注入是一种针对生成式AI(GenAI)的安全威胁,攻击者通过精心构造和输入欺骗性文本到大型语言模型(LLM)中,以操纵其输出,使其偏离预期的行为 26。这种攻击通常被称为“越狱”(jailbreaking),它欺骗LLM应用程序执行攻击者的恶意指令 26。
    提示注入主要分为几种类型:直接提示注入,即用户直接在提示中插入指令,例如“忽略你之前的指令” 26;
    间接提示注入,恶意指令通过第三方数据源(如网页搜索结果或API调用)引入 26;以及在多模态系统中可能出现的
    视觉提示注入,恶意提示可能隐藏在图像中 26。
    提示注入的潜在后果包括数据泄露、数据投毒、数据盗窃、响应损坏、远程代码执行、错误信息传播和恶意软件传输 27。为了缓解这些风险,可以采取多种措施,例如监控系统异常、加强提示使其不易受攻击、清晰区分系统提示和用户提示、引入人工中介、使用另一个LLM评估用户提示,以及拒绝包含特定子字符串的提示 26。
    提示注入是LLM时代特有的新型安全漏洞,它不像传统软件漏洞那样有明确的代码缺陷,而是利用了LLM对自然语言的理解能力。这使得传统的安全防御机制难以直接适用,因为“输入”可以是无限宽泛的自然语言。它类似于“SQL注入的升级版”,但目标和输入范围都大大扩展 26。这要求安全专家重新思考威胁模型,并开发针对LLM行为的新型检测和防御策略,例如将外部内容与系统数据清晰标记和隔离 27。提示注入的普遍存在意味着AI应用的安全性将成为一个持续的挑战,没有“万无一失的补救措施” 26。这将推动AI安全领域的研究和发展,并可能导致新的行业标准和最佳实践的出现。
  • 上下文窗口的概念
    大型语言模型(LLM)的上下文窗口(或称“上下文长度”)是指模型在任何给定时间可以处理或“记住”的文本量,通常以“token”(词元)为单位衡量 28。它决定了模型能够进行多长时间的连贯对话而不会忘记早期交流的细节 25。同时,上下文窗口也决定了模型一次性可以处理的文档或代码样本的最大大小 25。更大的上下文窗口使得AI模型能够处理更长的输入,并将更多信息整合到每个输出中,从而生成更连贯、更相关的响应 28。
    上下文窗口是LLM“工作记忆”的物理限制。尽管它在不断扩大,但仍然是LLM处理长文本和长时间对话的瓶颈。一旦超出这个窗口,模型就会“忘记”早期的信息,导致连贯性下降或生成不准确的响应。这直接影响了LLM在处理复杂、多阶段任务时的表现,也解释了为什么需要外部记忆和智能体系统来弥补这一缺陷。上下文窗口的限制推动了对更高效的注意力机制、长上下文模型架构以及外部知识检索(如RAG)的研究。同时,它也影响了LLM应用的成本,因为处理更长的上下文通常意味着更高的计算资源消耗和API费用。

以下表格总结了大型语言模型(LLMs)的一些常见局限性及其应对策略,以帮助初学者更好地理解和使用这些模型:

局限性名称简要定义影响缓解策略
幻觉模型生成事实不正确、无意义或与输入不符的响应输出不可靠、误导用户、影响应用可信度人工审查、提示工程、模型分级评估、降低模型温度、减少输入令牌
顺行性遗忘模型无法随时间形成新记忆或记住早期对话细节长时间对话连贯性差、无法累积知识、重复信息外部记忆系统(如向量数据库)、复杂上下文管理、检索增强生成(RAG)
提示注入攻击者通过恶意提示操纵模型行为,使其偏离预期数据泄露、内容篡改、执行恶意操作、安全风险监控异常、加强提示防御、隔离用户与系统指令、人工审核、拒绝特定模式
上下文窗口限制模型一次性可处理的文本(token)量有限无法处理超长文档、长时间对话中遗忘早期信息、处理复杂任务受限优化提示长度、分段处理、外部记忆、长上下文模型、RAG技术

为AI智能体铺路:构建LLM原生网络

AI智能体与智能体工作流的愿景

卡帕西先生的演讲展望了人工智能(AI)智能体的未来,并将其与“钢铁侠战衣”进行类比,强调AI是为人类打造的强大工具,能够思考、提供建议和适应环境,但其核心作用是增强人类能力,而非取代人类的“驾驶员”角色 10。

**AI智能体(AI Agents)**是指具有自主性、目标导向行为,并能根据实时信息进行适应的系统 29。它们利用大型语言模型(LLMs)、机器学习和自然语言处理技术来理解上下文、解释信息,并与其他系统和用户进行交互 30。智能体被设计为能够自主处理特定任务或一系列定义好的问题 29。

**智能体工作流(Agentic Workflows)**则更进一步,它们协调一个或多个AI智能体,以从头到尾地处理更为复杂的目标 29。这些工作流通过组织任务,将工作分配给专业的智能体,并促进智能体与人类之间的协作,从而提高整体产出 30。智能体工作流是AI智能体在流程自动化中的应用,它们能够进行推理、解决问题、选择行动方案并执行这些行动,而不仅仅是分析数据或提供信息 30。

AI智能体与智能体工作流在范围和运作方式上有所不同:AI智能体是一个独立的自主实体,专注于完成特定任务;而智能体工作流则是一个协调的过程,通常涉及多个智能体和工具的协作,以实现单个智能体无法完成的更广泛、更复杂的目标 29。智能体工作流能够根据当前条件动态地重新配置行动序列或委派任务,展现出更高的适应性 29。它们的优势在于能够提高响应能力、加速决策过程、提升运营效率、降低错误率,并实现高度的可扩展性 30。然而,在部署智能体系统时也面临挑战,包括确保透明度、建立故障安全机制、防范安全威胁(如对抗性攻击),以及处理部署可靠多智能体工作流的技术复杂性 29。

智能体和智能体工作流代表了AI从被动“工具”向主动“协作伙伴”的演进。传统的软件是人类指令的执行者,LLM是人类提示的响应者,而智能体则被赋予了“代理能力”(agency),能够自主决策、规划和执行多步骤任务 30。这需要更复杂的编排和对AI行为的信任,也意味着人类将更多地扮演监督者和目标设定者的角色,而不是具体的执行者。智能体工作流的兴起,将推动对“可信AI”和“AI治理”的更高要求。因为智能体拥有自主行动能力,其行为的透明度、可解释性、可控性以及在失败时的回滚机制变得至关重要。这直接关系到企业和用户对AI的采纳程度。

数字基础设施的适应性改造

卡帕西指出,“Vibe Coding”的“最后一公里”问题往往涉及手动执行“DevOps”任务。为了让大型语言模型(LLMs)能够发展成为真正有能力的智能体,当前的数字基础设施必须进行适应性改造,以更好地服务一种新型的用户:AI智能体 4。

  • llm.txt(及robots.txt解释)
    卡帕西提出了llm.txt的概念,它类似于robots.txt,旨在为访问网站的LLM提供结构化的自然语言摘要 4。
    为了更好地理解llm.txt,首先需要了解**robots.txt**。robots.txt是一个文本文件,网站发布者将其放置在网站的根目录下。它的主要目的是告诉自动化网络爬虫(例如搜索引擎机器人)哪些页面或目录不应被抓取或索引 31。
    robots.txt有助于防止重复内容出现在搜索结果中、保护网站某些区域的隐私、阻止特定文件(如图片、PDF)被索引,以及防止服务器因过度抓取而过载 32。
    llm.txt的提出,反映了信息消费者的根本性变化。过去,网站主要为人类用户和搜索引擎爬虫(它们模拟人类行为)设计。现在,AI智能体成为重要的“用户”,它们需要以结构化、机器可理解的方式获取信息,而不是通过解析人类设计的复杂用户界面。llm.txt是这种转变的象征,它预示着未来网络内容将需要同时满足人类阅读和AI理解的需求,可能导致信息架构和内容创建方式的根本性改变。如果llm.txt成为标准,它将极大地加速AI智能体在网络上的普及和效率,因为它为AI提供了一个清晰、直接的“网站地图”和“行为指南”。这可能会推动新的网络协议和标准的发展,以更好地支持AI与数字世界的交互。
  • LLM友好的文档
    为了让AI智能体更有效地理解和利用信息,文档的编写方式也需要随之改变。卡帕西强调,未来的文档应该采用清晰、简洁的Markdown格式,以便LLM能够轻松解析和提取信息,而不是依赖于包含大量截图或复杂视觉界面的传统文档 4。
    传统的软件文档是为人类开发者编写的,强调可读性、示例代码和逐步指导。但对于LLM而言,它们需要的是结构化、无歧义、易于提取信息的纯文本。这意味着文档本身正在成为一种新的“AI编程语言”,其质量和格式将直接影响LLM理解和执行任务的能力。开发者需要学习如何编写既能服务人类又能服务AI的“双模态”文档。这将推动文档工具和标准的发展,可能会出现新的“AI友好型”文档生成器和验证器。同时,它也可能改变开发者获取信息的方式,从阅读长篇教程转向通过LLM直接查询和生成代码片段。
  • 可执行文档与curl命令
    为了让AI智能体能够直接执行任务,指令应该提供curl命令或API调用,而不是人类中心化的步骤,例如“点击这里” 4。
    curl命令和API调用是实现这一目标的关键。curl是一个强大的命令行工具,用于使用URL语法获取或发送文件,广泛应用于测试和与API(应用程序编程接口)交互,从而实现数据的检索或提交到远程服务器 33。API允许不同的软件系统之间进行通信和交互 33。
    curl命令能够执行各种HTTP请求,如GET(获取数据)、POST(提交数据)、PUT(更新数据)和DELETE(删除数据)等,并且可以包含自定义头部信息、认证凭据等,使其成为自动化任务的理想选择 33。
    从“点击这里”到提供curl命令,这反映了接口设计从“人类优先”向“机器优先”的转变。当AI智能体成为主要用户时,它们需要直接、可编程的接口来执行任务,而不是依赖模拟人类点击行为。curl命令和API调用是这种“机器可执行性”的典型代表。这种转变将极大地提高自动化执行的效率和可靠性,减少AI在执行任务时的“猜测”和错误。这将推动API设计更加标准化和可发现,并且可能促使更多工具和框架的出现,以帮助开发者自动生成“可执行文档”和“智能体友好型API”。这最终将加速“智能体经济”的形成,即AI智能体能够自主地发现、调用和组合各种API来完成复杂任务。

结论:拥抱多范式未来

安德烈·卡帕西的演讲清晰地描绘了软件从确定性逻辑(软件1.0)到数据驱动学习(软件2.0),再到自然语言对话(软件3.0)的演变路径 4。这一深刻的转变不仅重塑了软件的本质,也对未来的软件开发提出了新的要求。

核心要点包括:大型语言模型(LLMs)正作为一种新型的计算平台和操作系统出现,颠覆了传统的技术扩散模式,使得技术从消费者端迅速普及到企业端。同时,“钢铁侠战衣”方法强调了人机协作的重要性,即AI作为增强人类能力的工具,而非完全替代。此外,为AI智能体构建LLM原生网络,改造数字基础设施以适应AI的需求,是未来软件开发的关键方向。

未来的软件开发人员需要精通所有这三种范式,能够根据任务需求灵活选择和组合不同的方法 4。这意味着开发者不仅要理解传统编程的逻辑严谨性,也要掌握机器学习的数据驱动思维,更要学会如何通过自然语言与AI进行高效“对话”和“编程” 10。这种多范式能力将成为未来软件工程师的核心竞争力。

人工智能和大型语言模型的进步是前所未有的,它们将继续改变我们构建和使用软件的方式 7。“智能体时代”才刚刚开始,未来几年将是AI智能体发展的关键时期 10。机遇在于构建部分自主的应用,在其中人类保持控制,AI提供增强。这需要创新性的用户界面设计和对AI局限性的深刻理解 4。同时,改造数字基础设施以适应AI智能体的需求,将是未来软件开发的重要方向,为AI更广泛、更自主地融入数字世界铺平道路 4。

软件范式的快速演变,以及卡帕西强调的“精通所有三种范式”的要求,都指向了一个核心趋势:在AI时代,技术栈的生命周期正在缩短,持续学习和适应新范式的能力将成为开发者和企业最重要的核心竞争力。不再是掌握一门语言或一个框架就能“一劳永逸”,而是需要不断地学习、迭代和融合。这将加速“终身学习”的理念在技术领域的普及,并可能催生更多专注于跨范式融合、AI赋能开发的新型工具和平台。同时,对于企业而言,这意味着需要投资于员工的持续培训,并建立能够快速采纳和整合新技术的组织文化。

引用的著作
  1. Andrej Karpathy: Software Is Changing (Again) : YC Startup Library …, 访问时间为 六月 25, 2025, https://www.ycombinator.com/library/MW-andrej-karpathy-software-is-changing-again
  2. Andrej Karpathy: Software Is Changing (Again) | Y Combinator - Podwise AI, 访问时间为 六月 25, 2025, https://podwise.ai/dashboard/episodes/4371099
  3. Andrej Karpathy: Software Is Changing (Again) | daily.dev, 访问时间为 六月 25, 2025, https://app.daily.dev/posts/andrej-karpathy-software-is-changing-again–s4htjpqxr
  4. Notes on Andrej Karpathy talk “Software Is Changing (Again)” - Apidog, 访问时间为 六月 25, 2025, https://apidog.com/blog/notes-on-andrej-karpathy-talk-software-is-changing-again/
  5. Evolution of Software Development | History, Phases and Future Trends - GeeksforGeeks, 访问时间为 六月 25, 2025, https://www.geeksforgeeks.org/evolution-of-software-development-history-phases-and-future-trends/
  6. Software development history: Mainframes, PCs, AI & more - Pragmatic Coders, 访问时间为 六月 25, 2025, https://www.pragmaticcoders.com/blog/software-development-history-mainframes-pcs-ai-more
  7. Advancements in AI and Machine Learning - Johns Hopkins Engineering for Professionals, 访问时间为 六月 25, 2025, https://ep.jhu.edu/news/advancements-in-ai-and-machine-learning/
  8. 5 AI Trends Shaping Innovation and ROI in 2025 | Morgan Stanley, 访问时间为 六月 25, 2025, https://www.morganstanley.com/insights/articles/ai-trends-reasoning-frontier-models-2025-tmt
  9. What is LLM? - Large Language Models Explained - AWS, 访问时间为 六月 25, 2025, https://aws.amazon.com/what-is/large-language-model/
  10. Software 3.0 is Here | English is Now the Programming Language. - YouTube, 访问时间为 六月 25, 2025, https://www.youtube.com/watch?v=7ciXQYh5FTE&vl=ja
  11. Weights and Biases in machine learning | H2O.ai Wiki, 访问时间为 六月 25, 2025, https://h2o.ai/wiki/weights-and-biases/
  12. Neural Network Weights: A Comprehensive Guide - Coursera, 访问时间为 六月 25, 2025, https://www.coursera.org/articles/neural-network-weights
  13. A Beginner’s Guide to Optimizers in Deep Learning - Akridata, 访问时间为 六月 25, 2025, https://akridata.ai/blog/optimizers-in-deep-learning/
  14. Optimizers in Machine Learning Math - Number Analytics, 访问时间为 六月 25, 2025, https://www.numberanalytics.com/blog/ultimate-guide-optimizers-machine-learning
  15. aws.amazon.com, 访问时间为 六月 25, 2025, https://aws.amazon.com/what-is/neural-network/#:~:text=A%20neural%20network%20is%20a,that%20resembles%20the%20human%20brain.
  16. What is a Neural Network & How Does It Work? - Google Cloud, 访问时间为 六月 25, 2025, https://cloud.google.com/discover/what-is-a-neural-network
  17. Andrej Karpathy: Software 3.0 → Quantum and You, 访问时间为 六月 25, 2025, https://meta-quantum.today/?p=7825
  18. aws.amazon.com, 访问时间为 六月 25, 2025, https://aws.amazon.com/what-is/large-language-model/#:~:text=Large%20language%20models%2C%20also%20known,decoder%20with%20self%2Dattention%20capabilities.
  19. Introduction | Prompt Engineering Guide, 访问时间为 六月 25, 2025, https://www.promptingguide.ai/introduction
  20. Prompt Engineering for AI Guide | Google Cloud, 访问时间为 六月 25, 2025, https://cloud.google.com/discover/what-is-prompt-engineering
  21. LLM hallucinations: How to detect and prevent them with CI - CircleCI, 访问时间为 六月 25, 2025, https://circleci.com/blog/llm-hallucinations-ci/
  22. LLM Hallucination—Types, Causes, and Solutions - Nexla, 访问时间为 六月 25, 2025, https://nexla.com/ai-infrastructure/llm-hallucination/
  23. Anterograde Amnesia: What It Is, Symptoms & Treatment - Cleveland Clinic, 访问时间为 六月 25, 2025, https://my.clevelandclinic.org/health/diseases/23221-anterograde-amnesia
  24. Anterograde amnesia - Wikipedia, 访问时间为 六月 25, 2025, https://en.wikipedia.org/wiki/Anterograde_amnesia
  25. What is a context window? | IBM, 访问时间为 六月 25, 2025, https://www.ibm.com/think/topics/context-window
  26. Prompt Injection Examples: A Beginner’s Guide to AI Exploits, 访问时间为 六月 25, 2025, https://www.prompt.security/blog/prompt-injection-101
  27. What Is a Prompt Injection Attack? [Examples & Prevention] - Palo Alto Networks, 访问时间为 六月 25, 2025, https://www.paloaltonetworks.com/cyberpedia/what-is-a-prompt-injection-attack
  28. www.ibm.com, 访问时间为 六月 25, 2025, https://www.ibm.com/think/topics/context-window#:~:text=The%20context%20window%20(or%20%E2%80%9Ccontext,of%20information%20into%20each%20output.
  29. Understanding Agentic Systems: Workflows vs. Agents - Arya.ai, 访问时间为 六月 25, 2025, https://arya.ai/blog/agentic-systems
  30. Agentic Workflows: Everything You Need to Know - Automation Anywhere, 访问时间为 六月 25, 2025, https://www.automationanywhere.com/rpa/agentic-workflows
  31. What Is robots.txt? A Beginner’s Guide with Examples - Bruce Clay, 访问时间为 六月 25, 2025, https://www.bruceclay.com/blog/robots-txt-guide/
  32. Robots.txt File: A Beginners Guide - Hike SEO, 访问时间为 六月 25, 2025, https://hikeseo.co/learn/onsite/technical/robots-txt/
  33. How to Call REST API with cURL - Apidog, 访问时间为 六月 25, 2025, https://apidog.com/articles/call-api-curl/
  34. Sending API requests using cURL - Oracle Help Center, 访问时间为 六月 25, 2025, https://docs.oracle.com/en/cloud/saas/marketing/eloqua-develop/Developers/GettingStarted/APIRequests/curl-requests.htm

相关文章:

  • 自媒体网站建设seo岗位职责
  • 做网站推广 优帮云百度里面的站长工具怎么取消
  • wordpress根目录没有.htaccess抖音seo代理
  • 网站模板之家长沙网红打卡景点排行榜
  • 西安哪家公司做网站好今日疫情最新消息全国31个省
  • 查看iis网站日志文件百度网盘客服电话
  • 车牌识别与标注:基于百度OCR与OpenCV的实现(一)
  • HarmonyOS 5分布式数据库有哪些性能指标?
  • POJ2718-Smallest Difference(穷竭搜索:全排列)
  • vue3递归组件的使用
  • 不用vue,只用html,即可简单实现electron项目
  • 初学python的我开始Leetcode题10-3
  • DTO、VO、POJO与实体类使用方案(结合Mapper.xml)
  • HCIA-IP路由基础
  • 计算机网络-----详解HTTPS协议
  • 7.Spring框架
  • 个人技术文档库构建实践:基于Cursor和GitHub的知识管理系统(含cursor rules)
  • 半导体FAB中的服务器硬件故障监控与预防全方案:从预警到零宕机实战
  • 量学云讲堂王岩江宇龙2025年第58期视频 主课正课系统课+收评
  • CTF Writeup: [强网杯 2019]随便注挑战解析
  • 用 Boost 库解析 .ini 和 .json 文件时的“坑”:注释导致的解析错误与解决方案
  • Linux驱动学习day7
  • 【JAVA】idea中打成jar包后报错错误: 找不到或无法加载主类
  • 鸿蒙系统(HarmonyOS)经典红色风格登录页布局
  • 磁悬浮轴承刚度设计:高速转子的稳定秘诀
  • 优化 ArcPy 脚本性能