标签 Rust 下的文章

AI 时代的新王座:为什么说 Go 可能是开发 AI Agent 的最佳语言?

本文永久链接 – https://tonybai.com/2026/03/07/why-go-is-the-best-language-for-ai-agents

大家好,我是Tony Bai。

当我们在谈论 AI 编程时,Python 似乎是那个无需讨论的“默认选项”。

然而,随着 AI 应用从模型训练(Training)走向自主智能体(Agents)和复杂的工程落地,基础设施层的语言选型正在悄然发生变化。近日,开源数据编排工具 Bruin 的作者发表了一篇题为《Go 是开发 AI Agents 的最佳语言》的文章,在 Hacker News 上引发了数百条跨语言阵营的激烈辩论

为什么一位有着 10 年 Python 和 JS 经验的开发者,最终选择用 Go 来构建现代 AI 基础设施?在 AI 生成代码(AI-Generated Code)日益普及的今天,编程语言的“静态类型”、“编译速度”和“语法极简主义”又被赋予了怎样的新维度价值?

本文将深度拆解这场争论,带你探讨在“Vibe Coding(氛围编程)”时代,Go 语言如何凭借其独特的设计哲学,意外地命中 AI Agent 开发的甜点。

为什么是 Go?来自生产一线的工程反思

Bruin 是一个开源的 ETL(提取、转换、加载)工具。在数据工程领域,Python 拥有统治级的地位(Pandas, Airflow 等),按理说,Bruin 完全应该用 Python 编写。

但作者最终选择了 Go。原因在于,AI Agent 和数据编排工具在本质上属于基础设施(Infrastructure),它们面临的工程约束与模型训练截然不同:

  1. 极致的并发需求:Agent 绝大部分时间都在等待外部 API 的响应(OpenAI, Anthropic)。Go 极其轻量的 Goroutine 机制(2KB 栈空间,极低的上下文切换成本)允许在单机上轻松维持数万个并发请求,而 Python 的 GIL(全局解释器锁)即使配合 asyncio,在 500-1000 RPS 后也会遇到明显的线程竞争瓶颈。(注:最新版Python已经去除了GIL的限制。)
  2. 极简的部署体验:Go 编译出的单一静态二进制文件,无需像 Python 那样处理复杂的虚拟环境(venv)、依赖冲突和运行版本问题。对于需要在用户机器上运行的 CLI 工具来说,Go 是“分发即运行”的典范。
  3. 跨平台验证的便利:Go 一等公民的跨平台编译能力,意味着不仅开发者可以轻松构建多平台产物,未来的“后台 AI Agent”也能在一个隔离的沙箱中快速验证代码的跨平台兼容性。

除了上述硬核的工程指标外,作者还坦诚地分享了一个极其主观,但对初创团队至关重要的考量:开发体验(Developer Experience)与情绪价值。

作者将在很长一段时间内作为项目的核心贡献者,他深刻地意识到:

“对于一个小型团队来说,在构建大型项目时,快乐和活力(Joy and Energy)是最稀缺的资源之一。因此,至关重要的是,我不能对自己每天要面对的技术栈感到畏惧或厌烦。”

Go 语言或许在某些特性上不如 Python 灵活,也不如 Rust 表达力强,但它带来的那种“一切尽在掌握”的确定性和快速获得反馈的成就感,能让开发者在漫长的马拉松式开发中保持心流状态。这种心理层面的正向反馈,在 AI Agent 这种充满不确定性的前沿领域探索中,往往是支撑团队走过低谷、坚持到黎明的关键力量。

如果说以上只是 Go 作为“云原生王者”的常规操作,那么在引入大语言模型(LLM)作为“代码生成器”后,Go 的语言特性产生了奇妙的化学反应。

静态编译:给 AI 戴上“紧箍咒”

当 Coding Agent 开始每分钟吐出成千上万行代码时,最大的挑战不再是“如何生成”,而是“如何证明它有效”。

在解释型语言(如 Python 或 JavaScript)中,代码的正确性往往只有在运行到特定分支时才能被验证。作者指出,这是 Go 在对抗 AI 幻觉时最大的优势之一:Go 是一门强类型的编译型语言。

编译器的“守门员”效应

当你用 LLM 生成 Go 代码时,go build 成了一道天然且严苛的防火墙。类型不匹配、未使用的变量、错误的函数签名——这些占据了 AI 幻觉相当大比例的低级错误,会被 Go 编译器瞬间无情地驳回。

