文章

为什么有人说 Go 才是写 AI Agent 的最佳语言?

为什么有人说 Go 才是写 AI Agent 的最佳语言?

今天 Hacker News 上一篇文章引发了不小的讨论:「A case for Go as the best language for AI agents」。在 Python 几乎垄断 AI 生态的今天,有人站出来为 Go 正名,这本身就很有意思。

Python 的统治地位,真的不可动摇吗?

说到 AI 开发,几乎所有人的第一反应都是 Python。没错,PyTorch、TensorFlow、LangChain、LlamaIndex——整个生态都是 Python 的天下。但仔细想想,写 AI Agent 和训练模型是两回事

训练模型需要 Python 的科学计算生态,这无可替代。但 Agent 呢?Agent 本质上是一个编排层——它调用 LLM API、管理工具调用、处理并发任务、维护状态机。这些需求跟 Web 后端服务其实更像。

Go 的优势在哪里

文章作者(来自数据管道工具 Bruin 的团队)给出了几个核心论点:

1. 并发是一等公民

Agent 天然需要并发:同时调用多个工具、并行处理多个子任务、管理多个对话流。Go 的 goroutine 和 channel 模型让这些操作优雅且高效。Python 的 asyncio 能做到类似的事,但写过的人都知道,async/await 的传染性和调试体验远不如 goroutine 自然。

2. 单二进制部署

Go 编译出的是静态链接的单一二进制文件。不需要虚拟环境,不需要 pip install,不需要担心 Python 版本冲突。对于需要部署到边缘设备或容器化的 Agent 来说,这个优势巨大。

3. 性能和资源开销

Agent 是需要长期运行的服务进程。Go 的内存占用和启动速度远优于 Python。当你需要运行成百上千个 Agent 实例时,这个差距会被急剧放大。

4. 类型安全和错误处理

Agent 的可靠性至关重要——它在自主执行任务,出了 bug 可能造成实际损失。Go 的静态类型和显式错误处理虽然啰嗦,但能在编译期就捕获一大类问题。

反过来想:Go 的短板

当然,Go 也不是银弹。几个现实问题:

  • 生态劣势明显。LangChain、CrewAI、AutoGen 这些主流 Agent 框架全是 Python 的。选 Go 意味着很多轮子要自己造。
  • 原型开发速度。Python 的灵活性让原型迭代更快,对于还在探索阶段的 Agent 应用,开发效率可能比运行效率更重要。
  • LLM SDK 支持。虽然各大模型都有 REST API,但官方 SDK 和社区示例绝大多数是 Python 优先。

我的看法:取决于你在做什么

这不是一个非此即彼的问题。我认为比较合理的判断标准是:

  • 实验和原型阶段 → Python,毫无悬念。生态红利太大了。
  • 生产级 Agent 服务 → Go 值得认真考虑。尤其是需要高并发、长期运行、多实例部署的场景。
  • 既要又要 → 用 Python 做快速验证,验证通过后用 Go 重写核心 Agent 逻辑,通过 API 调用 Python 的 ML 组件。

实际上,很多成熟的基础设施项目(Docker、Kubernetes、Terraform)都是 Go 写的。如果 AI Agent 逐渐从「实验性玩具」走向「生产基础设施」,Go 的角色可能会越来越重要。

真正的趋势

这篇文章背后反映的更大趋势是:AI Agent 正在从 demo 走向工程化。当大家开始认真讨论用什么语言写 Agent 更好的时候,说明这个领域正在成熟。不再只是 “能跑起来就行”,而是开始关注性能、可靠性、可维护性。

这对整个 AI 开发者生态来说是好事。


对比不同 AI 模型在代码生成上的表现?试试 OfoxAI(ofox.ai)——一个账号即可使用 Claude、GPT、Gemini 等主流模型,适合需要多模型协作的开发者。

本文由作者按照 CC BY 4.0 进行授权