從零學會 AI agents 的六階段路徑
從概念與第一個迴圈開始,親手建置工具、記憶、迴圈設計與安全性,每個階段完成一項作品,避免 framework 掩蓋關鍵原理。
分成六個階段的學習路徑
若要從零開始學習 AI agents,請依序完成六個階段:概念、第一個迴圈、工具、記憶、迴圈設計與安全性。每個階段都要親手建置一項內容。直接跳到後面的階段,是最常導致學習停滯的原因,因為 framework 會隱藏你真正需要理解的部分。
AI agent 是一個圍繞 language model 的迴圈,而且允許該模型呼叫工具。這句話就是整個主題。後續內容只是在說明迴圈包含哪些部分、工具可以接觸哪些內容,以及迴圈發生錯誤時如何停止。如果你能向他人解釋這個迴圈,就代表你已經學會這項技術。如果你只能說出 framework 的名稱,就還沒有學會。
以下計畫假設你透過建置來學習。讀完一個階段後,建置那個小型元件,刻意讓它發生錯誤,再進入下一個階段。只讀過的階段,不算真正完成。
第 1 階段前實際需要準備的內容
實際的先備條件很少,通常比多數課程頁面列出的還少。
- 你能以撰寫 50 行指令碼的程度讀寫 Python 或 TypeScript。
- 你熟悉 Linux shell:安裝套件、編輯檔案及讀取日誌。
- 你擁有託管模型的 API key,或一台能執行本機模型的機器。
以上就是全部條件。你不需要機器學習理論,也不需要曾經訓練過模型。Agent 的工作不涉及梯度或訓練資料。只有在你決定自行執行模型時,才需要顯示卡;這是另一項技能,之後可以再從 在 VPS 上託管 Ollama 以自行託管 LLM 開始學習。
人們容易低估的是 shell 這一半。Agent 常因權限、路徑、環境變數及無聲結束的程序而失敗。如果看到與 PATH 或檔案模式有關的 stack trace 就想關閉終端機,請先花一個週末學習 Linux 基礎。這能讓你之後少花一個月排查問題。
階段 1:什麼是 agent,以及它不是什麼
先執行一次 API 呼叫,不要加入迴圈。傳送提示、列印回覆,並查看回應中的 token 計數。現在,你已了解成本單位與延遲單位。
接著學習工具使用。這是整個領域中唯一真正的新概念。你要以名稱、說明,以及描述輸入內容的 JSON(JavaScript object notation)schema 向模型描述函式。模型不會執行任何內容,而是回覆結構化要求:使用這些引數呼叫 run_command。你的程式執行該函式,將輸出以訊息傳回,再次向模型提出要求。模型是讀取文字並寫出文字的規劃器。你的程式才是實際執行工作的部分。
chatbot 在一次回覆後結束。agent 會重複這個交換流程,直到模型停止要求使用工具。這種重複就是兩者的全部差異,也因此會產生不同的失敗模式。chatbot 可能只提供一次錯誤答案。agent 則可能根據錯誤答案執行數次操作,直到有人察覺。
第 2 階段:親自撰寫一次迴圈
不要從框架開始。先撰寫約 30 行 Python,讓整體結構由你自己掌握。
sudo apt update && sudo apt install -y python3-venv
python3 -m venv ~/agent
source ~/agent/bin/activate
pip install anthropic
export ANTHROPIC_API_KEY=your-key-hereimport subprocess
import anthropic
client = anthropic.Anthropic()
tools = [{
"name": "run_command",
"description": "Run a read only shell command and return its output.",
"input_schema": {
"type": "object",
"properties": {"command": {"type": "string"}},
"required": ["command"],
},
}]
messages = [{"role": "user", "content": "How much disk space is free here?"}]
while True:
response = client.messages.create(
model="claude-opus-5",
max_tokens=4096,
tools=tools,
messages=messages,
)
if response.stop_reason != "tool_use":
break
messages.append({"role": "assistant", "content": response.content})
results = []
for block in response.content:
if block.type == "tool_use":
done = subprocess.run(
block.input["command"], shell=True,
capture_output=True, text=True, timeout=10,
)
results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": done.stdout or done.stderr,
})
messages.append({"role": "user", "content": results})
print(next(b.text for b in response.content if b.type == "text"))使用 python3 agent.py 執行。正常執行時,會輸出一段列出檔案系統及其可用空間的文字。這是因為模型要求 df -h,你的程式執行了該命令,第二次傳遞再將表格轉換成句子。如果沒有輸出,表示迴圈在收到文字區塊前就已結束。在迴圈內加入 print(response.stop_reason),觀察這些值如何變化。
接著刻意讓程式失敗。刪除 tool_use_id 那一行並讀取錯誤訊息,因為沒有相符 id 的工具結果會遭 API 拒絕,這也是初學者最常遇到的錯誤。提出需要執行 2 個命令的問題,觀察迴圈執行 2 次。再提出無法完成的問題,觀察它是放棄,還是無限迴圈。
請注意這個範例的一項風險。它會使用 shell=True,直接將模型輸出傳入 shell。在可重建的測試機器上這樣做可以接受,但在其他環境中不應如此。第 6 階段會處理這個問題。迴圈背後的概念會在 在 VPS 上建立自己的 AI agent 中進一步說明。
階段 3:代理程式原本沒有的工具
您的 run_command 工具可以運作,但真正的代理程式需要能存取外部系統的工具,例如工單系統、資料庫或程式碼儲存庫。針對每個服務、每個代理程式各自撰寫專用 wrapper,無法擴充。
Model Context Protocol (MCP) 是業界採用的解決方案。MCP server 會透過標準傳輸方式公開一組工具,任何支援 MCP 的代理程式都能使用,無須撰寫自訂整合程式。參考用的 filesystem server 只需一個 command:
npx -y @modelcontextprotocol/server-filesystem /home/you/projects這需要先安裝 Node,而 directory argument 是 server 唯一能存取的路徑。這就是縮小版的安全模型:由 server 決定界線,而不是由 model 決定。將 client 指向該 server 後,代理程式即可讀寫檔案,這些功能不需要由您自行撰寫。如何在 service account 下正確執行這些 server,以及 transport 選項的說明,請參閱 在 VPS 上執行 MCP server,供 AI coding agent 使用。
本階段的重點是,工具設計才是真正的工作。描述過於模糊,model 就會自行猜測。工具若回傳 40000 個字元,會耗損 context window。能夠刪除內容的工具,最終一定會刪除內容。
第 4 階段:記憶,基本上就是檔案
初學者在這裡通常會直接使用向量資料庫。先不要這麼做,至少目前不要。
Agent 在不同呼叫之間不會保留記憶。每次都要重新傳送完整對話,因此長工作階段的每次互動成本會高於短工作階段。記憶因此分成兩個問題。第一個問題是目前內容能否放入 context window。你可以透過摘要、刪減較早的工具輸出,以及快取 prompt 中穩定不變的前綴來管理,讓這部分的成本降至原本的一小部分。第二個問題是重新啟動後仍能保留哪些內容,這就需要儲存空間。
針對第二個問題,在幾乎所有第一個專案中,讓 Agent 讀寫一個普通的 Markdown 檔案,都比使用向量資料庫更合適。提供一個檔案,指定檔案格式,要求 Agent 在開始前讀取該檔案,並在學到新資訊時更新它。這樣就能取得大部分效益,也可以直接開啟檔案,查看 Agent 的認知內容。等到筆記無法再放入 context window 時,再使用 embeddings 與 retrieval;不要更早採用。
階段 5:迴圈就是產品
到目前為止,你已經能建立一個在你監看時正常運作的代理程式。階段 5 的目標,是讓它在你不介入時也能正常運作。
有 4 個問題決定無人值守的代理程式是否能安全地獨立執行。什麼會觸發它,才能避免它在沒有任務時執行。它的操作範圍是什麼,才能讓錯誤維持在有限範圍內。如何驗證結果,因為讓代理程式自行評分,就等於保證它每次都通過。什麼預算能限制它,包括 token 數量或實際經過時間。刻意設計這 4 個要素,就是 迴圈工程,以及這項定義涵蓋的內容所描述的實務。
練習:取用第 2 階段的代理程式,交給它一項需要 4 或 5 個步驟的工作,並加入嚴格的迭代上限。接著移除上限,觀察無限迴圈如何增加你的 token 費用。先用小額預算執行 1 次,避免日後不慎在大額預算上執行。
階段 6:安全性、機密資料與成本
此階段不可省略。之所以最後處理,只是因為必須先建立可運作的系統,才能實際感受到風險。
讓 agent 使用專用的非特權使用者執行。絕不要使用 root 或你自己的帳號,這樣即使發生問題,影響範圍也會限制在目錄,而不是整台機器。不要讓模型接觸憑證,因為放入 context window 的任何內容,都可能透過工具呼叫被原樣引用出去。解決方式是採用具明確範圍且存留時間短的 token,並交由 helper 處理,詳見 避免讓 AI agent 接觸機密資料。設定明確的支出上限,因為無人監看的迴圈會在每次迭代產生費用;維持成本可控的上限設定與批次處理方式,詳見 永遠在線 VPS 上的 AI agent 成本控管。
成本需要一個具體數字。截至 July 2026,Claude Opus 5 的費用為每 million 個 input tokens $5,以及每 million 個 output tokens $25。反覆傳送不斷增加的對話內容,可能讓一個任務處理幾 hundred thousand 個 tokens。Prompt caching 和在例行步驟使用較小的模型,對成本計算的影響遠大於任何 prompt 微調。
Prompt injection 也屬於此處必須處理的問題。如果 agent 會讀取網頁、issue tracker 或 inbox,撰寫這些文字的人也同時在對 agent 撰寫指示。防禦方式不是使用更複雜的 system prompt,而是設定邊界。因為無法刪除 repository 的 agent,不會被話術誘導去刪除 repository。
該遵循哪一份學習路線?
選定一套課程並完成,不要同時取樣六套課程。Microsoft ai-agents-for-beginners repository 是最完整的免費資源,包含 18 堂課程;截至 2026 年 7 月,已獲得超過 70,000 顆 stars,且能清楚對應前述階段。熱門 agent repository 的整理文章有助於了解有哪些專案,但不適合作為課程大綱,因為依 stars 排序代表的是熱門程度,而不是教學順序。
需要實際專案練習時,coding agent 是最適合的起點:回饋立即可見、工具明確,而且錯誤容易復原。在 VPS 上執行 coding AI agent 會完整示範一個案例。如果你想研究現成系統,而不是從零開始建置,最佳的自架 AI agent 中的比較會說明多個專案如何以不同方式實作相同的迴圈。
需要多久?
對於已經具備程式設計經驗的人來說,第 1 和第 2 階段一個晚上就能完成。第 3 階段需要一個週末,其中大部分時間會花在工具說明,而不是通訊協定上。第 4 和第 5 階段需要幾週的實際使用,因為只有觀察代理程式忘記內容,才能了解它會忘記什麼。第 6 階段不會真正結束,因為每次授予新的功能,都會重新開啟這項工作。
持續利用晚間時間投入 2 個月,大多數人就能建立可運作、範圍受限且實用的代理程式。花費 1 年的人,通常是持續閱讀而沒有動手建立的人。
FAQ
建立 AI agent 需要了解機器學習嗎?
不需要。建立 agent 是透過 API 呼叫模型,並將模型的工具請求連接至實際函式,這屬於一般的應用程式開發。您不需要處理訓練、梯度或資料集。決定 agent 能否正常運作的技能包括工具的 schema 設計、錯誤處理及 Linux 權限。只有在您進一步微調模型時,機器學習理論才會變得重要;那是另一種工作,也需要不同的先備條件。
我應該一開始就使用 LangChain 或 CrewAI 之類的 framework 嗎?
先撰寫一個原始迴圈,再採用 framework。framework 會用設定物件取代第 2 階段的 30 行程式碼;當您了解它取代了什麼之後,這很方便,但在此之前反而容易造成混淆。agent 發生異常時,您必須直接分析訊息清單與工具結果;如果從未看過這些內容,處理起來會困難得多。先自行完成一個迴圈後,framework 才能節省時間,而不是掩蓋運作機制。
學習 AI agent 需要多少費用?
如果設定上限,費用會低於多數人的預期。一組託管 API key 和一台小型 VPS,就能涵蓋這 6 個階段的所有需求。真正的風險不是每小時的費率,而是無限制的迴圈在您睡覺時持續執行每次迭代並產生費用。從第 1 天起,就在 API 帳戶設定明確的支出上限,為您撰寫的每個迴圈加入迭代次數上限,並在例行步驟使用較便宜的模型。在本機執行模型可以免除 token 費用,但會改由硬體需求取代。
AI agent 與 chatbot 有什麼差異?
chatbot 只回答一次。agent 會重複執行一個循環:模型要求使用工具,您的程式碼執行該工具,結果傳回模型,接著由模型決定下一步。這種重複執行讓 agent 能完成包含多個步驟的工作,也因此 agent 需要 chatbot 不需要的界線。chatbot 回答錯誤時,結果是一段錯誤的文字。agent 回答錯誤時,結果是一段錯誤的文字,加上它針對該回答所執行的動作。