本文系统性地整理了当前 AI 编程领域的各类工具和框架,包括 Agent 框架(如 LangChain、AutoGen)、编程助手(如 GitHub Copilot、Gemini CLI)、终端工具(如 Warp)以及 AI 开发相关 SDK 等。文章详细介绍了各类工具的特点和应用场景,并深入探讨了 AI 对软件开发范式的变革影响,包括从传统编程(软件 1.0)到数据驱动神经网络(软件 2.0)再到自然语言编程(软件 3.0)的演进过程。作者特别强调了 Andrej Karpathy 关于 LLM 作为数字'操作系统'的见解,以及'Vibe Coding'这一新兴编程方式。文章还提出了上下文工程(context engineering)这一重要概念,强调其为构建高质量 LLM 应用的关键技能,是融合工程方法与直觉艺术的复杂实践。
从 Agent 卷到 AI 浏览器,从 IDE 卷到 CLI,“太卷了”!
近期,主流 AI 纷纷发布了自家的命令行界面(CLI)编程助手,如 OpenAI Codex CLI[1]、Anthropic Claude Code[2] 以及 Google Gemini CLI[3]。将先进的 AI 推理模型引入开发者终端(Terminal),或许又是软件开发领域的一次重大更新。

📌 Gemini CLI 量大且免费
个人开发者只需用 Google 账号登录即可获得免费的 Gemini Code Assist 许可证,从而免费享受 Gemini 2.5 Pro 及其强大的100 万 token 上下文窗口。在预览期间,它提供了业界最高的免费额度:每分钟 60 次和每天 1,000 次模型请求,确保你极少会触及使用上限。对于专业开发者或有特定需求的用户,也可通过 Google AI Studio 或 Vertex AI 密钥按量付费,或升级至 Gemini Code Assist 标准/企业许可证。
面对层出不穷的 AI 编程工具,身为程序员的我早已麻木(完全跟不上节奏)!像极了 AI 刚出现的前两年,每天睁开眼都有新玩意出现。为了重新对 AI 编程建立宏观认知,我收集整理了目前比较主流的一些框架或工具(这篇文章只是对大脑印象的即兴整理,可能会有所遗漏,仅供参考)。
Agent
Agent AI 是指能够自主感知环境、做出决策并采取行动以实现特定目标的 AI 系统。它们常以框架或库的形式存在,开源代表有:
- LangChain[4] & LangGraph[5]:
- LangChain 是一个用于构建大语言模型(LLM)驱动应用的框架,能够帮助你串联可互操作的组件与第三方集成,简化 AI 应用的开发流程,同时在底层技术不断演进的过程中保持架构的前瞻性和可持续性。
- LangGraph 是一个低层级的编排框架,专为构建、管理和部署长时间运行、具有状态的智能代理而设计,已被 Klarna、Replit、Elastic 等推动代理未来的公司所采用。
- AutoGen[6]:是一个用于创建可自主行动或与人类协同工作的多智能体 AI 应用程序的框架。
- CrewAI[7]:是一个轻量级、极速的 Python 框架,完全从零构建,不依赖于 LangChain 或其他代理框架。它兼具高级简洁性与底层精细控制,适合开发适用于各种场景的自主 AI 代理。
- LlamaIndex[8]:是使用 LLM 和工作流为你的数据构建 LLM 驱动代理的领先框架。
- Agno[9]:是一个专为构建多 Agent 系统而设计的 Python 框架,其核心优势在于支持 Agent 间共享记忆、知识和推理能力。工程师和研究人员使用 Agno 来构建不同级别的 Agent 系统:
- 一级:具备工具和指令。
- 二级:拥有知识和存储功能。
- 三级:配备记忆和推理能力。
- 四级:能够进行推理和协作的 Agent 团队。
- 五级:具备状态和确定性的 Agent 工作流。
- GPT Researcher[10]:是一个智能体代理,专为各种任务的综合在线研究而设计。代理可以生成详细、正式且客观的研究报告,并提供自定义选项,专注于相关资源、结构框架和经验报告。
- ...
过去,多数 Agent 框架侧重于任务编排和流程控制,虽简化了开发,但仍需代码。随后,Browser Use[11] 等 AI 浏览器代理的出现,让普通用户无需编码就能自动化在线任务。更进一步,OpenAI 的 CUA(Computer-Using Agent)[12] 将这一理念推向新高,使 AI 能像人一样操作真实计算机界面,跨网页、文件和应用执行复杂指令,实现从单一任务到多代理协同。从对话式到 AI 浏览器(如 Dia[13])再到系统级代理,AI 与操作系统的融合正加速。
还有基于 Agent 诞生出的定制工作流:
- n8n[14]:是一个工作流自动化平台,为技术团队提供代码灵活性与无代码便捷性的结合。它支持超过 400 种集成,具备原生 AI 能力(可基于 LangChain 构建 AI Agent 工作流,并接入自有数据和模型),并允许用户全面掌控数据和部署。n8n 提供自托管或云服务选项,并支持高级权限、SSO 等企业级功能。此外,它还拥有活跃的社区和大量现成模板。
- dify[15]:是一个开源的 LLM 应用开发平台。其直观的界面融合了 Agentic AI 工作流、RAG 流水线、代理功能、模型管理、可观察性功能等,让你能够快速从原型开发过渡到生产环境。
- ...

