#AI编程

谷歌最近推出的Antigravity编程开发环境,可能会从根本上改变程序员的工作方式。 这款以智能体为核心的产品,把AI从传统的辅助角色,变成了能独立规划和执行任务的开发伙伴。 Antigravity最特别的地方,是它把"代理管理器"作为主界面,而不是像其他IDE那样把AI助手放在侧边栏。 用户可以看到三种工作区域:管理多个智能体的仪表盘、类似VS Code的编辑器,还有直接集成的Chrome浏览器。这让智能体能够像人一样操作开发工具,甚至实时测试网页应用。 Google官方介绍说,用Antigravity时,程序员可以专注于架构设计和战略决策,而智能体则能处理从写新功能代码、调试到生成文档的多步骤任务。更重要的是,它引入了"工件"功能,会把任务列表、代码实现过程、浏览器截图和测试记录都保存下来。这解决了AI写代码时的信任问题,让开发者能清楚看到代码是怎么来的,怎么测试的。 现在已经有不少企业在测试这个系统。JetBrains的报告显示,用Antigravity时解决任务的数量比Gemini 2.5 Pro时代提高了50%以上。GitHub在测试中发现,面对复杂的工程问题,准确率比之前提升了35%。连Cursor、Figma、Shopify这些开发平台都在集成Gemini 3 Pro技术。 Antigravity现在处于公开预览阶段,支持Windows、Mac和Linux系统,而且是免费试用。它不仅能用Google自家的Gemini 3 Pro,还兼容Claude和GPT-OSS等其他AI模型。官方说,基本能满足大多数开发者的使用需求,只有极少数高频用户可能会遇到使用限制。 从技术发展的角度看,这种让AI深度介入开发流程的方式,可能正在成为下一代编程工具的方向。它的核心价值不仅是提高效率,更重要的是改变了人与AI的协作模式,让程序员从重复劳动中解放出来,更专注于创造性的工作。
宝玉
2个月前
研究 Vibe Coding 都能写论文了,来自中科院、杜克大学等的这篇《基于大语言模型的Vibe Coding综述》,还是花了点功夫把 Vibe Coding 相关的论文、信息梳理了一遍,有一些值得看的内容。 【一】 首先是对 Vibe Coding 的定义,这篇论文把 Vibe Coding 描述成一个“三方关系” (参考图1): 1. 人类开发者:不再是代码的直接创作者,更像是需求的提出者、方向的把控者和最终质量的仲裁者 。你的主要工作是清晰地表达意图,并判断 AI 做出来的东西“对不对”。 2. 软件项目:不再仅仅是代码库,而是一个包含代码、数据、文档、领域知识等各种信息的“上下文空间” 。AI 需要从这里获取信息来理解任务。 3. 编程智能体 (AI):负责具体的编码、修改、调试工作,它听从人类的指令,并受项目上下文的约束 。 论文也提到了 Vibe Coding 带来的问题:经验丰富的开发者在使用高级AI工具时,完成任务的时间反而增加了19% ! 【二】 为什么经验丰富的开发者 Vibe Coding 时间更长?不完全是模型能力不够,还有其他原因: 1. 系统性的上下文工程 (Context Engineering):你得知道怎么把项目信息(代码库、文档、规范)有效地“喂”给 AI 。AI 不是凭空写代码,它需要知道你的项目是怎么回事 。光会写漂亮的提示词 (Prompt) 是不够的,管理上下文信息才是核心技术 。 2. 反馈循环 (Feedback Loops):不能简单地把活儿全丢给 AI。怎么提要求?怎么给反馈?什么时候该介入?这些协作方式直接影响效率和质量 。 3. 基础设施 (Infrastructure):你需要能安全执行 AI 代码的“沙盒” ,能跟 AI 流畅对话、共享项目信息的交互界面 ,甚至需要能自动化测试、部署 AI 代码的平台 。没有这些基础设施,AI 就是“带镣铐跳舞” 。 【三】 五种 Vibe Coding 开发模式 : 1. 无约束自动化 (UAM):完全放手让 AI 干,你只看最终结果 。速度快,风险高,适合做一次性原型或小工具 。有点像软件工程里的“快速应用开发”(RAD) 。 2. 迭代式对话协作 (ICCM):你和 AI 像结对编程一样 ,AI 写,你审,反复沟通迭代 。质量有保障,但需要你深度参与 。 3. 规划驱动 (PDM):你先做好设计、定好规范(比如写好技术文档、规则文件、实施计划) ,然后指导 AI 按计划执行 。有点像传统的“瀑布模型” ,但 AI 的快速迭代让它更灵活 。 4. 测试驱动 (TDM):你先写好测试用例,定义清楚“怎样算对” ,然后让 AI 去写能通过测试的代码 。用机器验证代替人眼审查 。这是传统“测试驱动开发”(TDD)的应用 。 5. 上下文增强 (CEM):这不是一个独立流程,而是一种“增强插件” 。通过检索增强生成(RAG)、代码库索引等技术,让 AI 能更好地理解项目现有情况,生成更贴合项目风格和规范的代码 。它可以与其他四种模式结合使用 。 【四】 Vibe Coding 的最佳实践——把 Agent 当员工而不是工具 很多一直把 AI 当成一个“超级自动补全”,一个更聪明的 Stack Overflow,我们把它当成一个“工具”,而实际上,它是一个智能体(Agent)。 “工具”和“Agent”的区别是什么? - 工具(比如锤子、编译器):它帮你完成你正在做的事。你100%掌控它。 - Agent(比如一个初级程序员):它能自主完成任务。你需要给它分配任务、给它“记忆”(上下文)、给它权限,并对它进行“管理”和“审查”。 如果试图用“使用工具”的方式,去“管理一个员工”,结果就是会带来两个极端: - 一个极端是盲目接受:AI 写的代码,语法漂亮,看着很对。你“Vibe”一下,直接提交。结果生产环境崩了。你大骂“模型产生了幻觉”,而真正的问题是,你跳过了必要的检查环节: 代码审查、自动化测试。 - 一个极端是过度怀疑:你根本不信它,它写的每一行你都要重写,这同样影响效率。 这特别像那些管理水平不怎么样的 Engineering Manager:要么对员工(AI)完全放任不管,要么事必躬亲地为管理。 最佳实践是在关键节点设置检查站,自动化验证流程,但在过程中放权。就像一个新员工入职,你不会直接让他们在生产环境上更新代码,而是会有配套的流程和环节保障。 【五】 开发者的角色正在发生根本性转变。你不再仅仅是代码的生产者,你的核心工作变成了: 1. 意图阐述与提示工程:把复杂需求翻译成 AI 能理解的清晰指令 。 2. 上下文管理:精心挑选和组织信息(API 文档、代码片段、设计规范),喂给 AI,限制它的“自由发挥”,确保方向正确 。 3. 系统级调试:当 AI 生成的系统出问题时,重点不再是逐行 GDB,而是从系统行为层面去推测、定位问题,然后引导 AI 去修复 。 4. 架构监督:AI 负责实现细节,你得把握整体架构,确保项目的概念完整性和长远健康 。 5. 质量验证与治理:设计测试用例,利用自动化工具验证 AI 的输出,管理 AI 的权限,追踪代码来源 。 简单说,你的价值从“写好代码”变成了“用好 AI 来写好代码”。这不仅仅是技能的增加,更是一种思维模式的彻底转变 。 【六】 Vibe Coding 带来的挑战:安全、可靠性、监管,以及……我们自己 1. 代码可靠性和安全性:AI 可能从训练数据里学到并复现各种 Bug 和安全漏洞 。只看“Vibe”不看代码,无异于“盲驾” 。我们需要新的自动化工具和流程来实时监控、验证 AI 生成的代码 。手动代码审查根本跟不上 AI 的产出速度 。 3. 大规模监管:当 AI 智能体能自主修改、部署代码时,如何有效监督它们?如何防止一个错误像病毒一样扩散?如何追踪责任? 。现有的管理和审计方法都过时了 。我们需要能与 AI 能力同步扩展的监管架构 。 3. 人的因素:开发者需要转变思维模式 ,学习新技能 。团队协作方式需要调整 。更重要的是,如何建立对 AI 恰当的信任度——既不盲从也不过度怀疑 ? 4. 教育脱节:现在的计算机教育体系,有教你怎么“指挥”AI 写代码、怎么设计 AI 的工作流、怎么评估 AI 的风险吗?很少 。人才培养的速度,远远落后于技术发展的速度 。 论文地址:
宝玉
2个月前
你这就是对我的偏见了,总觉得我只是个搬运自媒体 我好歹日常大量阅读、写代码、写提示词,捎带着搬运了一些还分享了实践经验。 我本身也是 AI 乐观派,希望它越来越强,帮我干越来越多的活,也希望“AI成为编程架构师”。 但是我们不能停留在空想,或者对未来的一种幻想,等着 AGI 的到来。 说回具体的,AI 未来也许能成为编程架构师,但这套路径还很遥远,和 AGI 一样遥远: 1. 长上下文还没解决好,架构能力需要对系统有全局了解,当前你没办法把整个代码库扔进去 也许可以像 DeepSeek 论文那样用缩略图,但那还是理论上 2. 对代码结果的反馈 AI 还不能直接感知,架构能力不是理论,更需要实践,架构效果好不好一定是要去实际运行,在运行中收集反馈并调整。现在 AI 根本没法感知系统的运行效果,让它自己去搭个运行环境也许勉强可以,怎么测试并评估系统的反馈是做不到的 3. 长期记忆仍然没解决,架构师设计过程中,有大量的沟通工作,和 PM 和程序员,这些沟通的内容都要融合到架构中,但怎么把它们记下来并融入架构设计,并在设计后验证这些记忆中的内容,都是挑战。 4. AI 对多个 Agent 的组织能力还有待提升,架构师不仅仅是一个技术工作,不是写个架构设计文档就结束了,还需要去传播架构知识,基于架构去调整组织结构,基于组织结构去整合结果,这方面至少要 AI 进化到组织者这个阶段 你看我们讨论问题,我觉得反对和赞同都很正常,但我们最好具体问题具体讨论,至少我一般不是情绪化的说它行或者不行,或者不会说你没做过架构你不懂,或者未来怎么样怎么样,而是像上面一样一条条列出我的观点。 如果我错了我也很乐意修正自己观点,比如去年我还觉得 Coding Agent 不靠谱,而现在我觉得“真香”。
宝玉
2个月前
转译:像外科医生一样写代码 很多人都说,AI 会让我们统统变成“经理”或者“编辑”……但我认为,这种看法不仅不完整,甚至还有点危险! 就我个人而言,我正努力像外科医生一样写代码。 外科医生可不是经理,他们是亲自动手干活的人!但他们的技术和时间被一个支持团队极大地放大了。这个团队会处理好所有准备工作、次要任务和行政杂务。这样一来,外科医生就能心无旁骛地专注于他们最擅长的关键事务。 我现在用 AI 编程工具的目标,就是把 100% 的时间都花在真正重要的事情上。(作为一名 UI 原型设计师 (UI prototyper,也就是设计和制作产品初步模型的人),这主要意味着捣鼓各种设计概念。) 事实证明,现在有很多次要任务,AI 智能体 (AI agents) 已经完全有能力帮忙处理了。最近我发现,把下面这些活儿交给 AI 就挺好: - 在开始一项大任务前,先让它写一份关于代码库相关部分的指南。 - 尝试对一个大改动进行“探路” (Spike out,软件开发术语,指快速做一个简单的原型来探索解决方案的可行性)。我经常不会直接用它的结果,但我会把它当作一个草图,帮我看清方向。 - 修复那些有明确要求的 Typescript 错误或 bug。 - 给我正在构建的功能写文档。 我经常发现,让这些次要任务在后台“异步” (async,指任务在后台运行,不会卡住你当前的工作) 跑着非常有用——比如我吃午饭的时候,甚至干脆让它跑上一整夜! 当我坐下来准备开工时,我希望自己就像一个走进准备就绪的手术室的外科医生。一切都已准备停当,就等我来大显身手了。 值得注意的是,我用 AI 处理“主要任务”和“次要任务”的方式,有着天壤之别。 对于核心的设计原型工作,我仍然会大量手写代码。即便用 AI,我也会非常小心,抠很多细节。我需要快速的反馈循环和良好的可见性。(比如,在这种场景下我就很喜欢 Cursor 的 tab 键自动补全功能) 至于次要任务,我的态度就放松多了,我很乐意让一个 AI 智能体在后台“折腾”好几个小时。最终能把活儿干完才是最重要的;至于速度和可见性,就没那么要紧了。过去我处理这种长时间无人值守的任务时,首选是 Claude Code,但 Codex CLI (一个通过命令行使用 AI 编码的工具) 正在成为一个强有力的竞争者,甚至可能成为我的新宠。 这两种工作模式截然不同!这让我想起了 Andrej Karpathy (AI 领域的大牛,特斯拉前 AI 总监) 提出的 “自主性滑块” 概念。把“自主性光谱”的不同部分混为一谈是危险的 —— 它们各自所需的工具和心态,差别真的非常大。 你的智能体不需要职业规划 “软件外科医生”这个概念其实很早就有了——弗雷德·布鲁克斯 (Fred Brooks) 在他 1975 年的经典著作《人月神话》(The Mythical Man-Month) 中,将其归功于哈兰·米尔斯 (Harlan Mills)。他提到一个“首席程序员”应该由包括“副驾驶”(copilot) 和多名管理员在内的各种员工提供支持。当然,在那个年代,这个想法是让真人来扮演这些支持角色。 好了,这里有一个显而易见的观点:“AI 现在让这种方法在经济上变得可行了”,没错没错……但是,我 也注意到一个更微妙的东西在起作用,这和“地位等级”有关。 很多“次要”任务都是“苦差事” (grunt work,指繁琐、重复、技术含量不高的体力活或脑力活),并不是工作中最有成就感或最具创造性的部分。我个人非常推崇那种“人人分担苦差事”的团队;我讨厌把所有脏活累活都丢给团队里地位较低的成员。没错,初级成员(junior)通常会干更多的杂活,但他们也应该得到很多有趣的任务来帮助自己成长。 有了 AI,这种顾虑就完全消失了!现在我可以毫无心理负担地把纯粹的苦差事派出去。 而且 AI 7x24 小时随时待命,这一点太重要了。我绝不会在晚上 11 点打电话给一个人类实习生,叫他早上 7 点前准备好一份代码研究报告……但现在,我正指挥我的 AI 智能体这么干! Notion 也是为“外科医生”准备的? 最后,我想聊聊这种工作方式和我的东家 Notion 有什么关系。 首先,作为一名员工,我发现能在这样一个对 AI 编程工具持“牛市”态度 (bullish,金融术语,指非常看好、积极乐观) 的地方工作,价值真的无可估量。公司支持我大量使用 AI 编程工具,而且代码库也为此做好了准备,这让我的生产力猛增——尤其是对于我这样一个刚接触大型代码库的新人来说。 其次,从产品角度来说——某种意义上,我想说我们正试图将这种工作方式带给程序员之外更广泛的知识工作者。当我想象这一切将如何展开时,我很喜欢这个心智模型:让每个人都能“像外科医生一样工作”。 我们的目标不是让你把核心工作外包出去,而是识别并委派那些次要的苦差事,这样你就能专注于真正重要的大事。 如果你喜欢这个视角,也许你会想读读我写的其他几篇关于人机协作本质的文章: - AI 副驾驶够多了!我们需要的是 AI 抬头显示器 (HUD):“任何严肃对待 AI 设计的人,都应该考虑‘副驾驶’之外的其他形态,那些能更直接地扩展人类思维的形态……” - AI 生成的工具能让编程更有趣:“我没有(让 AI 写代码),而是用 AI 构建了一个自定义的调试器界面……这让我自己写代码变得更有趣了……” - 把 ChatGPT 当作灵感缪斯,而非万能神谕:“如果我们不把大语言模型 (LLM) 看作回答问题的工具,而是把它看作向我们提问、激发我们创造力的工具,会怎么样?” 来源: