先别急着叫它 Agent

办公室里现在很常见的一幕是这样的。有人把一段需求贴给模型,让它回了几屏文字,于是群里开始说:“我们这个也可以做成 agent。”再过两天,有人接了个自动化脚本,也说这是 agent。再过一周,能跑通两步工具调用的 demo 出来了,大家又觉得这才算 agent。

问题不在大家不努力,而在于同一个词已经快被说成三四种东西了。Simon Willison 这篇最重要的价值,就是把这个越来越松的词重新收回来。

如果要压成一句最短的中文,今天更值得叫作 agent 的,可以理解成一个会为了目标持续行动、会调用工具、会根据结果继续往下走的 LLM 系统。

一个词为什么会直接影响工程

很多人会觉得,定义这种事好像是写文章的人在较真,真正做产品的人没空管这些。但现实恰恰相反。词一旦没说清,架构、权限、测试和责任边界都会一起变糊。

如果一个团队把 agent 理解成“一个更聪明的聊天框”,他们会先做人格感、对话体验和回答质量。如果把它理解成“自动执行器”,他们会更早去想权限控制、工具接入和失败恢复。如果把它理解成“围绕目标持续运转的系统”,他们就必须一开始就讨论循环、停止条件、人类接管和可回放性。

这三个方向不是小差别,它们对应的是三个不同的产品。

Simon 真正想守住的那条线

Simon 这篇最可贵的地方,在于它帮大家把注意力从拟人化包装拉回结构。

真正重要的,是它有没有这条最基本的骨架:拿到目标,调工具,读结果,再决定下一步。你可以把它想成一个小回路。没有这个回路,它更像一个问答系统;有了这个回路,它才开始有了 agent 的味道。

这也是为什么很多“看起来很智能”的产品,真正拿去干活时又很快露馅。它们可能很会说,但并没有被设计成持续完成任务的系统。

把它放回开发现场就更容易懂了

如果你是开发者,可以拿一个最具体的场景来判断。

假设你要做一个“修测试的 AI 工具”。如果它只是读一段报错,然后给你一段可能的修复建议,那它更像高级搜索或高级问答。可如果它会自己定位测试文件、读失败日志、修改代码、重跑测试,并根据新的错误继续缩小范围,这时它就更接近 agent。

一旦承认这件事,后面的问题都会更具体。

  • 它能动哪些文件。
  • 哪一步必须让人确认。
  • 失败几次后必须停。
  • 日志要不要完整保留。

这些问题从来不是附加项,它们就是系统本身的一部分。

产品和测试会被这个定义悄悄重写

产品最容易写出一种危险需求:“做一个智能助手,帮用户自动完成某某任务。”这句话听起来很高级,但对工程和测试几乎没有帮助。因为它没有写清目标,也没有写清边界。

换成 agent 视角,问题会马上变得更实在。

  • 它的目标到底是什么。
  • 它可以碰哪些工具,不能碰哪些。
  • 它是在一次回复里结束,还是会持续循环。
  • 哪些动作必须回到人类确认。

测试也会跟着发生变化。过去测试一个聊天产品,你更关心它有没有答非所问。现在测试一个 agent,你要开始关心它会不会中途跑偏、会不会误调工具、会不会在失败后继续把错误放大。

一个很典型的例子是内部知识库问答。普通聊天框只要“回答得像样”就已经算完成一半,但如果它被包装成会自动帮员工查资料、发工单、改状态的 agent,测试对象立刻就从“回答质量”变成了“它下一步会不会做错事”。

再比如一个给客服团队用的售后助手。要是它只负责根据 FAQ 起草回复,那它更像增强搜索;可如果它还能读取订单状态、申请退款、通知仓库、同步 CRM,它的定义、权限和测试方式就完全不同了。很多团队正是在这一步没分清,才会一边说自己在做 agent,一边又拿聊天产品的标准去验收它。

对 Agent Engineer 最有用的提醒

这篇对 Agent Engineer 的最大提醒,其实很朴素:术语治理也是工程治理。

很多团队会在系统还没做大时就先陷入一种奇怪混乱。产品说的是“AI 员工”,工程脑子里想的是 loop,运营期待的是角色感,测试想要的是可回放。每个人都觉得自己在讨论同一个东西,实际上根本不是。

真正成熟的团队,往往会尽早把几件事写死。

  • 我们这里说的 agent 到底指什么。
  • 它有哪些工具。
  • 它的目标和停止条件是什么。
  • 哪些步骤必须回到人类手里。

把这几句写清楚,很多后面的争论会自动消失一半。

今天就能做的小动作

拿你们最近讨论过的一个“agent 项目”,试着用一句话重写它。那句话里至少要有三样东西:目标、工具、循环。

如果这三样你一句话说不出来,那问题通常还不在模型,而在于项目本身还没有被定义成一个足够清楚的系统。

更新附注

  • 版本:v1.1
  • 更新日期:2026-03-20
  • 更新原因:为系列文章补充统一阅读序号,方便读者从概念地基开始顺读。