编程助手
主要分为 IDE 集成、Online 生成式和 CLI 等:
- IDE 集成:VSCode[16]、Cursor[17]、Windsurf[18]、Zed (基于 Rust 实现)[19]、Trae[20] 等。
- VSCode 插件:Cline[21]、GitHub Copilot[22]、Gemini Code Assist[23]、Claude Code for VSCode[24]、Windsurf Plugin[25]、Tabnine[26]、Cody[27]、Qodo Gen[28]、Roo Code[29]、Augment[30]、Lingma (通义灵码-国产)[31]、Trae AI (豆包-国产)[32] 等。
- Online 生成式:v0.dev[33]、bolt.new[34]、jules[35]、Replit AI[36] 等。
- CLI:除 Codex、Claude Code、Gemini CLI 外,还有 aider[37]、codename goose[38]、Open Interpreter[39] 等。
我个人认为 GitHub Copilot 算是比较特殊的存在,既有 VSCode 插件,也有网页版 Copilot Web[40]、同时还与 GitHub 进行了深度集成,支持仓库代码分析、Issues、PR 处理等。
IDE 集成通常支持 Chat 侧栏对话、代码行对话、Agent、MCP 等多种模式,辅助编程应该是 Agent、MCP 最为重要的落地场景了。Cursor 或许是目前体验最好的 AI IDE,但 VSCode 的持续更新也不容小觑(updates log[41]),毕竟目前大部分 AI IDE 都是其 Fork 版(在插件支持度上有所限制,不如原版 VSCode)。

📌 插件禁用风波
Cursor 是基于 VSCode 套壳的,目的是复用其庞大的插件生态。但前段时间 VSCode 开始限制其核心插件(微软自研)只能用于微软产品,套壳类 IDE 不再支持。影响的主流插件有 C/C++、 Remote-SSH、Pylance 等。禁用核心插件大概率是因为 VSCode 被社区 Fork 后,出现了大量 AI IDE,与微软自家的 GitHub Copilot 形成竞争,过度依赖套壳编辑器的朋友需要评估一下插件影响范围。
相关 issues:Has the VSCode C/C++ Extension been blocked?[42]、Microsoft C/C++ Extension appears to no longer support unofficial forks of VS Code[43]。

Terminal 终端
各类 CLI 的运行离都不开 Terminal,目前体验最好的 AI 终端非 Warp[44] 莫属,支持 agent、mcp 等功能。starship[45] 是一款基于 Rust 实现的终端美化,编程字体 Nerd Fonts[46] 针对开发者添加了大量字形(图标)的字体。


AI 开发
据我观察,目前 AI 应用、MCP 或 CLI 用到的编程语言有 JS、Python、Go、Rust 等。JS 简单易上手,多数情况下都是首选。而 Python 称得上 AI 编程一等公民了,很多 AI 类框架或库都使用 Python 开发。Go 和 Rust 常见于服务或命令行开发,往往侧重于性能。
比较有意思的是 Codex CLI 原本使用 TypeScript 开发,但目前正在实现 Rust 版,最终将取代 TypeScript 版。用 Rust 重写,性能只是很小一部分原因,最主要是将应用原生化,减少对外部环境的依赖(相关 issues:Rust CLI Cutover (Burndown List)[47])。
注:TS 版最终会被编译为 JS,要运行 JS 需要 Node.js 环境(用户需在系统中安装 Node.js)。而通过 Rust 原生化后,用户可以直接执行二进制 CLI 文件,无需安装 Rust 环境。
大模型协议
关于 MCP、A2A 之类的东西,其实之前写过文章,这里就不再赘述了(深度解析:Anthropic MCP 协议、浅谈 Agent、MCP、OpenAI Responses API、 Google A2A:多智能体通信协议)。简单概括就是:MCP(Modal Context Protocol[48])是一个开放标准,用于规范如何向大语言模型(LLM)提供上下文信息。你可以把它想象成 USB-C 接口 —— 一个统一标准的接口,允许应用程序将工具、数据、用户偏好或环境线索等内容整洁地传递给模型。

后来社区还出了个 AG-UI[49] 协议(The Agent-User Interaction Protocol,代理-用户交互协议)。协议虽多,如果从讨论和使用情况来看,似乎只有 MCP 是热门(尤其在编程领域)。

AI 文档
- Context7[50]:LLM 在生成代码建议时,常因依赖过时或通用信息而导致问题,例如提供基于旧训练数据的过时代码示例、生成不存在的“幻觉” API,以及针对旧软件包给出过于笼统的答案。而 Context7 通过其 MCP (Model Context Protocol) 机制,能直接从源头获取最新、针对特定版本的文档和代码示例,并将其直接整合到用户的提示中,从而确保 LLM 输出的建议准确、及时且高度相关。
- DeepWiki[51]:基于 GitHub Repo 源代码生成最新版可对话式文档,由 Devin[52] 驱动。访问链接
https://deepwiki.com/<owner>/<repo>
- Gitingest[53]:将任意 GitHub 代码库转换为适合大语言模型(LLM)提示的文本摘要。访问链接
https://gitingest.com/<owner>/<repo>
- ...
在使用 Context7 MCP 编程时,还可以配合 Sequential Thinking MCP Server[54] 来进一步提高输出代码准确性。如果想了解更多 MCP 服务,可以使用 mcp.so[55] 之类的网站进行检索。
📌 Sequential Thinking MCP Server
顺序思维 MCP 服务器是通过结构化的思维过程,为动态且具反思性的复杂问题求解提供工具支持。其核心工具 sequential_thinking 可将问题拆解为多步推理过程,支持思路修正、分支探索及解法验证等操作,适用于计划设计、逐步分析、多步骤上下文维持等任务场景。总的来说,它为需要持续保持上下文、具备递进式思维与灵活决策能力的任务场景,提供了一种可控、可扩展的结构化思维框架。
AI SDK
- AI SDK[56]:是一个基于 TypeScript 的工具包,它能帮助你利用 Next.js、React、Svelte、Vue 等主流前端框架以及 Node.js 等运行时环境,轻松构建由 AI 驱动的应用程序。其核心模块提供了统一的 API 接口,让你能与 OpenAI、Anthropic、Google、自定义等多种模型提供商无缝交互。
- Google Gen AI SDK[57]:是一款专为 TypeScript 和 JavaScript 开发者设计的工具包,旨在帮助他们构建由 Gemini 提供支持的应用程序。该 SDK 同时支持 Gemini Developer API 和 Vertex AI,并完全兼容 Gemini 2.0 的各项功能。
- OpenAI SDK[58]:提供了从 TypeScript 或 JavaScript 方便地访问 OpenAI REST API。
- Anthropic SDK[59]:该库提供了从服务器端 TypeScript 或 JavaScript 方便地访问 Anthropic REST API。
- ...
这里推荐使用由 Vercel 维护的 AI SDK,几乎可以满足大部分 LLM API 调用需求。
AI 代码生成
shadcn/ui
产生了审美疲劳,还可以用 tweakcn[63] 可视化主题编辑器进行换肤(支持自定义颜色、字体、布局或随机生成),可一键导出 shadcn 配置代码。
小知识:shadcn 是基于 radix[64] + tailwind[65] 实现组件美化,而 tweakcn 又是 shadcn 的美化器。就像搭积木一样,蛮有趣的!
开源 Chat UI
如果对本地部署 AI Chat 感兴趣,或者想自己开发一个类似 ChatGPT 的应用,以下项目可供参考:
- Open WebUI[66]:是一个可扩展、功能丰富且用户友好的自托管 AI 平台,旨在完全离线运行。它支持各种 LLM 运行器(例如 Ollama)和兼容 OpenAI API,并内置 RAG 推理引擎,使其成为强大的 AI 部署解决方案。
- Chat SDK[67]:是一个免费的开源模板,使用 Next.js 和 AI SDK 构建,可帮助你快速构建强大的聊天机器人应用程序。
- LobeChat[68]:现代化设计的开源 ChatGPT/LLMs 聊天应用与开发框架。支持语音合成、多模态、可扩展的(function call[69])插件系统,支持一键部署。
- Cherry Studio[70]:是一款支持多个大语言模型(LLM)服务商的桌面客户端,兼容 Windows、Mac 和 Linux 系统。
- Text generation web UI[71]:适用于大型语言模型的 Gradio Web UI。 其目标是成为文本生成领域的 AUTOMATIC1111/stable-diffusion-webui[72]。
- ...
扩展阅读
从原始编程到 Vibe Coding,从提示词工程到上下文工程(深度理解:提示词工程),AI 正在颠覆行业的同时,也在不断达成新共识。比较巧合的是“氛围编程”这个概念最早也是 Andrej Karpathy 提出的(AI 进阶:从 Vibe coding 到职场必备),最近还分享了在 YC AI Startup School 的主题演讲 Software Is Changing (Again)[73]。他结合自己在斯坦福、OpenAI 和特斯拉的经历,分析了软件发展的历史、现状与未来趋势。
📌 Vibe coding
Vibe coding(也称 vibecoding)是一种依赖大型语言模型(LLM)来生成软件的全新编程方式,由 Andrej Karpathy 于 2025 年 2 月提出,并被《韦氏词典》在次月收录为“俚语 & 热门”名词。其核心在于,开发者只需用自然语言向 LLM 提出需求或描述问题,即可让系统自动生成并修正代码。开发者更多地充当“提示提供者”和“测试者”的角色,而不是手动编写或阅读大量代码。在实践中,人们往往反复将需求或错误信息输入给 LLM,让它修复或改进代码,而不必深入理解技术细节。本质上,Vibe coding 让编程过程更偏向于“与 AI 协同对话”,甚至有时只需“看看、说说、跑一下、然后复制粘贴”,就能完成一个相对完整的项目或 Web 应用。