正如一位 HN 网友 所言:

“在这个人人都在‘氛围编程(vibing left and right)’的时代,你迫切需要一个编译器在背后支持你。Go 让你可以写稍微随意一点的代码,但又不会像 Python 或 JS 那样毫无底线。编译器扮演了看门人的角色,将混乱控制在一定范围内。”

为什么不是 Rust?

讲到编译期安全,Rust 绝对是无可争议的王者。但为什么作者认为 Go 比 Rust 更适合 AI Agent?

  • 迭代速度决定一切:AI Agent 的工作流是一个“生成 -> 编译 -> 报错 -> 修复”的紧密反馈循环(Feedback Loop)。Go 的编译速度几乎是瞬时的,这使得 LLM 的试错循环可以极快地运转。而 Rust 漫长的编译时间,在这里成为了致命的瓶颈。
  • 借用检查器的“认知负荷”:Rust 的内存模型(生命周期、借用)极其复杂。现阶段的 LLM 在处理复杂的借用关系时,常常会陷入“为了让编译器闭嘴而无脑 clone()”的陷阱,导致生成的代码偏离 Rust 的最佳实践。
  • 更平缓的试错成本:Go 的垃圾回收(GC)机制让 AI(以及审查代码的人类)可以专注于业务逻辑,而不必在内存管理上耗费计算 token 和审查精力。

简单来说:Rust 的上限极高,但门槛太陡;Go 用 20% 的努力(快速编译+GC),换取了 80% 媲美 Rust 的安全性,这恰好是 AI 迭代的最优解。

极简主义与“无聊”的胜利

Go 语言自诞生起,就因为其语法的“无聊”和“死板”(比如缺乏灵活的宏、长期没有泛型、繁琐的错误处理)而饱受争议。然而,在 AI 时代,这种“无聊”却意外地成为了巨大的优势。

“只有一种做法”的红利

Python 和 JavaScript 以“灵活”著称。在一个 JS 项目中,有人用 CommonJS,有人用 ES6 Modules;有人用 npm,有人用 pnpm。对于人类来说,这叫“生态繁荣”;但对于 LLM 来说,这叫“状态空间爆炸”(High Entropy)。

Go 是极其“固执”的语言(Opinionated)。

  • 格式化代码?只有 gofmt。
  • 怎么处理错误?永远是 if err != nil。
  • 怎么写测试?标准库 testing 包。

正如作者指出的:“要求 Agent 格式化 JS 代码,它会去引入一个新工具并尝试配置它;而在 Go 中,它只需要运行 gofmt。”

这种高度统一的代码风格,意味着在 LLM 的训练语料库中,Go 代码的“信噪比”极高。模型不需要在多种编程范式中猜测你的偏好,它输出的 Go 代码通常具有高度的同质性和可预测性。

人类可读性:代码审查的最后防线

当 AI 成为主要的“代码编写者”时,人类的角色将不可避免地向“代码审查者(Code Reviewer)”倾斜。

如果 AI 生成了一段高度抽象的 Haskell 代码,或者使用了大量宏的 Rust 代码,人类审查者需要耗费极大的脑力去反编译这些逻辑。

而 Go 代码是出了名的“所见即所得”。没有隐藏的控制流,没有复杂的运算符重载。当 AI 生成了几百行 Go 代码时,即使是一位初级开发者,也能相对轻松地顺着逻辑线读懂它在干什么。

在 AI 编程的下半场,“代码易读”将比“代码易写”重要一万倍。

跨越阵营的交锋:Hacker News 的不同声音

当然,这篇文章在 Hacker News 上并非一边倒的赞同。不同语言阵营的开发者提出了极其犀利的反思。

反思一:Python 真的过时了吗?

Python 拥护者指出,文章混淆了“运行时性能”和“开发生态”。

虽然 Go 在高并发和 I/O 上碾压 Python,但如果 AI Agent 的核心逻辑涉及大量的数据科学计算、复杂的概率模型,或者需要直接调用底层的 C++ 机器学习库,Python 依然是不可替代的粘合剂。对于许多初创团队来说,“让代码先跑起来”远比“让代码跑得快”更重要。

反思二:类型系统能否取代测试?

支持函数式语言(如 OCaml, F#)的开发者指出,Go 的类型系统依然过于薄弱。

Go 缺乏代数数据类型(ADT)和模式匹配,导致其虽然能抓住低级语法错误,但难以像 Rust 或 OCaml 那样“在编译期保证业务逻辑状态的正确性”。

对于他们而言,如果 AI 真的足够聪明,应该让 AI 生成具有极强类型约束的代码,把正确性完全交给编译器,而不是像 Go 那样依然需要编写大量的单元测试。

反思三:长远来看,语言还重要吗?

这是一个终极的哲学问题:如果未来 AI 不再犯错,能够零成本生成正确的机器码,高级编程语言还有存在的意义吗?

有评论认为,当模型能力足够强时,我们甚至不需要编译型语言的保护,直接用自然语言(英语)+ LLM 生成运行时的 WebAssembly 可能才是终局。在这个维度上,争论 Go 还是 Python,就像在争论用什么牌子的算盘(意指已经被时代所抛弃的东西)一样没有意义。

小结:实用主义者的狂欢

在 AI 技术日新月异的当下,我们往往容易陷入一种对“前沿”的盲目崇拜,认为只有最复杂的语言、最先进的模型才能构建出优秀的系统。

但 Bruin 作者的实践和 Go 社区的繁荣告诉我们另一个故事:工程的本质是权衡(Trade-off)。

Go 并不是世界上最完美的语言,它的类型系统不如 Rust 严谨,它的生态不如 Python 庞大。但它用极致的编译速度、简单的并发模型、出色的内存管理和统一的编码规范,构建了一个容错率极高的工程基座。并且在这个基座上,无论是人类还是 AI Agent,都能以最低的“认知摩擦力”输出可靠的工业级代码。

资料链接:

  • https://getbruin.com/blog/go-is-the-best-language-for-agents/
  • https://news.ycombinator.com/item?id=47222270

你更相信谁?

在 AI 编程的下半场,语言的地位正在重构。你是坚守 Python 的生态优势,还是更看好 Go 在“基础设施级 Agent”中的爆发?你认同“编译器是 AI 的最佳守门员”这个观点吗?

欢迎在评论区留下你的“阵营宣言”!


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

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

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


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

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

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

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

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


原「Gopher部落」已重装升级为「Go & AI 精进营」知识星球,快来加入星球,开启你的技术跃迁之旅吧!

我们致力于打造一个高品质的 Go 语言深度学习AI 应用探索 平台。在这里,你将获得:

  • 体系化 Go 核心进阶内容: 深入「Go原理课」、「Go进阶课」、「Go避坑课」等独家深度专栏,夯实你的 Go 内功。
  • 前沿 Go+AI 实战赋能: 紧跟时代步伐,学习「Go+AI应用实战」、「Agent开发实战课」、「Agentic软件工程课」、「Claude Code开发工作流实战课」、「OpenClaw实战分享」等,掌握 AI 时代新技能。
  • 星主 Tony Bai 亲自答疑: 遇到难题?星主第一时间为你深度解析,扫清学习障碍。
  • 高活跃 Gopher 交流圈: 与众多优秀 Gopher 分享心得、讨论技术,碰撞思想火花。
  • 独家资源与内容首发: 技术文章、课程更新、精选资源,第一时间触达。

衷心希望「Go & AI 精进营」能成为你学习、进步、交流的港湾。让我们在此相聚,享受技术精进的快乐!欢迎你的加入!

img{512x368}


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

从手写代码到日提 30 个 PR:Claude Code 缔造者的 AI 编程启示录

本文永久链接 – https://tonybai.com/2026/03/06/building-claude-code-with-boris-cherny

大家好,我是Tony Bai。

想象一下,你加入了一家全球顶级的 AI 实验室,满怀热情地提交了第一个 Pull Request (PR)。然而,你的 PR 却被直接拒绝了。原因不是代码写得不好,而是——这代码是你“手写”的

这不是科幻小说,这是 Boris Cherny 加入 Anthropic 时的真实经历。作为目前炙手可热的 AI 编程工具 Claude Code 的缔造者和工程负责人,Boris 曾是 Meta (前 Facebook) 最高产的程序员之一。但在 Opus 4.5 模型发布后,他的工作流发生了颠覆性的变化:现在,他每天可以提交 20 到 30 个 PR,且不再手动编辑任何一行代码。

近期的一期深度访谈中,Boris 分享了 Claude Code 从一个内部黑客项目到爆款工具的演进历程,以及他对于 AI 时代软件工程未来的深刻洞察。

Claude Code 的诞生:不要把 AI 关在盒子里

Claude Code 的前身是一个名为 “Clyde” 的内部原型。当 Boris 最初构思如何将 AI 融入编程时,他犯了一个很多开发者都会犯的错误:试图把 AI 当作系统中的一个组件。

在传统的思维模式下,我们倾向于把模型关在一个“盒子”里,为其定义严格的输入和输出接口(比如在 IDE 中高亮一段代码,然后让 AI 解释或补全)。但 Boris 很快意识到,这不是与大模型交互的正确方式。

“不要试图把它放进盒子里,不要强迫它以特定的方式行事。把模型看作一个独立的实体,给它工具,让它自己运行程序。”

这种被 Boris 称为“苦涩教训(Bitter Lesson)推论”的理念,成为了 Claude Code 的核心设计哲学。他赋予了模型执行 Bash 命令的权限,接着是读写文件系统的权限。当模型获得了与现实世界(操作系统)交互的能力后,奇迹发生了。

他举了一个早期的例子:他给了模型一个 Bash 工具,然后问它:“我正在听什么音乐?”模型竟然自己写了一段 AppleScript 脚本,调用 sed 等命令去查询本地的音乐播放器,并成功返回了答案。这一刻,Boris 感受到了真正的 AGI(通用人工智能)气息。

从手写到“指挥”:并行 Agent 的极致工作流

作为曾经 Meta 代码产量极高的工程师,Boris 现在的产出速度更是达到了令人咋舌的地步(每天 20-30 个 PR,从几行到几千行不等)。他是如何做到的?答案是大规模并行 Agent (Parallel Agents)。

他分享了自己目前极其硬核的终端工作流:

  1. 多开终端:在终端(如 tmux)中打开 5 个标签页,每个都是独立的代码库 Check-out(或者使用 Git Worktree)。
  2. 启动计划模式 (Plan Mode):在每个标签页中启动 Claude Code,并进入“计划模式”(按两次 Shift+Tab),向 Agent 描述需求。
  3. 轮询指挥:当第一个 Agent 开始思考和执行时,他立刻切换到第二个标签页启动另一个 Agent。如此循环。
  4. 验证与交付:当收到某个 Agent 完成任务的通知时,切回去检查结果。

在这种模式下,Boris 不再是一个“打字员”,而化身为一个“交响乐团指挥”。他的核心工作从“思考如何实现”,变成了“思考业务逻辑的类型签名(Type Signatures)”和“验证模型的输出”。

当 AI 编写了 80% 的代码,代码审查(Code Review)怎么做?

这是每个工程团队都会面临的灵魂拷问。在 Anthropic 内部,高达 80% 的代码现在由 Claude Code 生成。那么,他们是如何把控质量的?

答案是:用 AI 审查 AI,辅以人类的最后防线。

  1. Agent 自我测试:Claude Code 会在本地自动编写并运行测试。如果 Anthropic 工程师修改了 Claude Code 本身的源码,Agent 甚至会启动一个子进程来做端到端(E2E)测试。
  2. AI 初审 (Best of N):在 CI/CD 阶段,每一个 PR 都会先被 Claude 审查。为了解决 LLM 偶尔的非确定性和幻觉,他们采用了 Best of N 策略——启动多个并行的 Agent 进行审查,再用一个去重 Agent 汇总结果。这能拦截约 80% 的低级 Bug。
  3. 动态 Lint 规则:当发现同事的 PR 中出现了可被静态分析捕获的问题时,Boris 会直接要求 Claude 当场写一个 Lint 规则,从源头上杜绝此类问题。
  4. 人类拍板:尽管自动化程度极高,但对于企业级产品,目前 Anthropic 依然要求每个 PR 必须有真正的人类工程师进行第二轮审查并最终批准。

“我们就像 15 世纪的抄写员”

面对 AI 展现出的恐怖编程能力,即便是前特斯拉 AI 总监 Andrej Karpathy 也感叹自己“从未如此落后过”。许多程序员感到恐慌:我们寒窗苦读十载练就的编码技能,是不是要变成屠龙之技了(变得稀有且遥远)?

Boris 给出了一个非常精彩且充满希望的隐喻:印刷术的发明。

在 15 世纪印刷术出现之前,“识字和抄写”是极少数人的特权。他们被国王雇佣,经过多年训练才能胜任。而当时的许多国王,甚至自己都是文盲。

“我们现在的软件工程师,就像是那些抄写员。而业务方(CEO/PM)就像是那些不懂技术的国王。”

当印刷术出现后,书籍的成本下降了百倍,数量增加了万倍。抄写员并没有消失,他们变成了作家、编辑、出版商。随着识字率的普及,整个知识市场迎来了前所未有的大爆炸,催生了无数在那之前根本无法想象的职业和产业。

今天,AI 编程工具就是软件工程界的“印刷术”。编程的门槛正在被无限拉低,原本不懂代码的业务人员、设计师、财务人员(在 Anthropic 内部,非技术人员使用 Claude Code 的比例接近 100%)都能直接将想法转化为软件。这不会消灭软件工程,而是会让软件的产量和应用场景呈指数级爆发。

工程师的新生存法则:哪些技能在贬值,哪些在升值?

在这场范式转移中,作为开发者,我们需要对技能树进行重新评估。

正在快速贬值的技能:

  • 对语言和框架的宗教式狂热:不要再为“到底是用 React 还是 Vue”、“这应该用 Go 还是 Rust 写”而争得面红耳赤了。如果模型觉得当前框架不好,它随时可以用几分钟时间帮你用另一个语言重写一遍。
  • 沉溺于语法细节:未来将没有人再去手动敲击枯燥的样板代码。

愈发珍贵的核心能力:

  • 系统化与假设驱动思维:面对复杂的 Debug 场景,如何提出假设、逐步验证,这种科学的工程思维依然是 AI 目前难以完全替代的。
  • 跨界的好奇心:未来属于全栈通才。如果你懂前端、懂后端,同时还懂业务逻辑、设计心理学甚至财务模型,你就能借助 AI 工具,以“一人公司”的姿态构建出估值十亿美元的产品。
  • 高频上下文切换能力 (ADHD 式的工作法):在这个需要同时管理多个 AI 智能体的时代,不再那么强调长时间的“深度编码”,而是需要你能在多个高层上下文中快速穿梭、精准决策。

注:ADHD (注意力缺陷多动症) 式的工作法是一种灵活而高度分散注意力的工作风格,常常表现为多任务处理和非线性思维,能够快速切换多个任务并通过联想和直觉进行思考。这种方法倾向于将大的任务分解为小的、可管理的目标,以保持动力和成就感。同时,工作过程中的兴趣和关注点可能会快速变化,因此通常会采用短暂的工作间隔与休息时间。通过频繁调整和迭代的方式,ADHD式工作法能够帮助人们利用自身的优势,克服注意力集中的挑战。

小结:抛弃傲慢,拥抱变化

在采访的最后,Boris 坦言自己也经常感到挣扎:模型进化的速度太快了,几个月前验证失败的架构理念,换个新模型可能瞬间就跑通了。

在这个时代,“智力上的谦逊 (Intellectual Humility)” 比过往的经验更重要。不要再用旧时代的标尺去衡量新世界的工具。承认 AI 可能比你写得快、甚至写得好,放下作为“手写代码匠人”的骄傲,去学习如何更好地指挥这支由超级大脑组成的交响乐团吧。

毕竟,未来不属于那些拒绝使用 AI 的人,而是属于那些知道如何用 AI 构建下一个时代的人。

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


你敢交出“键盘”吗?

Boris 的经历让我们重新思考什么是“专业”。如果你提交的 PR 仅仅是因为“这是我手写的”而被拒绝,你的第一反应会是什么?在你的团队中,是否已经有人开始尝试这种“指挥家”式的工作流?

欢迎在评论区分享你的看法!


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

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

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


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

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

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

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

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


想系统学习Go,构建扎实的知识体系?

我的新书《Go语言第一课》是你的首选。源自2.4万人好评的极客时间专栏,内容全面升级,同步至Go 1.24。首发期有专属五折优惠,不到40元即可入手,扫码即可拥有这本300页的Go语言入门宝典,即刻开启你的Go语言高效学习之旅!


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

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言进阶课 AI原生开发工作流实战 Go语言精进之路1 Go语言精进之路2 Go语言第一课 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com
这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats