Logo

site iconTonyBai | 白明

重复
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

TonyBai | 白明 RSS 预览

2026 软件开发新纪元:解读 Anthropic《Agentic Coding 趋势报告》

2026-02-11 12:55:42

本文永久链接 – https://tonybai.com/2026/02/11/2026-software-development-anthropic-agentic-coding-trends-report

大家好,我是Tony Bai。

时间来到 2026 年初。回顾过去的一年,软件工程领域发生的变化比过去十年加起来还要多。

如果说 2024-2025 年是 AI Coding(AI 编程) 的“试水期”,开发者们还在为 Cursor 的 Tab 补全感到兴奋,或者为 Claude 3.5 能够写出一个贪吃蛇游戏而惊叹;那么 2026 年,正如 Anthropic 最新发布的重磅报告《2026 Agentic Coding Trends Report》所言,我们正式进入了 Agentic Coding(智能体编程) 的深水区。

这份报告更像是一份“新时代软件工程的生存指南”。它揭示了一个核心事实:AI 已经从一个被动的“Copilot(副驾驶)”,进化为一个主动的“Collaborator(协作者)”,甚至是一个独立的“Team(团队)”。

在这个新时代,软件开发的瓶颈不再是“写代码”的速度,而是“定义问题”的精度和“编排智能体”的能力。作为开发者,我们必须清醒地认识到:SDLC(软件开发生命周期)正在被重写,而我们的角色也正在被重新定义。

今天,我们将深度解读这份报告中的 8 大趋势,剖析 3 大核心变革,并探讨在 2026 年,作为一名技术人,该如何拿到通往未来的船票。

地壳运动 —— 软件开发生命周期的彻底重构

Anthropic 报告的开篇就用“Tectonic Shift(地壳运动)”来形容正在发生的变化。这绝非夸张。

1. 抽象层级的再次跃迁

在计算机历史上,每一次抽象层级的提升,都带来了生产力的爆发:从机器码到汇编,从汇编到 C,从 C 到高级语言。

而在 2026 年,我们迎来了最新的抽象层:自然语言驱动的智能体编排。

报告指出,“写代码、调试、维护” 这些战术性的工作,正在全面转移给 AI。工程师的精力开始聚焦于架构设计、系统设计和战略决策。

这意味着,未来的“源码”,可能不再是 GitHub 仓库里那一堆 .ts 或 .go 文件,而是“Prompt + Spec(规规说明书) + Agent Configuration(智能体配置)”。

2. 入职(Onboarding)时间的坍塌

这是报告中一个极具冲击力的预测:“新员工入职一个复杂代码库的时间,将从数周缩短为数小时。”

还记得以前入职一家新公司,光是配置环境、阅读文档、理解那堆“屎山代码”的逻辑,就要花掉两周时间吗?

在 Agentic Coding 时代,像 Augment Code 这样的工具(报告案例),利用 Claude 对代码库的深度理解,可以让工程师在几分钟内获得对系统上下文的掌控。 此外,一位 CTO 预估需要 4-8 个月完成的项目,在 Claude Code的加持下,两周内就完成了。这是人力资源配置的革命。企业可以实现“动态激增(Surge)”式的人员调配,工程师可以随时在不同项目间无缝切换,而无需支付高昂的认知切换成本。

3. 工程师的“全栈化”

报告揭示了一个有趣的现象:AI 并没有取代工程师,而是让工程师变得更“全栈”了。

前端工程师开始敢于修改后端数据库,后端工程师也能轻松搞定复杂的 CSS 动画。为什么?因为 AI 填补了那部分“知识鸿沟”。

只要你具备系统思维和验收能力,具体的实现细节(Implementation Details)不再是障碍。这标志着“领域专家(Domain Expert)”与“通用工程师(Generalist)”的边界开始模糊。

能力跃迁 —— 从单体智能到“智能体集群”

如果说第一部分是“软性”的流程变化,那么第二部分则是“硬核”的技术能力升级。Anthropic 报告明确指出,2026 年的 AI 编码将呈现出集群化长时程的特征。

4. 单体 Agent 进化为 Coordinated Teams

2025 年,我们还在试图用一个超级 Agent 解决所有问题。2026 年,这种做法已经被淘汰。

报告预测:“多智能体系统(Multi-agent Systems)将取代单智能体工作流。”

  • 分工与协作:就像人类团队一样,我们需要“产品经理 Agent”拆解需求,“架构师 Agent”设计接口,“编码 Agent”写代码,“测试 Agent”找 Bug。
  • 并行推理:通过在不同的上下文窗口(Context Windows)中并行处理任务,效率实现了指数级增长。
  • 案例:劳动力管理平台 Fountain 使用 Claude 构建了分层的多智能体编排系统,将筛选速度提升了 50%。

5. 从“分钟级”任务到“周级”长跑

早期的 Agent 只能处理“帮我写个函数”这种几分钟的短任务。

但报告指出,Long-running Agents(长时运行智能体) 正在成为主流。

  • 时间跨度:Agent 可以连续工作数天甚至数周。
  • 自我管理:它们能够制定计划、迭代代码、从失败中恢复(Self-healing),并维护一致的状态。
  • 消除技术债:那些以前因为“太麻烦”而被搁置的重构任务、文档补全任务,现在可以丢给一个长时运行的 Agent,让它在后台慢慢跑,直到把 backlog 清空。

Rakuten 的案例令人印象深刻:工程师让 Claude Code 在一个拥有 1250 万行代码的开源库(vLLM)中实现一个复杂的数学算法。Claude 独自工作了 7 个小时,最终交付了准确率为 99.9% 的代码。

这就是“无人值守开发(Unattended Development)”的雏形。

6. 协作悖论:为什么我们还不能“完全放手”?

这部分是报告中最发人深省的洞察。

Anthropic 的社会影响研究团队发现了一个“协作悖论”

尽管工程师在 60% 的工作中使用了 AI,但他们报告称,能够“完全委托(Fully Delegate)”给 AI 的任务只有 0-20%。

这意味着 Human-in-the-loop(人类在环)依然是核心。

AI 不是那种“交给他就不管了”的外包,而是一个需要你持续关注、持续反馈的“实习生”或“副驾驶”。

  • 2026 的关键能力:智能体开始学会“求助(Ask for help)”。与其盲目猜测,不如在不确定时主动询问人类:“这里有两种设计方案,你倾向于哪一种?”
  • 监督的规模化:人类不再逐行审查代码,而是审查关键决策点和高风险边界。

行业冲击 —— 经济学与组织架构的重塑

技术变革必然引发经济变革。报告的第三部分探讨了 Agentic Coding 对商业世界的深远影响。

7. 软件开发的经济学重塑

传统的软件开发成本高昂,导致很多“小需求”或“长尾需求”无法被满足(ROI 算不过来)。

但 AI Agent 的出现,极大地降低了软件生产的边际成本。

  • Papercuts:那些让用户难受但又不值得花工程师时间去修的小 Bug,现在可以被 Agent 批量修复。
  • 产出量(Output Volume):生产力的提升不仅仅是“做得快”,更是“做得多”。企业可以尝试更多的实验,开发更多的定制化工具。
  • 案例:通信巨头 TELUS 的团队创建了 13,000 多个自定义 AI 解决方案,节省了 50 万小时的工作时间。

8. 编程能力的“民主化”与“下沉”

这是我认为最激动人心的趋势:Agentic Coding Expands to New Surfaces and Users.

  • 语言障碍消失:COBOL、Fortran 这些“古董语言”的维护不再是难题。AI 是最好的翻译官。
  • 非技术人员入场:销售、市场、法务团队,开始使用 Agent 构建自己的自动化工具。
  • 案例:法律科技平台 Legora 让不懂代码的律师也能利用 Claude Code 构建复杂的自动化工作流;Zapier 内部实现了 89% 的 AI 采用率,设计团队直接用 Claude Artifacts 进行原型开发。

“人人都是程序员” 的口号喊了很多年,但在 2026 年,依靠 Agent,这终于变成了现实。

9. 安全的双刃剑

当然,硬币总有两面。报告特别提到了 Dual-use Risk(双重用途风险)。

  • 防御侧:Agent 可以自动进行代码审计、漏洞扫描、安全加固。
  • 攻击侧:攻击者也可以利用 Agent 批量生成攻击脚本、寻找零日漏洞。

这要求我们在设计 Agentic System 时,必须将安全性(Security-first Architecture) 植入到基因中。

2026 年的行动指南 —— 优先事项

面对这些汹涌而来的趋势,作为技术决策者或一线开发者,我们在 2026 年应该做什么? Anthropic 给出了 4 个明确的优先事项:

  1. 掌握多智能体协作 (Master Multi-agent Coordination):不要再沉迷于优化单个 Prompt。去学习如何使用 Gas TownClaude Code 的 Agent Team 模式。学会如何让多个 Agent 像一支军队一样协同作战。这是解决复杂问题的唯一路径。

  2. 扩展人类的监督能力 (Scale Human Oversight):构建自动化审查系统。当 AI 一天生成 1 万行代码时,靠人眼看是看不过来的。你需要构建基于 AI 的 Reviewer,以及基于严格测试(Test-Driven)的验收流水线。

  3. 赋能领域专家 (Empower Domain Experts):不要把 AI 编程工具锁在技术部门。把它们分发给产品经理、法务、运营。让他们自己去构建解决问题的工具。

  4. 内嵌安全架构 (Embed Security Architecture):从第一天起,就要考虑 Agent 的权限边界。不要给 Agent 无限制的 sudo 权限。构建沙箱(Sandbox)鉴权机制

小结:拥抱“不确定性”的艺术

读完这份报告,我最大的感受是:软件工程正在从一门“精确的科学”,变成一门“管理的艺术”。

在 Software 1.0 时代,我们追求的是确定性,每一行代码的执行逻辑都是可预测的。

在 Agentic Coding 时代,我们管理的是概率,是模糊性,是一群有一定自主权但偶尔会犯错的数字员工。

这并没有让软件工程变简单,反而变得更难、更深刻了。

我们不再是代码的作者(Author),我们是代码的编辑(Editor)、导演(Director)和架构师(Architect)。

2026 年,对于那些愿意拥抱变化、主动升级认知模型的开发者来说,将是最好的时代。限制你产出的,不再是手速,而是你的想象力和领导力。

资料链接:https://resources.anthropic.com/hubfs/2026%20Agentic%20Coding%20Trends%20Report.pdf


你感到的是“解放”还是“威胁”?

Anthropic 预测 2026 年新员工入职代码库的时间将坍塌为几小时。在你目前的团队中,是否已经感受到了 AI 带来的这种“入职加速”?如果有一天你主要的工作变成了“编排 Agent 集群”,你觉得最大的挑战是什么?

欢迎在评论区分享你的 2026 职业预判!


如何落地 Anthropic 的预测?

趋势看懂了,但怎么落地?

  • 如何构建一个多智能体协作的代码重构流水线?
  • 如何实现长时程 Agent 的状态管理和断点续传?
  • 如何让非技术人员也能安全地使用 Coding Agent?

Anthropic 的报告指明了方向,而我的专栏负责提供地图和车辆

在我的极客时间专栏AI 原生开发工作流实战中,我们将深度对齐这份报告中的前沿技术:

  • 实战 Agent Team:复刻 Claude Code 的多智能体协作模式。
  • 安全与治理:学习如何为 Agent 构建安全护栏。
  • 构建自动化工厂的初步方案:打造基于 Spec 驱动的“无人值守”开发流。

不要做旧时代的守墓人,做新时代的领航者。扫描下方二维码,开启你的 Agentic Coding 之旅。


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

© 2026, bigwhite. 版权所有.

Go 1.26 发布在即,为何 json/v2 依然“难产”?七大技术路障全解析

2026-02-11 08:29:28

本文永久链接 – https://tonybai.com/2026/02/11/go-1-26-json-v2-delay-7-technical-roadblocks

大家好,我是Tony Bai。

Go 1.26 预计将于本月(2026 年 2 月)正式发布。然而,在即将到来的 release notes 的欢呼声中,有一个备受瞩目的名字依然带着“实验性”的标签躲在 GOEXPERIMENT 背后——那就是 encoding/json/v2

作为 Go 生态中最核心的基础设施之一,JSON 库的每一次呼吸都牵动着数百万开发者的神经。从 v1 到 v2,不仅仅是性能的提升,更是一场关于API 设计哲学、向后兼容性与极致性能的艰难博弈。

很多人以为 v2 的延迟是因为“官方动作慢”或“设计理念之争”。但当我们深入 json/v2 工作组的看板,剥开表层的讨论,会发现横亘在稳定版之前的,是七个具体而微、却又关乎全局的技术“钉子”。这些问题并非宏大的路线图分歧,而是关乎浮点数精度、错误处理语义、API 封装性等实打实的工程细节。

本文将基于最新的 GitHub Issues 讨论(截至 2026 年 2 月),带你通过显微镜审视这七大阻塞问题,一窥 Go 标准库演进背后的严谨与妥协。

七大阻塞问题(Blockers)一览

深度解析:魔鬼藏在细节中

