会用工具的动物
“agent 是什么”,其实早有一个流行答案:LLM 加工具,加一个循环。模型负责想,工具负责够到外部世界,循环负责让它一步步逼近目标。最小的实现二十行代码就能跑起来。
这个定义有力量。它把 agent 从一个神秘的词拉回到可以亲手实现的东西,去掉了所有玄学。会用工具,是一道真实的分界线:一个能调工具、能跑循环的模型,确实越过了“只会生成文本”的那条线。
一道真实但太低的线
历史课本给人下过一个相似的定义:人是会使用工具的动物。把石头举起来砸开果子,那一下,人和别的动物分开了。这个定义没错,会用工具确实是一道分界线。但今天没有人会用它来描述一个人是谁。
会用工具,说清了能做什么,说不清是谁。一只会拿石头的猩猩,和一个木匠,都“会用工具”,可他们不是一回事。差别不在工具,在工具背后那个“为了什么”。
agent 的这个定义卡在同一个地方。同一段循环、同一组工具,换一个目的,就是完全不同的 agent。一个反复查数据库、调接口的循环,可以是在做客服,可以是在做风控,也可以是在把整库数据搬走。从机制上看它们一模一样,从“是谁”上看毫不相干。这个定义没有给“目的”留位置。
终止条件暴露了缺口
缺口最尖锐的地方,是终止条件。
一个只会循环的东西,不知道自己干到哪算完。跑够十步就停,还是到了某个状态才停,还是必须等人点头,这取决于它在干什么活。而“它在干什么活”,恰恰是这个定义缺的那块。终止条件做不成一个通用开关:它不属于机制那一层,属于目的那一层,而“会用工具的动物”没有目的那一层。
循环本身怎么写、工具怎么设计、状态怎么管,这些在模型那一层已经讲清楚过,不必在这里重来。缺口不在这些零件里。这个定义缺的是一整层——关于这个 agent 为什么存在、该守什么边界、对谁负责的那一层。
机制齐了,身份是空的
会用工具的动物,说的是能做什么。能力齐备,身份空白。
要回答“agent 是谁”,得换一个抽象,一个能装下目的、岗位、职责的抽象。这个抽象从一个具体的东西上长出来:skill。