Agent 不是一个功能,是一段循环
Site Owner
发布于 2026-07-09
ByteByteGo 7-08 最新文章把 Agent 拆成 perceive-reason-act-observe 四步循环,本文翻译成中文工程视角:把控制权交给模型之前你要想清楚的 3 笔账(compounding error、harness 成本、什么时候用 Workflow 替代)。
Agent 不是一个功能,是一段循环
ByteByteGo 在 7 月 8 日发了一篇长文,标题是《The Agent Loop: How AI Goes From Answering Questions to Doing Things》。它做了件中文社区很少有人系统做过的事——把 Agent 最底层的循环骨架拆给你看。
看完那篇文章,我更确信一件事:Agent 不是一个功能,是一段循环。你写不写这段代码,决定了你的 AI 是一锤子买卖,还是一个能自我迭代、持续运转的系统。
工程圈过去一年谈 Agent,谈的是「记忆」「身份」「多 Agent 协作」「最后一公里」「企业落地」。这些都是上层建筑。地基是 loop——也就是 LLM 自己决定「下一步该做什么、何时停下来」的那段代码。这段代码的有无,把 Chatbot 和 Agent 区分开。
Chatbot 和 Agent 的距离,比你想的窄
文章里有一句话点得很准:
A chatbot answers a question, and an agent completes a task. This seems like a huge difference. However, the gap between the two is narrower than it appears.
翻译成中文就是:聊天机器人回答问题,Agent 完成任务。听起来天差地别,差距窄得超出你的想象。
为什么窄?因为它们的「内核」都是同一个东西——一次 LLM 调用。区别只在外层有没有套一个 loop。套了 loop,模型自己决定什么时候停;没套 loop,开发者写死调用一次就完事。
把控制循环的那行代码从开发者手里交给模型,就是 Agent 化的全部。
但你一交出去,三件事跟着来:自主性、不确定性、还有代价。这三件事不分清楚,Agent 项目十有八九会死在 PoC 阶段。
循环里到底发生了什么
ByteByteGo 把一次循环拆成四步,命名很工程师:perceive、reason、act、observe。
- perceive:循环把当前状态塞进模型——原始任务、到目前发生过什么、新进来的输入是什么。
- reason:模型思考「下一步该做什么」,可以问问题、调工具、或者直接给最终答复。
- act:运行时执行模型刚才决定要做的事。
- observe:把执行结果收回来,塞进状态,等下一次 perceive。

四步循环,模型每跑一轮,就在「我想清楚了」和「世界给我的反馈」之间来回跑一遭。Observe 是一等公民——拿不到这一步,循环就退化成链,模型只能靠「上次期望」而不是「这次真实结果」往下走。那叫闭着眼开车。
一次循环,模型能挑四条路
更细看,每轮 reason 完,模型的输出有四种归宿:
- Final answer:模型判定「我手上的够了」,输出最终答案,循环退出。
- Tool call:模型点名要调一个函数、把参数写好,运行时去执行、把结果塞回状态。
- Handoff:模型判定「这事归另一个 Agent 干」,运行时换身份继续 loop。
- Continued thought:模型没采取任何外部动作,只是把一段 reasoning 写进状态、让下一次循环接着想。
