智慧體課程文件
什麼是 Agent?
並獲得增強的文件體驗
開始使用
什麼是 Agent?

學完本節後,你將對 Agent 及其在人工智慧中的各種應用有充分的理解。
為了解釋什麼是 Agent,讓我們先從一個類比開始。
大局:Agent Alfred
認識一下 Alfred。Alfred 是一個 Agent。

想象一下 Alfred 收到一個指令,例如:“Alfred,請給我一杯咖啡。”

因為 Alfred 理解自然語言,他很快就明白了我們的請求。
在執行訂單之前,Alfred 會進行 推理和規劃,找出他需要執行的步驟和工具:
- 去廚房
- 使用咖啡機
- 沖泡咖啡
- 把咖啡帶回來

一旦他有了計劃,他 就必須行動。為了執行他的計劃,他可以使用他所知道的工具列表中的工具。
在這種情況下,為了製作咖啡,他使用咖啡機。他啟動咖啡機來沖泡咖啡。

最後,Alfred 把剛衝好的咖啡端給我們。

這就是 Agent:一個 能夠推理、規劃並與其環境互動的 AI 模型。
我們稱之為 Agent,因為它具有“能動性”(agency),即它具有與環境互動的能力。

我們來更正式地定義
現在你已經有了大局觀,下面是一個更精確的定義
Agent 是一個利用 AI 模型與環境互動以實現使用者定義目標的系統。它結合了推理、規劃和行動的執行(通常透過外部工具)來完成任務。
將 Agent 視為包含兩個主要部分:
- 大腦(AI 模型)
這裡是所有思考發生的地方。AI 模型 處理推理和規劃。它根據情況 決定採取哪些行動。
- 身體(能力和工具)
這部分代表 Agent 能夠執行的一切。
可能行動的範圍 取決於 Agent 配備了什麼。例如,因為人類沒有翅膀,他們不能執行“飛”這個 行動,但他們可以執行“走”、“跑”、“跳”、“抓”等 行動。
“能動性”的範圍
根據這個定義,Agent 存在於一個能動性不斷增加的連續光譜上
代理能力等級 | 描述 | 名稱 | 示例模式 |
---|---|---|---|
☆☆☆ | Agent 輸出對程式流程沒有影響 | 簡單處理器 | process_llm_output(llm_response) |
★☆☆ | Agent 輸出決定基本控制流 | 路由器 | if llm_decision(): path_a() else: path_b() |
★★☆ | Agent 輸出決定函式執行 | 工具呼叫者 | run_function(llm_chosen_tool, llm_chosen_args) |
★★★ | Agent 輸出控制迭代和程式繼續 | 多步智慧體 | while llm_should_continue(): execute_next_step() |
★★★ | 一個代理工作流可以啟動另一個代理工作流 | 多智慧體 | if llm_trigger(): execute_agent() |
表格來自 smolagents 概念指南。
我們使用哪種型別的 AI 模型來構建 Agent?
Agent 中最常見的 AI 模型是 LLM(大型語言模型),它以 文字 作為輸入並輸出 文字。
著名的例子有 OpenAI 的 GPT4、Meta 的 Llama、Google 的 Gemini 等。這些模型在大量的文字上進行訓練,並且能夠很好地泛化。我們將在下一節中瞭解更多關於 LLM 的資訊。
AI 如何對其環境採取行動?
LLM 是很棒的模型,但 它們只能生成文字。
然而,如果你要求 HuggingChat 或 ChatGPT 等知名聊天應用程式生成影像,它們可以做到!這怎麼可能呢?
答案是,HuggingChat、ChatGPT 和類似應用程式的開發者實現了額外的功能(稱為 工具),LLM 可以使用這些工具來建立影像。

我們將在 工具 部分了解更多關於工具的資訊。
Agent 可以執行哪些型別的任務?
Agent 可以透過 工具 執行我們實現的任何任務來完成 行動。
例如,如果我編寫一個 Agent 作為我在電腦上的個人助理(像 Siri),我要求它“給我的經理傳送一封郵件,要求推遲今天的會議”,我可以給它一些傳送郵件的程式碼。這將是一個 Agent 可以在需要傳送郵件時使用的新工具。我們可以用 Python 編寫它
def send_message_to(recipient, message):
"""Useful to send an e-mail message to a recipient"""
...
正如我們將看到的,LLM 將在需要時生成程式碼來執行該工具,從而完成所需的任務。
send_message_to("Manager", "Can we postpone today's meeting?")
工具的設計非常重要,對 Agent 的質量有很大影響。有些任務需要非常特定的工具來製作,而另一些任務可能使用“網路搜尋”等通用工具來解決。
請注意,行動與工具不同。例如,一個行動可能涉及使用多個工具才能完成。
允許 Agent 與其環境互動 實現了公司和個人的實際應用。
示例 1:個人虛擬助理
Siri、Alexa 或 Google Assistant 等虛擬助理在代表使用者與數字環境互動時,就充當 Agent 的角色。
它們接收使用者查詢,分析上下文,從資料庫中檢索資訊,並提供響應或啟動操作(如設定提醒、傳送訊息或控制智慧裝置)。
示例 2:客戶服務聊天機器人
許多公司部署聊天機器人作為 Agent,以自然語言與客戶互動。
這些 Agent 可以回答問題,引導使用者完成故障排除步驟,在內部資料庫中開啟問題,甚至完成交易。
它們的預定義目標可能包括提高使用者滿意度、縮短等待時間或提高銷售轉化率。透過直接與客戶互動、從對話中學習並隨著時間的推移調整其響應,它們展示了 Agent 在行動中的核心原則。
示例 3:影片遊戲中的 AI 非玩家角色
由 LLM 提供支援的 AI Agent 可以使非玩家角色(NPC)更具動態性和不可預測性。
它們不再遵循僵化的行為樹,而是可以 根據上下文做出響應,適應玩家互動,並生成更細緻的對話。這種靈活性有助於建立更逼真、更引人入勝的角色,這些角色隨著玩家的行動而演變。
總而言之,Agent 是一個使用 AI 模型(通常是 LLM)作為其核心推理引擎的系統,用於:
理解自然語言: 以有意義的方式解釋和響應人類指令。
推理和規劃: 分析資訊,做出決策,並制定策略來解決問題。
與環境互動: 收集資訊,採取行動,並觀察這些行動的結果。
現在你對 Agent 有了紮實的理解,讓我們透過一個簡短的、不計分的測驗來鞏固你的理解。之後,我們將深入探討“Agent 的大腦”:LLM。
< > 在 GitHub 上更新