Software Is Changing (Again)
软件,这一我们习以为常的数字世界基石,正在经历一场前所未有的巨变。
软件演进:三次范式变革
软件 1.0:指令式编程
Karpathy 指出,在过去 70 年里,软件的底层逻辑并未发生太大变化。我们编写代码,给计算机下达精确指令,这便是软件 1.0。这种范式构成了我们数字世界的基石,就像 GitHub 上无数代码仓库所展现的那样,那是人类智慧凝结成的数字指令。然而,近年来,软件世界迅速迎来了两次根本性的变革。
软件 2.0:数据驱动神经网络
几年前,Karpathy 观察到一种新型软件的兴起——神经网络。它不再是我们直接编写的指令代码,而是通过调整数据集,并运行优化器来自动生成神经网络的“权重”(weight)参数。这就像你不再亲手雕刻作品,而是通过调整土壤、温度等环境因素,让大自然的力量塑造出你想要的东西。当时,神经网络可能还被视为一种特殊的分类器,但 Karpathy 认为,将其视为一种新型软件的视角更为恰当。
如今,在软件 2.0 领域,已经出现了类似于 GitHub 的平台,比如 Hugging Face 和 Model Atlas[74],它们汇集了大量的神经网络模型,如同数字世界的基因库,供我们探索、利用。

软件 3.0:自然语言编程
而现在,我们正迎来更具颠覆性的软件 3.0 时代。如果说之前的神经网络是“固定功能”的计算机(例如图像识别器),那么大型语言模型(LLM)的出现,则让神经网络本身变得可编程!
Karpathy 将 LLM 视为一种全新的计算机,而我们的提示词(prompts),就是编程 LLM 的“程序”。更令人惊叹的是,这些程序竟然是用人类的自然语言,比如英语,来编写的。这意味着,曾经需要数年专业学习才能掌握的编程技能,如今通过日常语言就能实现。
这好比以前你需要学习复杂的机器语言来操控电脑,现在你只要用日常语言告诉它你想做什么,它就能理解并执行。例如,要进行情感分类,你可以编写 Python 代码(软件 1.0),训练一个神经网络(软件 2.0),或者,直接用几句话提示一个 LLM(软件 3.0)。这种变革不仅带来了新的编程范式,更将编程的门槛降至前所未有的低点。


多种编程范式共存
Karpathy 在特斯拉的经历也印证了这一趋势:自动驾驶系统从大量 C++ 代码(软件 1.0)逐渐转向由神经网络(软件 2.0)主导。现在,软件 3.0 正在重演这一过程,它将“吞噬”现有软件栈。掌握这三种编程范式,对未来行业从业者至关重要。