1. API 设计的“丑陋妥协”:jsontext.Internal (#73435)

在当前的 encoding/json/jsontext 包中,竟然存在一个导出的 Internal 类型。这在 Go 标准库的审美中,简直是“房间里的大象”。

jsontext 是 v2 引入的底层包,专注于 JSON 的语法解析(Tokenizing),而上层的 json 包负责语义绑定(Binding)。为了让上层包能够访问底层的缓冲区或状态机,当前的实现不得不导出一个 Internal 符号。

这违背了 Go 标准库的黄金法则之一:公共 API 必须是为用户设计的,而不是为实现者自己设计的。

Joe Tsai (dsnet) 提出了一种解决方案:将 jsontext 的核心逻辑移入 encoding/json/internal/jsontext,然后通过类型别名(Type Alias)在公共包中暴露 API。然而,这带来了一个新的难题:godoc 对类型别名的支持并不友好,生成的文档可能会让用户感到困惑,因为方法都挂载在内部类型上。

这个问题已经上升为工具链生态问题。如果这个问题不解决,v2 发布后将面临两个风险:要么用户依赖了这个“临时” API 导致未来无法修改,要么标准库留下了一个永久的“伤疤”。

2. 致命的递归:当 Unmarshaler 遇到指针 (#75361)

这是一个真实且诡异的 Bug。一位开发者在迁移旧代码时发现,以下模式在 v1 中正常工作,但在开启 GOEXPERIMENT=jsonv2 后会导致栈溢出(Stack Overflow):

type MyType string

// 自定义 Unmarshal 方法
func (m *MyType) UnmarshalJSON(b []byte) error {
    // 试图通过定义一个新类型来“剥离”当前类型的方法,以回退到默认行为
    type MyTypeNoMethods *MyType
    var derived MyTypeNoMethods = MyTypeNoMethods(m)

    // v2 在这里会错误地再次识别出 derived 拥有 UnmarshalJSON 方法
    // 从而导致无限递归调用自己
    return json.Unmarshal(b, derived)
}

在 v1 中,开发者习惯通过类型转换来“剥离”自定义方法。但在 v2 中,为了修复 v1 中某些指针方法无法被调用的 Bug(如 #22967),引入了更激进的方法集查找逻辑

v2 的逻辑是:只要这个值的地址(Addressable)能找到 UnmarshalJSON 方法,就调用它。在上面的例子中,derived 虽然是新类型,但它底层的指针指向的还是 MyType,v2 过于“聪明”地认为应该调用 (MyType).UnmarshalJSON,结果造成了死循环。

这是一个典型的“修复了一个 Bug,却引入了另一个 Bug”的案例。Go 团队目前倾向于保留 v2 的正确逻辑(即更一致的方法调用),但也必须为这种遗留代码提供一种检测机制。目前的计划是引入运行时检测或 go vet 检查,明确告知用户:请使用 type MyTypeNoMethods MyType(非指针别名)来剥离方法,而不是使用指针别名。

3. 浮点数的“薛定谔精度”:float32 (#76430)

下面是展示该问题的一段示例代码:

var f float32 = 3.1415927 // math.Pi 的 float32 近似值
json.Marshal(f)

输出应该是 3.1415927(保持 float32 精度),还是 3.1415927410125732(提升到 float64 精度以确保无损)?

Go v1 的 json 包为了兼容性,倾向于将所有浮点数视为 float64 处理。这导致 float32 在序列化时经常会出现“精度噪音”——那些用户并不想要的、只有在 float64 精度下才有意义的尾数。

然而,v2 的 jsontext 包默认使用 64 位精度。这导致了 json.Marshal(上层)和 jsontext.Encoder(底层)在行为上的不一致。

  • 用户期望:float32 就该像 float32,短小精悍。
  • 技术现实:JSON 标准(RFC 8259)并没有区分浮点精度。
  • 性能视角:处理 32 位浮点数理论上更快,但需要专门的算法路径。

Go 团队正在考虑引入 Float32 构造器和访问器到 jsontext 包中,并修改底层的 AppendFloat 逻辑,以支持显式的 32 位浮点数格式化。这不仅是为了“好看”,更是为了数值正确性——避免“双重舍入”(Double Rounding)带来的微小误差。

4. 选项系统的“任督二脉”:透传难题 (#76440)

你调用 json.Marshal(v, json.WithIndent(” “)) 很爽,但如果你想控制底层的 jsontext 行为(比如“允许非法 UTF-8”或“允许重复键名”),你发现:顶层函数把路堵死了。目前的 MarshalEncode 只接受 json.Option,不接受 jsontext.Option。

v2 将 json(语义层)和 jsontext(语法层)拆分是架构的一大进步。但这也带来了配置穿透的问题。

如果为了保持 API 纯洁,强迫用户必须先创建一个 jsontext.Encoder 并在那里配置选项,再传给 json.MarshalEncode,那么 99% 的简单用例都会变得无比繁琐。

Go团队给出的提案是打破层级隔离,允许 json.Marshal 等顶层函数直接接受 jsontext.Option。这是一个实用主义战胜洁癖的胜利。

5. 功能做减法:unknown 标签的存废 (#77271)

v2 曾引入了一个 unknown 结构体标签,用于指示某个字段专门用来捕获所有未知的 JSON 字段。同时,还有一个 DiscardUnknownMembers 选项用于丢弃未知字段。

dsnet(Joe Tsai)发起提案,建议删除两个功能。理由如下:

  1. 功能重叠:v2 已经引入了 inline 标签,它与 unknown 的行为非常相似,仅仅是语义上的微小差别(是否包含“已知”字段)。这种微小的差别会让用户感到困惑。
  2. API 极简主义:如果用户真的需要处理未知字段,可以通过自定义 Unmarshaler 来实现,或者利用 inline 标签配合后期处理。
  3. 向后兼容的智慧:添加功能永远比删除功能容易。现在删除,未来如果真有需求还可以加回来;但如果现在保留,未来想删就难了。

6. 控制流的缺失:SkipFunc (#74324)

json.SkipFunc 是 v2 引入的一个 Sentinel Error,用于告诉编码器“跳过当前字段/值”。目前它只能在 MarshalToFunc(用户自定义函数)中使用。但如果我在类型的方法 MarshalJSONTo 中想跳过自己怎么办?目前是不支持的。

这是一个典型的“二等公民”问题。用户自定义的函数拥有比类型方法更高的权限。这导致在迁移旧代码时,如果要实现“条件性跳过”,必须写出非常丑陋的 hack 代码(比如定义一个空结构体来占位)。

允许 MarshalJSONTo 返回 SkipFunc 看似简单,但它要求调用者必须处理这个错误。这意味着不能直接调用 v.MarshalJSONTo,而必须通过 json.Marshal 来调用,否则你会收到一个未处理的错误。这需要文档和工具链的配合。

7. 文档真空:新接口的最佳实践 (#76712)

v2 引入了 MarshalerTo 和 UnmarshalerFrom 两个高性能接口,它们直接操作 jsontext.Encoder/Decoder,避免了内存分配。但是,到底该什么时候用它们?

目前缺乏明确的文档指导。如果用户在任何时候都直接调用 v.MarshalJSONTo(enc),可能会绕过 json.Marshal 中处理的许多全局选项(如大小写敏感、省略零值等)。

Go 团队计划在文档中明确:这属于“高级 API”,普通用户应始终使用 json.Marshal,除非你在编写极其底层的库。

路线图:我们何时能用上“真v2”?

根据最新的工作组纪要和 Issue 状态,我们可以画出一条清晰的时间线:

  • 当前 (Go 1.26, 2026.02):GOEXPERIMENT=jsonv2 继续存在。v2 代码库已进入主仓库,但 API 仍未冻结。此时适合库作者进行集成测试,但不建议在生产环境核心业务中大规模铺开。
  • 决战期 (2026 H1):必须彻底解决上述 7 个 Blocker。特别是 API 签名相关的修改(如 float32 支持和 SkipFunc),一旦定型就是 10 年承诺。
  • 目标 (Go 1.27, 2026.08):如果一切顺利,我们有望在今年 8 月发布的 Go 1.27 中,看到移除实验标签、正式可用的 encoding/json/v2。这意味着 Go 语言将迎来其历史上最大规模的标准库升级之一。

小结:给 Gopher 的建议

  1. 别急着重构:现有的 encoding/json (v1) 依然稳健。除非你有极端的性能需求(v2 性能提升显著)或需要 v2 独有的某些特性,否则请按兵不动。
  2. 关注 jsontext:即使不用 v2 的序列化,新独立的 jsontext 包也是一个处理 JSON Token 流的神器,非常适合写高性能的底层解析工具。它的 API 设计比 v1 的 Scanner 更加现代化和高效。
  3. 参与反馈:现在是影响 Go 未来 10 年 JSON 处理方式的最后窗口期。如果你对上述 Issue 有独到见解,去 GitHub 上发声吧!

Go 团队的“慢”,是对生态的“敬”。这七个拦路虎,每一个都是为了让未来的十年里,我们能写出更少 Bug、更快速度的 Go 代码。好事多磨,让我们静候佳音。

参考资料

  • json/v2 工作组的看板 – https://github.com/orgs/golang/projects/50
  • encoding/json/v2: working group meeting minutes – https://github.com/golang/go/issues/76406

你更在意什么?

Go 团队为了 API 的洁癖和严谨,宁愿让 json/v2 多飞一会儿。在你的开发实践中,你更倾向于“尽快用上新特性”,还是“哪怕慢一点也要保证接口设计的绝对完美”?你对 float32 的精度噪音有切肤之痛吗?

欢迎在评论区分享你的看法,我们一起坐等 Go 1.26 官宣!


还在为“复制粘贴喂AI”而烦恼?我的新专栏 AI原生开发工作流实战 将带你:

  • 告别低效,重塑开发范式
  • 驾驭AI Agent(Claude Code),实现工作流自动化
  • 从“AI使用者”进化为规范驱动开发的“工作流指挥家”

扫描下方二维码,开启你的AI原生开发之旅。


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

© 2026, bigwhite. 版权所有.

输入需求,输出系统:AI Agent 正在实现软件工程的“终极梦想” —— 软件工厂!

2026-02-10 12:11:49

本文永久链接 – https://tonybai.com/2026/02/10/ai-agent-realizes-ultimate-dream-software-factory

大家好,我是Tony Bai。

在计算机科学与软件工程的历史长河中,始终存在着一个令人魂牵梦绕、却又屡屡受挫的终极梦想——“软件工厂(Software Factory)”

早在 20 世纪 60 年代,日本的大型科技企业(如日立、东芝)就开始尝试引入制造业的流水线理念来生产软件。80 年代,CASE(计算机辅助软件工程)工具试图实现全流程自动化;21 世纪初,MDA(模型驱动架构)试图通过 UML 图直接生成代码。

然而,这些尝试无一例外都未能成为主流。

为什么?因为软件开发与硬件制造有着本质的不同。硬件是标准化的,而软件需求充满了不确定性(Ambiguity)、非标准化(Non-standard)和创造性(Creativity)。传统的刚性流水线无法处理这种“软”的复杂性。

但这一次,不一样。

随着以 GPT-5.2、Claude 4.5、Gemini Pro 3.0 等为代表的大语言模型(LLM)能力的爆发,以Claude Code、Gemini Cli等编码智能体的快速演进,以及Agentic Workflow(智能体工作流)的成熟,我们第一次拥有了能够理解“非标需求”并将其转化为“标准代码”的通用推理引擎。

特斯拉前 AI 总监 Andrej Karpathy 将这一刻定义为 Software 3.0 的黎明。在这个新时代,那个尘封已久的“软件工厂”蓝图,正在从幻想变成触手可及的现实。

今天,我们就来深度剖析这座正在崛起的 AI 软件工厂,看看它将如何重塑我们的行业、生态与职业。

Software 3.0:从“写代码”到“定义目标”

要理解软件工厂的本质,我们需要先理解 Karpathy 提出的软件演进三阶段论。这是一次技术的迭代,更是编程范式的根本性迁移。

Software 1.0:显式编程 (Code)

这是我们最熟悉的时代。程序员使用 Go、Python、C++、Java、TypeScript 等语言,编写显式的逻辑规则。

  • 特征: 人类必须清楚地知道每一步该怎么做(How),然后翻译给机器。
  • 局限: 复杂度随着代码行数线性(甚至指数)增长,维护成本极高。这是典型的“手工作坊”模式。

Software 2.0:数据驱动 (Weights)

深度学习的兴起带来了 2.0 时代。程序员不再编写规则,而是编写目标(损失函数)和准备数据,由优化器(Optimizer)在神经网络的权重空间中搜索出最优解。这是一个黑盒。虽然它能解决图像识别等 1.0 很难解决的问题,但它缺乏逻辑的可解释性。

Software 3.0:自然语言编程 (Prompts)

现在,我们进入了 3.0 时代。LLM 成为了一个新的、通用的可编程实体。

  • 特征: 编程语言变成了英语(或任何自然语言)。我们不再需要告诉机器“怎么做(How)”,只需要告诉它“做什么(What)”和“想要什么结果(Goal)”。
  • 质变: Prompt 成了新的源代码。而能够理解 Prompt 并执行任务的 AI Agent,成了新时代的工人。

正是 Software 3.0 的出现,让“输入模糊需求,输出精确系统”成为了可能。

全景图:解构一座柔性的“AI 软件工厂”

想象一下,未来的软件交付不再是一个团队几周的冲刺,而是一个工厂几分钟的运转。这座工厂不再由传送带和机械臂组成,而是由运行在云端的 Agent Swarm(智能体集群)构成。

这是一座柔性制造的超级工厂,其运作流程如下:

输入端:非结构化的意图

你不需要编写代码,甚至不需要编写格式严格的 PRD 文档。

工厂的原材料可以是极其粗糙的:

  • 一段 30 分钟的产品会议录音。
  • 一张在白板上画的草图照片。
  • 或者仅仅是一句模糊的想法:“帮我做一个给宠物猫记账的小程序,要能识别猫粮的发票,还要有月度支出的数据看板。”

生产车间:智能体协作网络

需求进入工厂后,会被一个Orchestrator(编排器)接管,并分发给不同的“职能车间”。这些车间由专精不同领域的 Agent 组成:

  • 设计车间 (Architect Agent):
    它首先分析需求,进行系统拆解。它会输出:

    • API Spec: 定义前后端交互的接口(如 OpenAPI/Swagger)。
    • Database Schema: 设计数据库表结构(如 SQL DDL)。
    • Tech Stack: 根据需求量级选择技术栈(是选 Next.js 还是纯 HTML?)。
  • 制造车间 (Coder Agent):
    这是工厂的主力军。它会裂变出多个子 Agent 并行工作:

    • Frontend Agent: 根据设计稿生成 React 组件。
    • Backend Agent: 编写 API 逻辑和数据库访问层。
    • SQL Agent: 编写复杂的查询语句。
      它们通过 GitHub 或共享文件系统进行协作,像真实团队一样提交 Pull Request。
  • 质检车间 (QA Agent):
    这是保证“良品率”的关键。QA Agent 不会等到代码写完才介入,而是采用 TDD(测试驱动开发)模式。

    • 它会先根据 Spec 生成测试用例(Test Cases)。
    • 然后对 Coder Agent 提交的代码进行“红绿循环 (Red-Green Loop)”测试。
    • 如果发现 Bug,它不会只是报错,而是将错误日志作为“反馈信号”退回给制造车间,要求重做。
  • 装配车间 (DevOps Agent):
    代码通过测试后,DevOps Agent 上场。它编写 Terraform 或 Dockerfile,调用 AWS/Aliyun/Cloudflare的 API,自动配置云端环境,进行部署。

输出端:即时可用的服务

工厂的传送带末端,输出的不是一堆冷冰冰的代码文件,而是一个可访问的 URL,一个已经配置好的 Admin 后台,以及一套完善的系统监控仪表盘。

这就是 Software 3.0 的终极形态:Prompt in, System out.

核心变革:柔性制造与动态编排

为什么我们要强调这是“柔性”工厂?因为它解决的是传统 CI/CD 流水线最大的痛点——刚性。

传统的流水线是线性的(Build -> Test -> Deploy)。一旦 Test 挂了,流水线就停了,红灯亮起,必须等待人类工程师介入修 Bug。

但 AI 软件工厂是有生命、会呼吸的。

它是基于 Agentic Workflow 的动态有向无环图(DAG),甚至是包含循环的图。

  • 自愈 (Self-Healing):当 QA Agent 发现 Bug 时,系统不会停机。它会触发一个“修复循环”。Coder Agent 会分析 QA 给出的错误日志,结合源代码进行推理,修改代码,再次提交。这个过程可能在几秒钟内迭代数十次,直到测试通过。
  • 动态扩容 (Dynamic Scaling):如果 Architect Agent 发现需求特别复杂(比如涉及 50 个页面),它会自动指挥工厂“招人”——即启动更多的 Coder Agent 实例并行开发,最后再进行合并。

这是一条会思考的流水线。它不仅生产代码,还生产基础设施(IaC)。它与云厂商深度集成,实现了真正的 Serverless——作为用户,你连 Server 都不用感知,你只感知 Service。

行业震荡:生态与角色的重构

当这种“输入需求,输出系统”的工厂模式普及后,软件行业的格局将发生天翻地覆的变化。

软件工程:从“人际协作”到“机机协议”

传统的软件工程理论(Agile, Scrum, 看板)很大程度上是为了解决“人与人协作”中的摩擦——信息不对称、理解偏差、情绪波动。

但在 AI 工厂里,协作变成了 A2A (Agent-to-Agent) 的协议交互。

  • Agent 不会开小差。
  • Agent 不会误解符合 Spec 的接口定义。
  • Agent 不需要每日站会同步进度。

未来的软件工程,将从管理“人”,转向管理“协议”和“标准”。协作的重心将聚焦于“人与工厂”的交互——即如何更精准、更高效地向工厂下达指令(Prompt Engineering / Spec Writing)。

软件生态:开源项目的“模具化”

在 Software 1.0 时代,开源项目(如 React, Spring, Django)是给人用的库(Library)。我们需要学习它的文档,理解它的 API。

在 Software 3.0 时代,开源项目将变成工厂的“模具”。

我们可能不再直接引用库,而是告诉工厂:“用 React 的模具生产前端”。源代码(Source Code)本身可能会变成像汇编语言一样的中间产物/表示——只有 AI 读写它们,而人类只会面向Spec。

Software is ephemeral. Spec is eternal.(软件是瞬态的,规格是永恒的。)

从业者:从“码农”到“厂长”

这是最残酷但也最充满机遇的转变。软件公司的人才结构将呈现极端的两极分化:

  • 订货人 (Product Owner / PM):
    负责定义“我要什么”。在工厂时代,生产成本趋近于零,“决策”的成本变得极高。你需要极强的业务洞察力、审美能力和用户同理心。因为工厂生产得太快了,如果你不知道什么是好的,你生产出来的就是一堆垃圾。
  • 厂长 (Platform Engineer / Architect):
    负责维护工厂本身。你需要设计 Agent 之间的协作 SOP,优化工厂的“良品率”,集成最新的模型能力,确保工厂不会生产出有安全漏洞的产品。
  • 消失的角色:
    纯粹的、重复性的“代码搬运工”和初级 CRUD 工程师。他们的工作将完全被 Coder Agent 取代。

小结:工业革命的前夜

我们正处于软件行业“手工作坊”向“机器大工业”过渡的前夜,就像 1760 年代瓦特改良蒸汽机的前夜。

AI 软件工厂 不是科幻小说,它正在此时此刻发生。

Claude Code的Agent Team、针对编码智能体编排的Gas Town等,很可能都是这座工厂雏形的组件。

Karpathy 说的 “The hottest new programming language is English” 并不是一句玩笑。它意味着编程的门槛被无限降低,但构建系统的门槛被无限拔高。

无论你是想做“订货人”还是“厂长”,现在开始学习驾驭 AI Agent,学习如何构建和管理这些“数字员工”,是你拿到新时代船票的唯一方式。


你的“厂长”初体验

“软件工厂”的时代正在加速到来,我们每个人都将面临从“码农”到“订货人”或“厂长”的转型。想象一下,如果你现在拥有一座 24 小时不停工的“AI 软件工厂”,你最想让它为你生产一个什么样的系统?你认为在“机机协作”的未来,人类程序员最后的护城河在哪里?

欢迎在评论区分享你的脑洞与思考!让我们一起在这场软件工业革命的前夜寻找坐标。

如果这篇文章为你揭示了软件工程的未来,别忘了点个【赞】和【在看】,并转发给你的架构师朋友,大家一起未雨绸缪!


亲手搭建你的“微型工厂”

虽然完全自动化的“软件工厂”还在建设中,但其中的核心技术——Agent 编排、Spec 驱动开发——已经触手可及。

在我的极客时间专栏《AI 原生开发工作流实战》中,我将带你从零开始,利用 Claude Code,构建一个微型的 AI 软件流水线。

  • 如何让 Coder Agent 和 QA Agent 左右互搏,实现代码自愈?
  • 如何用 Spec 文档指挥整个生产流程?
  • 如何构建一个能自我修复 Bug 的智能体闭环?

扫描下方二维码,开启你的 AI 架构师之旅。


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

© 2026, bigwhite. 版权所有.

告别 Flaky Tests:Go 官方拟引入 testing/nettest,重塑内存网络测试标准

2026-02-10 08:43:33

本文永久链接 – https://tonybai.com/2026/02/10/goodbye-flaky-tests-go-testing-nettest-proposal

大家好,我是Tony Bai。

在 Go 语言的测试哲学中,我们一直追求快速、稳定和可重复。然而,一旦测试涉及到 net 包——无论是 HTTP 服务、RPC 框架还是自定义协议——这种追求往往就会撞上现实的墙壁。

我们通常面临两种选择:要么在 localhost 上监听真实端口,但这会导致测试并发时的端口冲突、防火墙干扰以及操作系统层面的不确定性;要么使用 net.Pipe,但它那“同步、无缓冲”的特性与真实的 TCP 连接大相径庭,常常导致生产环境运行良好的代码在测试中死锁。

为了彻底解决这一“最后一公里”的测试难题,Go 团队的 Damien Neil 提议引入 testing/nettest。这是一个完全在内存中运行,但行为上高度仿真真实网络栈(支持缓冲、异步、错误注入)的实现。

本文将和你一起剖析该提案的背景、设计细节以及它将如何改变我们编写网络测试的方式。

为什么我们需要 testing/nettest?

要理解 nettest 的价值,我们首先需要审视现状。目前的 Go 标准库在网络测试辅助方面,存在显著的“中间地带真空”。

net.Pipe 的致命缺陷

net.Pipe() 是目前标准库提供的唯一内存网络模拟工具。但它本质上是一个同步内存管道

  • 同步阻塞:写入端必须等待读取端准备好,数据才能传输。没有内部缓冲区。
  • 死锁陷阱:真实的 TCP 连接是有内核缓冲区的。应用代码往往假设“由于有缓冲,我可以先写一点数据,然后再去读”。这种假设在 net.Pipe 上会直接导致死锁——写操作阻塞在等待读,而读操作还没开始。
  • 行为失真:它无法模拟网络延迟,也无法模拟缓冲区满时的阻塞行为。

localhost 的不可靠性

使用回环地址(Loopback)是另一种常见做法,但它带来了“外部依赖”:

  • 端口资源:并行运行成千上万个测试时,临时端口可能耗尽。
  • 环境干扰:CI 环境可能有奇怪的防火墙规则或网络配置。
  • 速度瓶颈:尽管是回环,依然涉及系统调用和内核协议栈的开销,比纯内存操作慢得多。

synctest 的拼图

Go 1.24 引入了实验性的 testing/synctest 包,旨在通过虚拟时钟解决并发测试中的时间依赖问题。然而,synctest 难以接管真实的系统网络调用。为了让 synctest 发挥最大威力,Go 需要一个完全由用户态代码控制、不依赖操作系统内核的网络实现。nettest 正是这块关键的拼图。

nettest 核心设计:全功能内存网络栈

testing/nettest 的目标非常明确:提供 net.Listener、net.Conn 和 net.PacketConn 的内存实现,使其行为尽可能接近真实的 TCP/UDP,同时暴露极强的控制力。

异步与缓冲:还原真实的 TCP 行为

这是 nettest 与 net.Pipe 最大的区别。nettest.Conn 内置了缓冲区。

  • 写操作:写入数据到内部缓冲区后立即返回,无需等待对端读取。
  • 读操作:从缓冲区读取数据。
  • 缓冲区控制:提案引入了 SetReadBufferSize(size int) 方法。你可以将缓冲区设置为 0(模拟 net.Pipe),也可以设置为 4KB 或无限大。这使得开发者可以精确测试“网络拥塞”导致写入阻塞的边缘情况。
// 创建一对连接
client, server := nettest.NewConnPair()

// 模拟一个拥塞的连接,缓冲区仅为 1 字节
server.SetReadBufferSize(1)

// 此时写入大量数据,client.Write 将会阻塞,直到 server 端读取
go func() {
    client.Write([]byte("hello world"))
}()

地址模拟与配置钩子

在真实网络中,我们可以通过 IP 地址来区分连接来源。nettest 通过 netip.AddrPort 模拟了这一点。

更妙的是 Listener.NewConnConfig 方法,它允许我们在 Server Accept 之前,对“即将到来”的连接进行修改。

实战场景:测试 IP 白名单中间件

以往测试 IP 白名单,你可能需要复杂的 Mock 或者真的去配置网卡。现在:

l := nettest.NewListener()
defer l.Close()

// 模拟一个来自特定 IP 的恶意连接
go func() {
    conn := l.NewConnConfig(func(c *nettest.Conn) {
        // 伪造源 IP
        c.SetLocalAddr(netip.MustParseAddrPort("192.168.1.100:12345"))
    })
    conn.Close()
}()

conn, _ := l.Accept()
// 在这里断言你的中间件是否正确拒绝了该 IP

故障注入:测试“那 1% 的异常”

网络编程中最难测试的不是“连通”,而是“断连”、“超时”和“读写错误”。nettest 将错误注入标准化了。

它提供了一系列 Set*Error 方法:

  • SetReadError(err)
  • SetWriteError(err)
  • SetAcceptError(err)
  • SetCloseError(err)

你可以通过 SetReadError 模拟连接在中途突然 Reset,验证你的客户端是否会按预期进行重试。这些注入的错误会被自动包装在 *net.OpError 中,以保持与真实网络行为的一致性。

状态内省 (Introspection)

我们在测试中经常需要断言“连接是否已关闭”或者“是否有数据可读”。在标准 net 包中,这通常需要发起一个阻塞的 Read 调用,如果超时则认为无数据。这种基于时间的断言是 Flaky Test 的温床。

nettest 提供了非阻塞的状态查询方法:

  • CanRead() bool:缓冲区里有数据吗?或者连接关闭了吗?
  • CanAccept() bool:Accept 队列里有连接吗?
  • IsClosed() bool:连接彻底关闭了吗?

配合 synctest,这将允许我们编写出逻辑极其严密、不依赖 time.Sleep 的确定性测试。

UDP 也能 Mock:PacketNet

除了面向流(Stream)的 TCP 模拟,提案还照顾到了面向报文(Packet)的 UDP。

由于 UDP 没有“连接”的概念,不能像 TCP 那样简单返回一对 Conn。nettest 引入了 PacketNet 的概念,它就像一个微型的内存交换机。

// 创建一个虚拟的 UDP 网络环境
pn := nettest.NewPacketNet()

// 在这个网络中创建两个端点
c1, _ := pn.NewConn(addr1)
c2, _ := pn.NewConn(addr2)

// c1 发送给 c2
c1.WriteTo([]byte("ping"), addr2)

// c2 收到数据
buf := make([]byte, 1024)
n, src, _ := c2.ReadFrom(buf)

这使得测试基于 UDP 的自定义协议(如 QUIC 的某些握手流程、或是自定义的游戏协议)变得轻而易举,且完全隔离于宿主机网络。

边界与权衡:它不是万能的

在提案的讨论中,Damien Neil 非常清晰地界定了 nettest 的边界。理解它“不做”什么,和理解它“做”什么同样重要。

  1. 不模拟特定的系统错误码:你无法通过 nettest 测试你的程序是否正确处理了 Linux 特有的 ECONNREFUSED 或 Windows 特有的错误码。因为跨平台模拟这些行为极其复杂且容易出错。
  2. 不模拟网络延迟和抖动:nettest 的数据传输是瞬间完成的。如果你需要测试 TCP 拥塞控制算法或超时重传的具体时间点,你可能仍需要更复杂的模拟器或真实网络。
  3. 不支持 Unix Domain Socket (目前):虽然社区有呼声(如 crypto/ssh 测试需要),但目前的提案聚焦于 TCP/UDP 风格的 API。不过,设计上并未把路堵死,未来可以扩展。

社区反响与未来展望

该提案一经发布,立即引起了 Go 社区资深开发者的强烈共鸣。

  • Crypto 团队的期待:前Go 安全负责人 FiloSottile 表示,构建用于测试 crypto/tls 和 ssh 的跨平台连接对一直是一个巨大的痛点,nettest 将极大地简化标准库自身的测试代码。
  • HTTP 测试的革新:Issue #14200 曾讨论过让 httptest.Server 支持内存网络以加速测试。nettest 的出现,使得 httptest.NewUnstartedServer 未来可能支持传入一个内存 Listener,从而让 HTTP 测试飞起来。

下一步是什么?

考虑到 API 表面积较大,Go 团队计划遵循“实验先行”的原则。nettest 将首先在 golang.org/x/exp/testing/nettest 中落地。这意味着我们很快就能在项目中引入并尝鲜了。待经过充分的社区验证和 API 打磨后,它最终将进入标准库,成为 testing 包下的一员猛将。

小结

testing/nettest 的提案,看似只是增加了一个测试工具,实则反映了 Go 团队在工程效能上的深层思考。它试图消除测试中的“不确定性”,让网络测试回归逻辑的本质,而不是与操作系统和网络协议栈的噪声做斗争。

对于我们每一位 Gopher 而言,这意味着未来的测试代码将更少依赖 time.Sleep,更少处理端口冲突,运行速度更快,且更加稳定。让我们拭目以待,并准备好在 x/exp 发布的第一时间去拥抱它。

资料链接:https://github.com/golang/go/issues/77362


聊聊你的测试难题

网络测试中的“随机失败”曾让你抓狂吗?你是否也曾为了避开 net.Pipe 的坑而被迫在测试里撒满 time.Sleep?对于即将到来的 nettest,你最期待它的哪个功能?

欢迎在评论区分享你的测试心得或吐槽!让我们一起期待测试变得更简单、更稳健。


还在为“复制粘贴喂AI”而烦恼?我的新专栏 AI原生开发工作流实战 将带你:

  • 告别低效,重塑开发范式
  • 驾驭AI Agent(Claude Code),实现工作流自动化
  • 从“AI使用者”进化为规范驱动开发的“工作流指挥家”

扫描下方二维码,开启你的AI原生开发之旅。


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

© 2026, bigwhite. 版权所有.

AMP 宣布砍掉 VS Code 插件:为什么说“人机结对编程”已死?

2026-02-09 08:25:53

本文永久链接 – https://tonybai.com/2026/02/09/amp-kills-vscode-plugin-human-ai-pair-programming-is-dead

大家好,我是Tony Bai。

如果一家 AI 编程工具公司,宣布砍掉它最受欢迎、用户量最大的产品入口,你会怎么想?

这听起来像是商业自杀,但这正是 AMP(从 Sourcegraph 孵化出来的 AI 编程 Agent)刚刚做出的决定。

2026 年 2 月的一期播客中,AMP 的创始人 Thorsten 和 Quinn 宣布:将在 60 天后,彻底关停 AMP 的 VS Code 插件和 Cursor 扩展。

要知道,在过去的两年里(2024-2025),IDE 侧边栏(Sidebar)几乎定义了 AI 编程的标准形态。无论是 GitHub Copilot、Cursor 还是早期的 AMP,我们都习惯了在编辑器里写代码,在侧边栏里和 AI “乒乓球”式地对话。

但 AMP 团队认为:这个时代结束了。

“你看着代码,AI 在侧边栏看着你,你们一来一回地对话……这种模式不是未来。对于那 1% 想要活在未来的开发者来说,侧边栏不仅不是助力,反而是枷锁。”

为什么他们敢于“烧掉桥梁”?因为一种全新的开发范式——“AI软件工厂模式(The Factory)”,正在随着 GPT-5.2 和 Claude Opus 4.5的成熟以及新版本编程大模型的发布而全面爆发。

今天,我们深度解读这份极具前瞻性的访谈,看看为什么 IDE 侧边栏必死,以及未来的软件工厂究竟长什么样。

Deep Mode:当 AI 学会了“深思熟虑”

要理解为什么要砍掉侧边栏,首先要理解模型能力的质变。

在 2025 年之前,主流模型(如 Claude 3.5 Sonnet)的特点是“聪明但急躁”。它们非常适合 Smart Mode:你问一个问题,它秒回一段代码;你报错,它秒回修正。这是一种高频的、实时的“结对编程”体验。

但随着 GPT-5.2 Codex 的发布,情况变了。

AMP 推出了一个新的模式:Deep Mode(深度模式)。

  • 特性:这个模型不爱说话,它爱干活。它不是“懒惰”,而是“深沉”。
  • 特工作流:你给它一个模糊但宏大的目标(例如“重构整个鉴权模块并适配新的安全协议”),然后你就可以走开了。
  • 特时延:它可能会运行 45 分钟甚至 60 分钟。它会自主查阅文档、搜索代码、尝试方案、遇到错误、自我修正、运行测试,直到最终交付结果。

“侧边栏”完全无法承载这种体验。

想象一下,如果你在 IDE 侧边栏里发了一个指令,然后 AI 转了 45 分钟圈圈,期间你不敢关窗口,不敢切分支,这是一种多么糟糕的体验?

结论 1:

当 AI 的能力从“秒级补全”进化到“小时级任务”时,它必须脱离 IDE,进入后台,成为一个独立的Worker,而不是依附于编辑器的 Assistant。

惊人的抉择:Agent DX > Human DX

访谈中透露了一个令人细思极恐的细节,揭示了 AI 原生开发时代的价值观重构。

AMP 团队为了优化内部的开发效率,重写了他们的构建工具。

他们用 Zig 语言重写了 svelte-check,将其命名为 zvelt-check。这样做的目的是为了让 Agent 跑得更快,且输出的日志更结构化(便于 Agent 解析)。不过,这个新工具也破坏了 VS Code 对 Svelte 的原生支持(Human DX 下降)。人类开发者在编辑器里看到的错误提示变差了,甚至失去了一些高亮功能。

在“人类体验(Human DX)”和“智能体体验(Agent DX)”发生冲突时,AMP 选择了后者。

甚至有一半使用 NeoVim 的员工表示:“我不在乎 VS Code 体验变差,只要 Agent 跑得快就行。”

这是一个标志性的时刻。

长久以来,所有的开发者工具(CLI、Linter、Log)都是为了“让人类读懂”而设计的。我们需要漂亮的颜色、进度条、友好的报错提示。

但在 AI 时代,90% 的工具调用者将是 Agent。Agent 不需要颜色,不需要进度条,它们需要的是极致的速度、结构化的 JSON 输出、幂等的执行逻辑。

结论 2:

未来的工具链,将优先为 AI 优化。如果一个工具对人类不友好但对 AI 友好,它依然会被采用。我们正在主动劣化人类的开发体验,以换取 AI 生产力的十倍跃迁。

软件的消融:从 SaaS 到 Text

访谈中提到了一个名为 “The Melting of Software(软件的消融)” 的概念。这不仅影响开发工具,更影响我们构建产品的方式。

案例 A:Ryan Florence 的健身教练

Ryan 没有使用任何健身 App。他只是打开了 ChatGPT 的语音模式,说:“我在家里的健身房,指导我锻炼。”

AI 说:“做一组深蹲,好了叫我。”

Ryan 做完说:“好了。”

AI 说:“休息 60 秒。”

没有 UI,没有按钮,没有 App。软件消失了,只剩下服务。

案例 B:购物清单的回归

Torston 本想用 Agent 自动化管理 Todoist(一个著名的待办事项 App)。

但他突然意识到:“我为什么要用 Todoist?我的购物清单只有 15 项。Agent 可以直接在一个纯文本文件里管理它。”

如果 Agent 能读懂文本,能实时更新状态,能通过 CLI 提醒我,那我为什么还需要一个复杂的 SaaS 软件?

这指向了一个终极问题:当 Agent 能够理解非结构化数据,并能通过原子化工具(如Skills)操作一切时,传统的“应用软件”是否会大量消亡?

未来的软件,可能不再是精心设计的 GUI,而是一组 Skills(能力) + Context(上下文文件)。

  • 你不需要 Google Cloud 的网页控制台,你只需要给 Agent 一个 gcloud 的 Skill。
  • 你不需要 Jira 的复杂界面,你只需要一个能读写 Markdown 的 Agent。

结论 3:

软件正在退化为 API 和数据,中间的“交互层”正在被 Agent 接管。

技能(Skills):新的抽象层

既然侧边栏死了,我们靠什么来通过 AI 开发?

答案是:CLI + Skills

AMP 团队展示了他们如何在内部大量使用 Skills。

  • Tmux Skill:教 Agent 如何在终端里正确使用 Tmux,如何杀掉进程(甚至包括“记得按两次 Ctrl-C”这种经验知识)。
  • Google Cloud Skill:赋予 Agent 使用 Google Cloud CLI 的能力。
  • BigQuery Skill:这被描述为“最神奇的体验”。你问:“多少用户用了这个功能?”,Agent 自动写 SQL,查 BigQuery,返回结果。

Skills 是“经验的固化”。

当你教会 Agent 解决一个问题后,让它把过程总结成一个 Skill。下次,它(以及团队里的其他 Agent)就不会再犯错。

这比在 Chat 窗口里一遍遍写 Prompt 要高效得多。

组织哲学:像艺术装置一样自我毁灭

为什么 AMP 敢于砍掉 VS Code 插件?这源于他们独特的公司哲学。

“我们就像一个艺术装置(Art Installation),随时准备自我毁灭和重建。”

在这个技术每 3 个月就迭代一代的疯狂时代,“护城河”是最大的陷阱。

  • GitHub Copilot 曾经是王者,Cursor 出来后它显得老了。
  • Cursor 曾经是王者,Claude Code 和 AMP 出来后,编辑器模式显得老了。
  • 也许 3 个月后,OpenClaw 这样的纯本地 Agent 会让现在的模式也显得老了。

AMP 的 CEO 说:“如果我们因为‘用户习惯’而保留旧功能,我们就会变成哪怕是最好的‘落伍者’。我们必须每 3 个月重新赢得我们的客户。”

“Run towards the fire.”(向着炮火前进。)

如果你看到某个技术趋势正在颠覆你,不要躲避,不要观望,加入它,甚至成为颠覆自己的人。

小结:给 1% 的开发者

这篇文章可能让大家感到不安。

你习惯了 VS Code,习惯了 Copilot 的自动补全,习惯了掌控一切。

但在 2026 年的视野里,“人机结对”只是一个过渡形态

真正的未来属于 Agentic System(智能体系统),属于 Factory(软件工厂)

在那个未来里:

  • 你不再是写代码的人,你是定义 Spec 的人。
  • 你不再在编辑器里工作,你在终端(CLI)里指挥。
  • 你不再管理代码,你管理智能体集群

对于那 1% 愿意走出舒适区、拥抱“Factory Mode”的开发者来说,你们的生产力将不再是线性的增长,而是指数级的爆发。

侧边栏已死,工厂万岁。

资料链接:https://www.youtube.com/watch?v=4rx36wc9ugw


你愿意为效率牺牲体验吗?

AMP 为了 Agent 效率主动劣化人类开发体验(Agent DX > Human DX),这一决定让你感到兴奋还是不安?如果一个工具能让你效率提升 10 倍,但代价是你再也看不清语法高亮,你会接受吗?

欢迎在评论区分享你对“AI 软件工厂”的看法!


提前布局你的“软件工厂”

虽然我们还不能完全抛弃编辑器,但 AMP 倡导的 Agent-Native 开发流,现在就可以开始实践。

在我的极客时间专栏AI 原生开发工作流实战中,我们将深度对齐这种前沿理念:

  • CLI First:如何脱离 IDE,使用 Claude Code 在终端完成全流程开发?
  • Skill Engineering:如何编写高质量的 Skill,让 Agent 掌握你独有的业务知识?
  • Agent DX 优化:如何改造你的项目结构,让它对 AI 更友好?

不要等了。扫描下方二维码,现在就构建你的未来开发流。


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

© 2026, bigwhite. 版权所有.