第 01 篇

什么是智能体工程?

Simon Willison 解释智能体工程、编程智能体和工具循环,讨论软件工程师的职责,以及智能体工程与 Vibe Coding 的区别。

Hex4C59 3 分钟阅读 更新于 2026-10-17

译文信息

本文为非官方中文译文,依据提供的原文正文翻译。正文中的「我」及相关定义、判断和计划均指原作者;工具和模型名称保留原文记录。

我用 智能体工程(Agentic Engineering) 这个术语,来描述借助编程智能体开发软件的实践。

什么是编程智能体(Coding Agents)?它们是既能编写代码,也能执行代码的智能体。常见的例子包括 Claude Code、OpenAI Codex 和 Gemini CLI。

那么,什么是智能体(Agent)?要为这个词给出清晰的定义,一直是困扰 AI 研究者的难题,至少可以追溯到 20 世纪 90 年代。不过,至少在 GPT-5、Gemini 和 Claude 这类大语言模型(Large Language Models,LLM)的领域中,我逐渐认可了下面这个定义:

智能体通过循环调用工具来实现目标。

所谓「智能体」,就是这样一种软件:它带着你的提示词调用 LLM,并传入一组工具定义;随后执行 LLM 请求调用的工具,再把结果反馈给 LLM。

对于编程智能体,这些工具中包含能够执行代码的工具。

你通过提示词为编程智能体设定目标。随后,智能体循环生成和执行代码,直到实现这个目标。

代码执行是让智能体工程成为可能的关键能力。如果不能直接运行代码,LLM 输出的任何内容都只有有限的价值。有了代码执行能力,这些智能体就可以不断迭代,逐步构建出能够通过实际运行证明其有效的软件。

智能体工程 #

既然现在已经有了能够编写可运行代码的软件,那么我们人类还需要做些什么?

答案是:还有非常多的事情。

编写代码从来都不是软件工程师唯一的工作。这门手艺的核心,始终是弄清楚应该编写什么样的代码。任何一个软件问题,都可能有几十种解决方案,而每种方案都有各自的取舍。我们的工作是权衡这些选项,找到最适合具体情境与需求的方案。

如何让编程智能体取得好的结果,本身就是一个值得深入研究的课题,尤其是在这个领域正以令人目不暇接的速度持续演进的当下。

我们需要给编程智能体提供所需工具,详略适当地描述问题,再验证结果、继续修改,直到确信它们能稳健、可信地解决问题。

LLM 不会从过去的错误中学习,但编程智能体可以做到,前提是我们主动把经验写入它们使用的指令和工具运行框架(tool harness)中。

如果运用得当,编程智能体可以让我们选择更有抱负的项目。智能体工程应该帮助我们产出更多、质量更高的代码,解决更有影响力的问题。

这不就是 Vibe Coding 吗? #

「Vibe Coding」这个词由 Andrej Karpathy 于 2025 年 2 月提出。巧合的是,那时距离 Claude Code 首次发布只有三周。这个词描述的是这样一种做法:通过提示词让 LLM 编写代码,而你自己则「连代码的存在都忘了」。

有些人把这个定义扩展到所有使用 LLM 生成代码的情形,但我认为这是错误的。Vibe Coding 保持原本的定义更有用:我们需要一个词,来描述未经审查、停留在原型质量的 LLM 生成代码,并将其与作者已经打磨到可用于生产环境标准的代码区分开来。

关于本指南 #

正如本指南介绍的这个领域还在发展一样,《智能体工程模式》也还在编写之中。我的目标是识别并描述与这些工具协作的模式:这些模式能够切实取得成效,也不容易随着工具的进步而过时。

随着新技术和方法不断出现,我会继续增加章节。任何一章都不应被视为已经定稿。随着我们对这些模式的理解不断深入,我也会持续更新已有章节。

一起讨论

选中正文中的文字,可以针对这段内容发起讨论。

正在读取讨论…

在 GitHub 查看与管理讨论 ↗

文章讨论