LLM 本质:数字世界的“操作系统”
Karpathy 将 LLM 比作多种概念,以阐释其特性:
- 新型“公用事业”:LLM 的训练和运营成本高昂,服务模式类似电力公司,按使用量收费。它们提供智能服务,我们对其有低延迟、高可用性等需求。当 LLM 宕机时,全球智能也随之“停摆”。
- 高科技“晶圆厂”(半导体):训练 LLM 所需的巨额资本支出,使其也具备“晶圆厂”的某些特质。LLM 实验室正在形成深厚的技术积累和研发秘密。然而,软件的易变性使其不像物理晶圆厂那样难以复制,这使得竞争格局更加复杂。
- 数字“操作系统”:这是最贴切的比喻。LLM 是复杂的软件生态系统,而非简单商品。
- 生态系统与竞争格局: 就像 Windows 和 macOS 等闭源操作系统与 Linux 这样的开源替代品并存一样,LLM 领域也出现了少数闭源提供商(如 OpenAI)和像 Llama 生态系统这样的开源替代者。
- 资源调度与内存管理: LLM 可以被视为新的 CPU,其上下文窗口(context window)就像内存。LLM 负责协调记忆和计算,解决问题,这与操作系统的功能高度相似。
- 应用分发: 就像我们可以在 Windows、Linux 或 Mac 上运行 VS Code 一样,基于 LLM 的应用(如 Cursor)也可以在不同的 LLM(如 GPT、Claude 或 Gemini)上运行。
- 1960 年代的计算: 当前 LLM 的计算成本高昂,导致它们集中在云端,用户通过网络作为“瘦客户端”与其交互,这与 1960 年代大型机时代的分时共享计算模式惊人相似。个人计算的革命尚未到来,但诸如 Mac mini 等设备对某些 LLM 的适配性,预示着未来个人 LLM 计算的可能性。
- 终端与 GUI: 直接与 LLM 通过文本交流,就像通过终端与操作系统对话。目前还没有通用的图形用户界面(GUI)来与 LLM 进行更直观的交互,但一些 LLM 应用正在探索这种可能性。

独特的“技术扩散”方向
与以往新技术(如电力、互联网)通常先由政府和企业采用,再逐步扩散到消费者不同,LLM 的技术扩散方向似乎是颠倒的。它首先在普通消费者中迅速普及,帮助人们解决诸如“如何煮鸡蛋”这类日常问题,而不是最初服务于军事或大型企业。这种反向扩散可能预示着 LLM 在应用层面的独特发展路径。
理解 LLM “心智”:超能力与认知缺陷并存
在利用 LLM 之前,我们必须理解它们的本质。Karpathy 将 LLM 比作“人类灵魂的随机模拟器”,它们通过自回归 Transformer 模型,从海量互联网文本数据中学习,因此呈现出类似人类的“涌现心理”。
- 超能力: LLM 拥有百科全书般的知识和记忆,远超任何个体人类,就像电影《雨人》中的自闭症天才,能轻松记住海量信息。
- 认知缺陷:
- 幻觉(Hallucination): LLM 会凭空捏造信息,对自身的知识边界缺乏清晰认知。尽管有所改善,但尚未完美。
- 锯齿状智能(Jagged Intelligence): 它们在某些问题解决领域表现超人,但在一些简单问题上却会犯低级错误(例如坚持 9.11 大于 9.9,或 “strawberry” 有两个 “r”)。
- 顺行性遗忘(Anterograde Amnesia): LLM 无法像人类一样通过睡眠等方式巩固知识并随着时间积累经验。它们的上下文窗口更像是工作记忆,需要我们直接编程来维持。这就像电影《记忆碎片》和《初恋 50 次》中的主角,每天早上记忆都会被清零。
- 安全漏洞: LLM 容易受到提示注入(prompt injection)攻击,并可能泄露数据。
因此,与 LLM 协作,我们需要同时兼顾它们的超能力和认知缺陷,学会如何扬长避短。
LLM 应用:从辅助到自治
像 Cursor 这样的代码编辑器是 LLM 应用的典范。它保留了传统的手动界面,同时深度集成 LLM,让人类以更大的粒度进行操作。这类 LLM 应用通常具备以下特性:
- 上下文管理: LLM 自动处理大量的上下文信息。
- 多模型协调: LLM 在底层协调多个模型(如嵌入模型、聊天模型、代码差异应用模型)。
- 应用特定 GUI: 文本并非审计 LLM 工作的最佳方式。图形界面(GUI)能够更直观地展示信息(如代码的红绿差异),并允许用户通过简单的操作(如快捷键)进行接受或拒绝,大大提升了人机协作的效率。
- 自治滑块(Autonomy Slider): 用户可以根据任务的复杂性,调整 LLM 的自治程度,从简单的代码补全,到修改整个文件,乃至让 LLM 在整个代码仓库中自主行动。

