工具使用與第一個 Agent Loop
「模型怎麼安全呼叫工具並重複下一步?」
完成後你能:做出有最大輪數、會驗證參數的 Agent Loop。
📌 學習目標
- 說出 schema → call → execute → result → answer 五個步驟。
- 定義一個工具,檢查參數,再安全地執行對應函式。
- 不靠 framework,寫出有次數上限和停止條件的 Agent Loop。
- 分清 Function Calling 與 Structured Output,不再把兩者當成同一件事。
- 用固定題目比較 schema 或模型,而不是靠一次結果下結論。
進入條件
你能執行一個 Python 檔、看懂 function 與 dict,並完成 Stage 0–2,就可以開始。環境還沒好時,先回 Stage 0。
🧭 本站課程
按建議順序讀;勾選結果與 /learn 課程頁共用同一份瀏覽器進度。- 01第一次呼叫 LLM API:Token、計費與常見錯誤
用 Python 的 openai SDK 發出第一個 LLM 請求:搞懂 system、user、assistant 三種訊息角色的分工,temperature、max_tokens 與串流輸出的取捨,以及 token 計費概念與用量估算方法,最後整理新手必遇錯誤的排查步驟。
21 分鐘 - 02按下 Enter 之後:從 0.03 秒到 0.85 秒,你的問題經歷了什麼
用一次真實的 API 呼叫拆解一個提問的完整鏈路:建立連線 35 毫秒、切詞微秒級、模型讀完整段問題 474 毫秒、逐字生成 380 毫秒——總計 854 毫秒。附完整可重現的量測方法,以及一個反直覺的結論:96% 的時間不在網絡,而在模型裡面。
14 分鐘 - 03Function Calling 入門:讓 LLM 真正使用工具
講清楚主流 LLM API 的 Function Calling 機制:工具 JSON Schema 怎麼寫、模型如何決定要不要呼叫工具、tool_choice 強制呼叫與平行呼叫怎麼用,附上完整可執行範例,以及工具描述寫法如何決定呼叫品質的實務技巧。
26 分鐘 - 04你的第一個 Agent:一個會用工具的 Hello World
不用任何框架,手寫一個真的會做事的 Agent:會查天氣、會算數學、自己循環到任務完成為止。逐步拆解 Agent 循環的六個步驟、終止條件與常見踩坑,寫完你就懂框架替你做了什麼。
28 分鐘 - 05MCP (Model Context Protocol) 生態詳解:Tool、Resource、Prompt 三大原語
Anthropic MCP 協議完整指南:工具 (Tool)、資源 (Resource)、提示模板 (Prompt) 的設計原理、實戰配置、以及 Claude Code 整合。
10 分鐘 - 067 大 AI Agent 循環工程架構終極對比:從 while(true) 到多智能體編排
對比 Claude Code、Cursor、Aider、Cline、SWE-agent、OpenHands 及我們自建的 Loop Engineering 七種智能體循環架構。涵蓋循環形狀、工具執行、上下文管理、錯誤恢復、驗證機制五大維度。
35 分鐘 - 07三層 Agent 協同框架:Hermes → OpenClaw → Claude Code 架構詳解
深入解析基於 Hermes Agent、OpenClaw、Claude Code 的三層 AI Agent 協同架構:每一層的職責、通訊機制、以及為什麼這樣分層設計。
6 分鐘
⚠️ 寫第一個 Agent 前的五條底線
- 1.只執行 allowlist 裡的工具,不用模型輸出的名字做任意函式呼叫。
- 2.把工具參數當成不可信輸入;先檢查型別、範圍和權限。
- 3.工具只拿完成任務需要的最小權限。
- 4.刪除、付款、寄信等高風險動作,執行前要讓人確認。
- 5.設定最大輪數、timeout 和費用上限;不能讓 Agent 無限繞圈。
📚 必修閱讀
- 1.Ollama — Tool Calling⭐⭐⭐⭐⭐先看 single tool 與 multi-turn loop。
- 2.Anthropic — How Tool Use Works⭐⭐⭐⭐⭐看清楚模型、應用程式和 tool result 各自負責什麼。
- 3.ReAct paper⭐⭐⭐⭐先讀 abstract;知道 Reasoning + Acting 的來源,不必一次讀完公式。
🎯 精選資源
| 資源 | 適合誰 | 推薦度 | 為什麼推薦 |
|---|---|---|---|
官方文件 Anthropic — Handle Tool Calls | 所有讀者 | ⭐⭐⭐⭐⭐ | 看 call ID、result 與 is_error 怎麼對回原請求。 |
官方文件 OpenAI — Function Calling | 用 OpenAI 路徑時 | ⭐⭐⭐⭐ | 比較 function schema 與 strict mode。 |
官方課程與範例 Anthropic Courses — Tool Use | 想跟著 notebook 做 | ⭐⭐⭐⭐ | 做 Tool Use notebook,從單工具讀到平行工具。 |
官方課程與範例 Anthropic Tool Use Cookbook | 練習後想看完整應用 | ⭐⭐⭐⭐⭐ | 看完整應用怎麼接工具。 |
官方課程與範例 Anthropic Quickstarts | 要快速起一個能跑的骨架 | ⭐⭐⭐⭐ | 維護中;MIT。 |
官方課程與範例 Microsoft AI Agents for Beginners | 需要另一條完整課程時 | ⭐⭐⭐ | 選讀一章即可。 |
從零實作 pguso/ai-agents-from-scratch | 練習 3 做完後 | ⭐⭐⭐⭐ | 用 Ollama 對照練習 3 的 loop。 |
從零實作 mattambrogi/agent-implementation | 想逐行讀一個最小教學玩具 | ⭐⭐ | 歷史參考(最後 push 2024-01)。 |
Framework 對照 Hugging Face Smolagents | 完成 JSON-tool loop 之後 | ⭐⭐⭐⭐ | 比較 CodeAct 與自己寫的 loop。 |
Framework 對照 LangChain ReAct Agent | 想看 framework 怎麼包住自己寫的 loop | ⭐⭐⭐ | 維護中;MIT。 |
中文章節式教材 datawhalechina/hello-agents | 需要完整中文章節 | ⭐⭐⭐⭐⭐ | 走這條主線,配合 jjyaoao/HelloAgents 跑程式。 |
Structured Output 工具 567-labs/instructor | 想用 typed model、驗證與 retry | ⭐⭐⭐⭐ | 原 jxnl/instructor 已轉址;MIT。 |
Structured Output 工具 dottxt-ai/outlines | 想研究本機 constrained decoding | ⭐⭐⭐⭐ | 維護中;Apache-2.0。 |
🛠 動手練習(官方版)
完整練習與 starter code練習摘要取自上游教材;完整程式碼、成本與延遲估算見官方版。
- 練習 1:Function Calling — 一個工具、一次呼叫,看見 Tool Call → 執行 → Tool Result 的完整來回(Ollama 本機路徑 API 費 $0)。
- 練習 2:多工具選擇 — 模型在 calculator 與 get_weather 之間選擇,程式只派發 allowlist 內的名稱。
- 練習 3:從零實作 ReAct — 不用 framework,寫出有 MAX_STEPS 上限的 13 行 Agent Loop;先跑不需要金鑰的 mock test。
- 練習 4:多步驟推理 — 查台北溫度再換算華氏,觀察每一步的 call ID 與結果如何接續。
- 練習 5:錯誤處理 — 可以讓模型修正的工具錯誤送回去;transport、解析或超出上限的錯誤明確停止。
- 練習 6:Schema 設計 — 用同一組題目比較壞 schema 與好 schema,指出描述、欄位、enum 或限制哪裡改善。
- 推薦小專案:安全的天氣小幫手 — 串起練習 1–6,只保留兩個只讀工具,加入 allowlist、參數驗證、MAX_STEPS 與五題 eval。
✅ 自我檢查
- 我能用自己的話說出 schema → call → execute → result → answer。
- 我能分清 Tool Call、Tool Result 與 Structured Output。
- 我的程式只派發 allowlist 工具,會驗證參數,也有 MAX_STEPS。
- 我跑過練習 1–3,並看過至少一次成功和一次錯誤路徑。
- 我比較模型或 schema 時使用同一組題目與明確分數。
本站點改編自 awesome-agentic-ai-zh(MIT 授權,作者 Wenyu Chiou)v2026.09.23,資源連結查核日 2026-08-27。星級為學習優先順序(⭐⭐⭐⭐⭐=不看會卡住),非人氣排名。 MIT License · 課程結構最後更新:2026-10-03。內容持續補齊中,標記「撰寫中」的課程尚未上線。