智慧體課程文件
透過“思想-行動-觀察”迴圈理解AI Agent
並獲得增強的文件體驗
開始使用
透過“思想-行動-觀察”迴圈理解AI Agent

在之前的章節中,我們學習了
- 如何透過系統提示將工具提供給Agent.
- AI Agent是如何能夠“推理”、規劃並與環境互動的系統.
在本節中,**我們將探討完整的AI Agent工作流**,這是一個我們定義為“思想-行動-觀察”的迴圈。
然後,我們將深入探討這些步驟中的每一步。
核心組成部分
Agent的工作是一個持續的迴圈:**思考(Thought)→行動(Act)→觀察(Observe)**。
讓我們一起分解這些行動
- **思想**:Agent的LLM部分決定下一步應該是什麼。
- **行動**:Agent透過呼叫工具並附帶相關引數來執行行動。
- **觀察**:模型反思工具的響應。
“思想-行動-觀察”迴圈
這三個元件在一個連續的迴圈中協同工作。用程式設計的類比來說,Agent使用了一個**while迴圈**:迴圈持續進行,直到Agent的目標實現為止。
視覺上,它看起來是這樣的

在許多Agent框架中,**規則和準則直接嵌入到系統提示中**,確保每個迴圈都遵循定義的邏輯。
在一個簡化版本中,我們的系統提示可能如下所示

我們在此處看到在系統訊息中定義了
- *Agent的行為*。
- *我們的Agent可以訪問的工具*,正如我們在上一節中所述。
- *“思想-行動-觀察”迴圈*,我們將其融入LLM指令中。
讓我們舉一個小例子來理解這個過程,然後再深入探討過程中的每個步驟。
天氣Agent阿爾弗雷德
我們建立了天氣Agent阿爾弗雷德。
使用者問阿爾弗雷德:“紐約現在天氣怎麼樣?”

阿爾弗雷德的工作是使用天氣API工具回答這個查詢。
迴圈展開如下
思考
內部推理
收到查詢後,阿爾弗雷德的內部對話可能是
“使用者需要紐約的當前天氣資訊。我有一個可以獲取天氣資料的工具。首先,我需要呼叫天氣API來獲取最新詳細資訊。”
這一步顯示Agent將問題分解為多個步驟:首先,收集必要的資料。

行動
工具使用
根據其推理以及阿爾弗雷德對`get_weather`工具的瞭解,阿爾弗雷德準備了一個JSON格式的命令,用於呼叫天氣API工具。例如,它的第一個行動可能是
思考:我需要檢視紐約的當前天氣。
{
"action": "get_weather",
"action_input": {
"location": "New York"
}
}
此處,行動明確指定了要呼叫的工具(例如,get_weather)以及要傳遞的引數(“location”:“New York”)。

觀察
環境反饋
工具呼叫後,阿爾弗雷德收到一個觀察結果。這可能是來自API的原始天氣資料,例如
“紐約當前天氣:區域性多雲,15°C,溼度60%。”

然後將此觀察結果作為附加上下文新增到提示中。它起著現實世界反饋的作用,確認行動是否成功並提供所需的詳細資訊。
更新的思考
反思
得到觀察結果後,阿爾弗雷德更新其內部推理
“既然我已經有了紐約的天氣資料,我就可以為使用者編寫答案了。”

最終行動
阿爾弗雷德然後生成一個按照我們指示格式化的最終響應
思考:我現在有了天氣資料。紐約目前天氣區域性多雲,氣溫15°C,溼度60%。
最終答案:紐約目前天氣區域性多雲,氣溫15°C,溼度60%。
這個最終行動將答案發送回使用者,從而閉合了迴圈。

我們在此示例中看到的內容
- Agent透過迴圈迭代,直到目標實現。
**阿爾弗雷德的過程是週期性的**。它從一個思想開始,然後透過呼叫工具進行行動,最後觀察結果。如果觀察結果表明有錯誤或資料不完整,阿爾弗雷德可以重新進入迴圈以修正其方法。
- 工具整合
呼叫工具(如天氣API)的能力使阿爾弗雷德能夠**超越靜態知識並檢索即時資料**,這是許多AI Agent的一個重要方面。
- 動態適應
每個迴圈都允許Agent將新資訊(觀察結果)融入其推理(思想)中,確保最終答案資訊充分且準確。
這個例子展示了**ReAct迴圈**(我們將在下一節中闡述的概念)背後的核心概念:**思想、行動和觀察的相互作用使AI Agent能夠迭代地解決複雜任務**。
透過理解和應用這些原則,您可以設計出不僅能對其任務進行推理,還能**有效利用外部工具完成任務**的Agent,同時根據環境反饋不斷最佳化其輸出。
現在讓我們更深入地探討思想、行動、觀察作為過程的各個步驟。
< > 在 GitHub 上更新