各種工具的使用方法
第 4 章我們讓 Agent 用工具,第 5、6 章我們造了工作流。這一章把兩個世界打通:工具在 Agent 與 Workflow 中的不同用法、把你自己的工作流變成工具、以及用一份 OpenAPI 文件把任何 API 變成 Dify 工具。
本章目標
- 要學什麼
- 了解各種工具的用法並靈活應用
- 學會的技能
- Agent 與 Workflow 中工具使用的差異、工作流工具化、自訂工具(OpenAPI/Swagger)製作基礎
- 能做出什麼
- Web 瀏覽應用、可重複使用的工具庫、串接公司內部 API 的自訂工具
7.1同一個工具,兩種用法
| 在 Agent 中 | 在 Workflow 中 | |
|---|---|---|
| 誰決定何時用 | 模型自己判斷(自主) | 你在畫布上固定位置(確定) |
| 參數怎麼填 | 模型從對話中推斷 | 你指定變數對應 |
| 適合 | 開放式任務、對話式服務 | 定型流程中的固定步驟 |
| 風險 | 可能不用、用錯工具 | 無彈性,但 100% 可預期 |
重點
選擇心法:「流程已知用 Workflow 節點、流程未知交給 Agent」。例如「每天摘要固定格式的報表」用 Workflow 的工具節點;「幫使用者查任何想查的事」交給 Agent 自由發揮。第 4 章的 DuckDuckGo/Wikipedia 就是 Agent 用法;第 6 章天氣速報的 HTTP 節點本質上是 Workflow 的「手動工具」。
選擇心法:「流程已知用 Workflow 節點、流程未知交給 Agent」。例如「每天摘要固定格式的報表」用 Workflow 的工具節點;「幫使用者查任何想查的事」交給 Agent 自由發揮。第 4 章的 DuckDuckGo/Wikipedia 就是 Agent 用法;第 6 章天氣速報的 HTTP 節點本質上是 Workflow 的「手動工具」。
7.2Web 瀏覽與 Code Interpreter
7.2.1Web 瀏覽
兩條路線,第 4 章都鋪好了:
- Agent 版:掛上 DuckDuckGo(免金鑰)或 Tavily、Jina Reader(需金鑰、品質更高)等搜尋工具,Agent 自己決定搜什麼。
- Workflow 版:在流程中加入「工具」節點選擇搜尋工具,或像第 6 章那樣用 HTTP 請求節點直接抓網頁,搜尋詞由上游變數固定傳入。
7.2.2Code Interpreter
節點面板「工具」分頁內建 Code Interpreter(Dify 官方),可以讓 LLM 生成程式碼並在沙箱中執行——「算出這份資料的標準差」這類問題,模型寫 Python 算出來,比直接心算可靠得多。在 Workflow 中則常用「參數提取器 → 程式碼執行 → 模板轉換」的組合達成一樣的效果(回顧第 6 章伍、柒、捌之型)。
7.3把工作流變成工具:一次打造,處處使用
這是本章最重要的技巧。第 6 章做的「天氣速報」工作流,可以包裝成一個工具,讓所有 Agent 和其他工作流呼叫:
- 打開工作流,按「發佈」下拉選單中選「工作流程作為工具」。
- 填寫工具資訊工具名稱(天氣速報)、機器識別名稱(
get_city_weather)、描述(「查詢指定城市的即時天氣」)。描述寫得越清楚,Agent 越知道何時該用它。 - 設定參數說明工作流的輸入欄位
city自動成為工具參數,補上說明「城市的英文名稱,例如 Taipei、Tokyo」。 - 儲存完成!
小技巧
這個模式的威力在於分層:把常用的複雜流程(查天氣、查庫存、產報價單)做成工具,上層的 Agent 或主工作流只要「呼叫」即可。改版時只改工具內部,所有使用者自動生效——這就是 AI 應用的模組化。
這個模式的威力在於分層:把常用的複雜流程(查天氣、查庫存、產報價單)做成工具,上層的 Agent 或主工作流只要「呼叫」即可。改版時只改工具內部,所有使用者自動生效——這就是 AI 應用的模組化。
7.4自訂工具:一份 OpenAPI 文件接入任何 API
公司內部系統、第三方服務,只要有 HTTP API,就能包成 Dify 工具。位置在「集成 → 工具 → Swagger API 作為工具」:
OpenAPI 規格中最重要的三個部分:
servers.url—— API 的基底網址,Dify 實際請求的目標。paths裡每個端點的operationId與summary—— 這是模型「認識」工具的名字與說明,寫得語意清楚,Agent 才會正確選用。parameters / requestBody的欄位描述 —— 模型填參數的依據。
注意
自訂工具等於把 API 的呼叫權交給了模型。務必:金鑰用鑑權欄位保存(不要寫進描述)、正式環境先從唯讀 API 開始、破壞性操作(刪除、付款)不要輕易做成工具。
自訂工具等於把 API 的呼叫權交給了模型。務必:金鑰用鑑權欄位保存(不要寫進描述)、正式環境先從唯讀 API 開始、破壞性操作(刪除、付款)不要輕易做成工具。
7.5創造的三大心法
- 用「型」打好基礎——第 6 章的十二之型是骨架,先能徒手組流程。
- 用工具拓展可能性——內建工具、Marketplace、工作流工具化、OpenAPI 自訂,四個來源由近到遠。
- 靈活區分使用手法——同一能力在 Agent(自主)與 Workflow(確定)中的取捨,依業務的容錯度決定。
7.6本章回顧
- 工具的兩種用法:Agent 自主呼叫 vs. Workflow 固定節點。
- 「發佈 → 工作流程作為工具」讓流程模組化,一次打造處處使用;工具描述是給 Agent 的使用說明書。
- OpenAPI/Swagger 規格可以把任何 HTTP API 匯入為自訂工具,注意鑑權與權限控制。
到此為止,「單次執行」的武器已經齊全。下一章回到對話的世界——把工作流的力量裝進多輪對話裡,這就是聊天流(Chatflow)。