它脑子里的小循环
Agent 不是一口气把事做完的,它一小步一小步来,每步都问自己三件事:
想(Think):现在该干嘛?
做(Act):调用某个工具(搜索 / 查数据库 / 算一下)
看(Observe):拿到结果,离目标更近了吗?
→ 没完成就回到“想”,再来一轮举个真实点的例子
目标:“告诉我我们 App 昨天的下单量。”一个 Agent 可能会这样转几圈:
想:要拿昨天数据,得查数据库
做:调用 query_db("select count(*) ... where day='昨天'")
看:返回 1287
想:够了,可以回答
交付:昨天下单 1287 笔为什么非得绕圈,不能一次说完?
因为它事先并不知道结果。查数据库前,它不知道是 1287 还是 0;搜索前,它不知道会搜到什么。得先做一步、看到结果,才能决定下一步——就像你查了余额才知道还能不能下单。
💡这个“想→做→看”的循环,业内常叫 ReAct(Reason + Act)。名字不重要,循环这件事才重要。
自测 · 学完检查一下
想真正动手做题、记进度、攒连胜?到互动课里练。
Agent 的核心循环是“想 → 做 → ___ → 再想”。
答案:看
想(Think)→ 做(Act)→ 看(Observe),不到目标就再来一轮。
在“查昨天下单量”的例子里,“调用 query_db(...)”属于循环里的哪一步?
答案:做(Act)
调用工具去执行,就是“做(Act)”这一步。
那“返回 1287”这一步,又属于循环里的哪一步?
答案:看(Observe)
拿到工具给的结果、判断离目标多近,就是“看(Observe)”。
判断:Agent 总是一次就把活干完,不需要转好几轮。
答案:错
恰恰相反——它常常要转好几轮:做一步、看结果、再决定下一步。这正是它比“只答一次”的 LLM 强的地方。
为什么 Agent 要循环着来,而不是一次性把答案全输出?
答案:因为它得先看到工具返回的结果,才能决定下一步
结果是未知的,必须“做一步看一步”,循环就是为此而生。
“想→做→看”的这个循环,业内常用一个词来称呼,叫 ___(填英文)。
答案:ReAct
ReAct = Reason(想)+ Act(做)。记不住英文没关系,记住“循环”就够了。