Agent Loop(代理迴圈)
又稱:代理迴圈 · agent 循環 · 智能體迴圈 · agentic loop
Agent 的心跳:組上下文 → 呼叫模型 → 解析輸出 → 執行動作 → 把結果接回上下文,重複到任務完成或撞上停止條件。
你會在什麼時候遇到它
AI Agent 詞條告訴你有四個零件:模型、上下文、工具、迴圈 —— 這一條講第四個零件怎麼轉,它是整站最重要的機制。不理解它,你會把 Agent 的每個神奇表現歸功於模型、每個失敗歸罪於模型;而兩者多半都發生在迴圈的某一環:上下文組錯了、輸出解析掛了、停止條件沒設好。
打個比方
像廚師邊做邊嚐:看鍋裡的狀態 → 決定下一步 → 動手 → 嚐一口 → 再決定,直到菜完成。LLM 是那個做決定的廚師,但動手翻炒、把湯匙端回他嘴邊的,是外面的程式。
最小範例
while True: # 這個迴圈就是 Agent 本身
ctx = 系統提示 + 對話歷史 + 工具結果 # ① 組上下文
out = llm(ctx) # ② 呼叫模型(唯一的 AI 步驟)
if out 是純文字:
回給用戶; break # ⑤ 停止條件
result = run(out.tool_call) # ③ 解析請求 ④ 執行工具
對話歷史 += [out, result] # 結果接回,進入下一輪五個環節裡只有 ② 是模型,①③④⑤ 全是普通程式。你之後遇到的每個 Agent 名詞 —— ReAct、planning、checkpoint —— 都是在改造這個迴圈的某一環,所以先認得它。
1/8使用者請求
任務用自然語言進來。harness 要把它變成模型能處理的東西。
第 1 步,共 8 步 使用者請求
最常搞錯的地方
- 以為迴圈是模型自己在「想事情」。模型每次只被呼叫一輪,它不知道有迴圈存在;把結果接回去、再問一次的,是外面那層程式。
- 不設停止條件。沒有「完成」和「放棄」兩個出口,迴圈會燒 token 燒到天荒地老,或在兩個動作之間無限打轉。