先别急着叫它 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
- 更新原因:为系列文章补充统一阅读序号,方便读者从概念地基开始顺读。
还没有评论,你可以写下第一条。