像 Perplexity 这样的问答应用也具备类似特性:信息整合、多 LLM 协调、可审计的 GUI(引用来源)、以及可调节的自治级别(快速搜索、研究、深度研究)。

Karpathy 大胆预测,未来的软件产品和服务都将变得部分自治。这需要我们思考:LLM 能否像人类一样感知和行动?人类又如何能有效地监督和介入?以及如何设计能被 LLM 理解的软件界面和交互方式?

人机协作:加速“生成-验证”循环
在人机协作中,AI 负责“生成”,人类负责“验证”。提升效率的关键在于:
- 加速验证: GUI 利用了人类的视觉处理能力,比阅读纯文本更高效。直观的视觉呈现能大大加速人类的审计过程。

- “牵住” AI 的缰绳: LLM 有时会“过度反应”,生成巨大的代码差异或不符合预期的内容。我们需要找到方法,让 AI 始终保持在可控范围内,防止其“脱缰”。这意味着在 LLM 的输出粒度上要有所限制,让其以小步、增量的方式进行。

例如,在与 LLM 协作编码时,Karpathy 倾向于让 AI 每次只处理一小段具体的代码,确保每次修改都经过仔细验证。模糊的提示词会导致 AI 偏离目标,增加验证成本,因此,提供具体、清晰的提示词,能有效提升协作效率。
为“代理”而设计:新的数字信息消费者
目前,大量的数字信息(如网站、文档)是为人类 GUI 或计算机 API 设计的。但现在,我们有了新的数字信息消费者和操控者 —— AI 代理(agents)。它们是具有“人类灵魂”的计算机,需要我们为其重新构建软件基础设施。
- LLM 友好的信息格式: 我们可以为 LLM 提供类似 robots.txt 的 llm.txt 文件,用简单的 Markdown 格式描述网站内容,让 LLM 更容易理解。

- 为 LLM 重写文档: 许多为人类编写的文档中含有“点击这里”等指令,LLM 无法直接执行。像 Vercel 和 Stripe 这样的公司正在将文档转化为 Markdown 格式,并用 curl 命令替换“点击”等操作,让 LLM 代理可以直接调用。


- LLM 友好的工具: 出现了一些工具(如 gitingest),能将 GitHub 仓库等内容转化为 LLM 可读的单一文本文件或结构化文档,大大方便 LLM 理解和回答问题。
尽管 LLM 未来可能会自主点击和浏览网页,但主动为它们提供更友好的访问方式仍然至关重要,这不仅能降低成本,还能提高效率。
“全民编程”的时代
“Vibe Coding” 这个词的意外爆红,恰好抓住了当前时代的一种普遍感受——每个人都可以成为程序员。当孩子们用自然语言与 AI 互动,创造出简单的应用时,这无疑是一种“编程入门药”,预示着编程民主化的未来。
Karpathy 也尝试了 “Vibe Coding”,仅仅通过与 LLM 对话,就用 Swift 语言构建了一个简单的 iOS 应用,这在以前是不可想象的。他甚至用这种方式开发了一个名为 “Menu Genen” 的餐馆菜单图片生成应用。尽管实际部署的繁琐(认证、支付、域名部署等)消耗了更多时间,但 “Vibe Coding” 的核心 —— 通过对话生成代码,确实大大降低了开发的门槛。

回顾自动驾驶的发展历程,从 2013 年的完美演示到如今仍未完全实现的自主驾驶,Karpathy 告诫我们,软件开发,尤其是涉及自治系统的开发,是一个漫长而复杂的过程。他认为,我们正处于“代理的十年”,而非“代理之年”。我们需要保持耐心,让人类始终参与其中,谨慎前行。
最终,Karpathy 用“钢铁侠战衣”的类比来总结:我们应该构建的,不是完全自主的“钢铁侠机器人”,而是能增强人类能力的“钢铁侠战衣”。这些“战衣”是具有定制 GUI 和 UI/UX 的部分自治产品,它们能大大加速人类的“生成-验证”循环,同时保留“自治滑块”,允许我们随着技术成熟逐步提升自治程度。

“这是一个令人惊叹的时代!” Karpathy 总结道,“大量的代码需要被重写,专业程序员和 ‘Vibe Coder’ 都将参与其中。LLM 是像操作系统一样的存在,我们正处于 1960 年代的操作系统发展初期。它们是‘有缺陷的人类灵魂’,我们需要学会与它们协作,调整我们的基础设施,并构建能快速进行‘生成-验证’循环的部分自治产品。同时,我们也需要为代理们更直接地编写代码。”
未来十年,我们将亲眼见证软件自治的程度从左向右滑动,而我们,正是这场伟大变革的参与者和建设者。
上下文工程

我非常喜欢用“上下文工程(context engineering)”这个术语来取代“提示词工程(prompt engineering)”。相比之下,它更准确地描述了核心技能的本质:为任务提供足够且恰当的上下文,使大语言模型(LLM)能够合理地完成任务。这不仅仅是写一两句提示词那么简单,而是一门融合了工程方法与直觉艺术的复杂实践。
在日常使用中,人们常将 prompt 理解为简短的任务描述,但在任何工业级的 LLM 应用中,真正关键的是上下文工程。这是一项精细的工作,其本质在于把“刚刚好”的信息填入模型的上下文窗口,为下一步推理提供最优条件。之所以说它是一门科学,是因为做好这件事通常涉及任务说明、few-shot 示例、RAG(检索增强生成)、相关数据(可能是多模态的)、工具使用、状态记录、历史追踪、上下文压缩等多个维度。提供的信息太少、太杂或形式不当,模型将无法展现最佳性能;反之,填充过多或无关信息,则会导致性能下降和推理成本上升。因此,设计合理的上下文不是一件容易的事。
与此同时,上下文工程也是一门艺术。这种艺术性体现在对语言模型“心理机制”的直觉理解与经验积累上,掌握这种直觉,往往是打造出高质量 LLM 应用的关键。
当然,上下文工程只是构建完整 LLM 应用中的一个部分。除此之外,系统还需负责任务分解与控制流设计、上下文窗口的动态封装、调用不同类型和能力的 LLM、设计生成-验证交互流程,以及构建安全机制、评估系统、并行执行与预取机制等一整套复杂的协调逻辑。这些都构成了一个厚重且不容忽视的软件层,它协调着每次模型调用,并使得整个系统可靠运行。因此,“ChatGPT 包装器(wrapper)”这种说法早已过时,甚至是完全错误的,它无法体现当前 LLM 应用背后的系统复杂性与工程价值。
结语
AI 的演进正日益深入,超越了最初的纯对话模式,开始与应用程序乃至操作系统深度融合。这种趋势的核心目标是赋予 AI 更大的操作权限,使其能够执行更复杂、更自动化的任务。
对于普通用户而言,日常需求如信息查询、内容创作等,通过对话式 AI 或 AI 浏览器(如 Dia)即可轻松满足。然而,当需要处理更加复杂的任务时,集成 AI 功能的集成开发环境(IDE)或支持任务编排的工作流将成为更高效、更强大的选择。
对于开发者来说,理解并驾驭 AI、图形用户界面(GUI)和操作系统三者之间的关系变得至关重要。未来软件开发的重心,将不仅仅在于编写代码,更在于如何巧妙地编排这些元素,构建出能与 AI 无缝协作、高效执行复杂任务的智能应用。这标志着计算范式的一次深刻转变,需要开发者重新思考人机交互的本质以及软件的构建方式。
最近还看到一个有趣的笔记应用演示,它可以通过“笔记”内容为自身生成新功能,这或许也是未来 AI 应用发展的新方向:通过与应用对话来拓展自身功能。

References
[1]
Codex CLI:https://github.com/openai/codex
[2]
Claude Code:https://github.com/anthropics/claude-code
[3]
Gemini CLI:https://github.com/google-gemini/gemini-cli
[4]
LangChain:https://github.com/langchain-ai/langchain
[5]
LangGraph:https://github.com/langchain-ai/langgraph
[6]
AutoGen:https://github.com/microsoft/autogen
[7]
CrewAI:https://github.com/crewAIInc/crewAI
[8]
LlamaIndex:https://github.com/run-llama/llama_index
[9]
Agno:https://github.com/agno-agi/agno
[10]
GPT Researcher:https://github.com/assafelovic/gpt-researcher
[11]
Browser Use:https://github.com/browser-use/browser-use
[12]
CUA(Computer-Using Agent):https://openai.com/index/computer-using-agent
[13]
Dia:https://www.diabrowser.com
[14]
n8n:https://github.com/n8n-io/n8n
[15]
dify:https://github.com/langgenius/dify
[16]
VSCode:https://code.visualstudio.com
[17]
Cursor:https://www.cursor.com
[18]
Windsurf:https://windsurf.com
[19]
Zed (基于 Rust 实现):https://zed.dev
[20]
Trae:https://www.trae.ai
[21]
Cline:https://github.com/cline/cline
[22]
GitHub Copilot:https://github.com/features/copilot
[23]
Gemini Code Assist:https://marketplace.visualstudio.com/items?itemName=Google.geminicodeassist
[24]
Claude Code for VSCode:https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code
[25]
Windsurf Plugin:https://marketplace.visualstudio.com/items?itemName=Codeium.codeium
[26]
Tabnine:https://marketplace.visualstudio.com/items?itemName=TabNine.tabnine-vscode
[27]
Cody:https://marketplace.visualstudio.com/items?itemName=sourcegraph.cody-ai
[28]
Qodo Gen:https://marketplace.visualstudio.com/items?itemName=Codium.codium
[29]
Roo Code:https://marketplace.visualstudio.com/items?itemName=RooVeterinaryInc.roo-cline
[30]
Augment:https://marketplace.visualstudio.com/items?itemName=augment.vscode-augment
[31]
Lingma (通义灵码-国产):https://marketplace.visualstudio.com/items?itemName=Alibaba-Cloud.tongyi-lingma
[32]
Trae AI (豆包-国产):https://marketplace.visualstudio.com/items?itemName=MarsCode.marscode-extension
[33]
v0.dev:https://v0.dev
[34]
bolt.new:https://bolt.new
[35]
jules:https://jules.google.com
[36]
Replit AI:https://replit.com/ai
[37]
aider:https://github.com/Aider-AI/aider
[38]
codename goose:https://github.com/block/goose
[39]
Open Interpreter:https://github.com/OpenInterpreter/open-interpreter
[40]
Copilot Web:https://github.com/copilot
[41]
updates log:https://code.visualstudio.com/updates
[42]
Has the VSCode C/C++ Extension been blocked?:https://github.com/getcursor/cursor/issues/2976
[43]
Microsoft C/C++ Extension appears to no longer support unofficial forks of VS Code:https://github.com/VSCodium/vscodium/issues/2300
[44]
Warp:https://www.warp.dev
[45]
starship:https://github.com/starship/starship
[46]
Nerd Fonts:https://www.nerdfonts.com
[47]
Rust CLI Cutover (Burndown List):https://github.com/openai/codex/issues/1262
[48]
Modal Context Protocol:https://modelcontextprotocol.io
[49]
AG-UI:https://github.com/ag-ui-protocol/ag-ui
[50]
Context7:https://github.com/upstash/context7
[51]
DeepWiki:https://deepwiki.com
[52]
Devin:https://devin.ai
[53]
Gitingest:https://github.com/cyclotruc/gitingest
[54]
Sequential Thinking MCP Server:https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking
[55]
mcp.so:https://mcp.so
[56]
AI SDK:https://github.com/vercel/ai
[57]
Google Gen AI SDK:https://github.com/googleapis/js-genai
[58]
OpenAI SDK:https://github.com/openai/openai-node
[59]
Anthropic SDK:https://github.com/anthropics/anthropic-sdk-typescript
[60]
p5.js:https://github.com/processing/p5.js
[61]
three.js:https://github.com/mrdoob/three.js
[62]
shadcn/ui:https://github.com/shadcn-ui/ui
[63]
tweakcn:https://github.com/jnsahaj/tweakcn
[64]
radix:https://www.radix-ui.com
[65]
tailwind:https://tailwindcss.com
[66]
Open WebUI:https://github.com/open-webui/open-webui
[67]
Chat SDK:https://github.com/vercel/ai-chatbot
[68]
LobeChat:https://github.com/lobehub/lobe-chat
[69]
function call:https://lobehub.com/zh/blog/openai-function-call
[70]
Cherry Studio:https://github.com/CherryHQ/cherry-studio
[71]
Text generation web UI:https://github.com/oobabooga/text-generation-webui
[72]
AUTOMATIC1111/stable-diffusion-webui:https://github.com/AUTOMATIC1111/stable-diffusion-webui
[73]
Software Is Changing (Again):https://youtu.be/LCEmiRjPEtQ?si=Sfw_2aK_L8y2u2mZ
[74]
Model Atlas:https://huggingface.co/spaces/Eliahu/Model-Atlas
