← 回到學習地圖
D

開發者線

支線・轉乘站 R4(R4 之後解鎖)

給公司裡「想變成內部 AI 工程師」的人。從 API 基礎到自動報表、客服系統、業務機器人。

沿線各站

API 基礎 Tool Use RAG 檢索 Prompt 評估 Agents 與工作流

各站詳解

每一站先給重點(讀這個就夠用);想深入的話,展開看完整說明與實作步驟

01

API 基礎:讓程式直接呼叫 Claude

API(應用程式介面)就是讓你的程式碼直接跟 Claude 講話的管道——不用開聊天視窗、不用手動貼上,你的系統可以一天呼叫 Claude 幾千次。學會這一站,你就能從「人坐在對話框前面操作」畢業到「寫一次程式、讓它自動跑」,這是所有自動化的起點。

  • API key 是你程式的通行證,等於帳號密碼——絕不能寫死在程式碼裡或傳上 GitHub,要放在環境變數
  • Claude 的對話是一個 messages 陣列,每則訊息有 role(user 或 assistant)和 content;多輪對話就是把歷史一起送回去。
  • system prompt(系統提示)是設定 Claude「角色與規矩」的地方,跟 messages 分開放,適合放「你是客服助理、只回答產品問題」這種全域指令。
  • 模型分三檔:Haiku(快又便宜、適合大量簡單任務)、Sonnet(均衡、日常主力)、Opus(最聰明、處理複雜推理)——按任務難度選,別全用最貴的。
  • streaming(串流)讓回應一個字一個字吐出來,使用者體驗像打字機,不用乾等一整段生成完。
深入研讀 · 實作步驟 收合

先講為什麼要學這個。你在聊天視窗裡跟 Claude 一來一回,是「人在操作」;一次只能處理一件事,而且要有人坐在那裡。API 的意義是:你寫一段程式碼,裡面包含「呼叫 Claude」這個動作,然後這段程式碼可以被排程每天自動跑、可以接在你的客服後台後面、可以一秒鐘被觸發幾百次。舉例:絲萬萬每天進來上百則客戶訊息,如果用聊天視窗一則一則貼進去分類,要一個人做一整個早上;用 API,你寫一次「把訊息丟給 Claude,請它回傳分類」的程式,之後每則訊息自動跑完,人只需要看結果。這就是「從對話框畢業」的真正意義。

技術上,呼叫 Claude 就是對它的伺服器發一個 HTTP 請求(網路上程式互相溝通的標準方式),內容主要是一個 messages 陣列。每一則訊息長這樣:{ role: "user", content: "幫我分類這則訊息" }。Claude 回你的也是一則訊息,roleassistant。要做多輪對話(讓 Claude 記得前面講過什麼),你就把整段歷史——user、assistant、user……——照順序全部再送一次。這裡有個關鍵觀念:API 本身沒有記憶,每次呼叫都是全新的,「記憶」是你自己把歷史帶上去做出來的。

system prompt 是另一個獨立欄位,專門放「Claude 的身分與規矩」,例如「你是牙醫診所的預約助理,語氣親切,只回答看診相關問題,不確定就請對方留電話」。它跟一般 messages 分開,好處是這些規矩會穩定套用在整段對話,不會被使用者的訊息淹沒。這是你把「公司規矩」寫進系統最重要的地方。另外幾個常用參數:max_tokens 限制回應長度(token 是 AI 計算文字的單位,大約 1 個中文字約等於 1 到 2 個 token);temperature 控制發散程度(0 最穩定、適合分類與抽取;高一點適合寫文案發想);stop_sequences 讓 Claude 遇到指定字串就停。

選模型是最直接影響成本的決定。Claude 家族大致分三檔:Haiku 最快最便宜,適合「量大但單純」的任務,像客服訊息分類、標籤標註;Sonnet 是均衡主力,日常大多數工作用它;Opus 最強、也最貴,留給需要多步推理、複雜判斷的任務。中小企業最常犯的錯是全部用最貴的模型燒錢——正確做法是先用便宜的試,品質不夠再往上升。最後,streaming 適合有真人在等回應的場景(像即時客服機器人),讓文字邊生成邊顯示,體感快很多;如果是背景自動跑的批次任務(像半夜生報表),沒人在看,就不需要串流。

實作步驟

  1. 申請 API key 並安全存放 到 Anthropic Console(console.anthropic.com)建立 API key,複製後立刻存進環境變數,例如在專案放一個 .env 檔寫 ANTHROPIC_API_KEY=sk-...,並把 .env 加進 .gitignore。永遠不要把 key 直接寫在程式碼裡。
  2. 安裝官方 SDK SDK(官方套件)幫你包好所有網路細節。Python 用 pip install anthropic,Node.js 用 npm install @anthropic-ai/sdk。之後幾行就能發出第一個請求。
  3. 發出第一個請求 建立 client,呼叫 messages.create,帶入 modelmax_tokensmessages(一個含 rolecontent 的陣列)。跑起來你就會拿到 Claude 回傳的文字——這就是把聊天視窗換成程式碼的那一刻。
  4. 加上 system prompt 定義角色 在請求裡加 system 欄位,寫清楚 Claude 的身分與規矩(「你是報表助理,只輸出表格、不加任何客套話」)。把公司規矩集中放這裡,比每則訊息都重講一次更穩定。
  5. 選對模型、控好成本 先估任務難度:分類、抽取、標籤這類用 Haiku;一般生成與改寫用 Sonnet;複雜推理才上 Opus。上線前用少量真實資料各跑一輪,比較品質與花費再定案。
  6. 需要即時體感就開 streaming 有真人在等的場景(客服、聊天機器人)用串流模式,讓回應邊生成邊顯示;背景批次任務不用。

常見踩雷

  • 把 API key 寫死在程式碼裡或推上 GitHub——等於把公司信用卡貼在公佈欄,會被盜用燒錢。
  • 以為 API 有記憶——它沒有,每次呼叫都要自己把對話歷史帶上去。
  • 所有任務都用最貴的模型——量大的簡單任務用 Haiku 可以省下大筆費用。
  • max_tokens 設太小導致回應被硬切斷,或設太大讓成本失控。

深入來源:anthropics/courses・Anthropic API Fundamentals(CC BY-NC 4.0)

02

Tool Use:讓 Claude 呼叫你的功能

Tool Use(工具使用,也叫 function calling)讓 Claude 不只會講話,還能「呼叫你寫好的功能」——查即時庫存、寄 email、寫進資料庫、打別家的 API。你把功能的說明書交給 Claude,它判斷什麼時候該用、該帶什麼參數,你的程式負責實際執行再把結果回傳。這是把 Claude 從「聊天機器人」變成「會辦事的員工」的關鍵。

  • 純語言模型只會「生成文字」,不會查你的資料庫、不知道今天庫存幾件——Tool Use 就是補上這隻手
  • 你要給每個工具一份 schema(規格說明):name(名字)、description(做什麼、何時用)、input_schema(要哪些參數)。
  • 流程分四步:你定義工具,Claude 決定要用哪個、帶什麼,你的程式實際執行,把結果回傳給 Claude 讓它組成最終回答。
  • 關鍵訊號是 stop_reason:當它等於 tool_use,代表 Claude 要你去執行工具,不是給你最終答案。
  • Claude 不會自己執行任何東西——它只「說出」要呼叫哪個工具,真正的動作(查庫、寄信)永遠是你的程式做,安全邊界握在你手上。
深入研讀 · 實作步驟 收合

先講痛點。Claude 本質是個「文字生成器」——它靠訓練資料學會語言,但它不知道你公司此刻庫存剩幾件、不知道這張訂單的狀態、也沒辦法真的把一封 email 寄出去。官方課程用一個很好懂的例子:Claude 不擅長算大數字,你問它 1984135 乘以 9343116,它可能算錯。與其硬要它算,不如給它一個「計算機工具」,讓它把數字交給你的程式算,再拿正確答案回去。同樣道理搬到生意上:與其讓 Claude 憑空「猜」庫存,不如給它一個「查庫存工具」,它需要時就呼叫,你的程式去資料庫查真數字回傳。這樣 Claude 的回答才會是即時、正確、能負責的。

技術核心是 tool schema——一份給 Claude 看的工具說明書。每個工具要寫三塊:name(工具名,如 get_stock)、description(自然語言說明它做什麼、什麼情況該用它——這塊寫得好不好,直接決定 Claude 會不會在對的時機呼叫它,要當成寫給新同事的操作說明來寫)、input_schema(用 JSON Schema 描述它需要哪些參數,例如「產品編號,字串,必填」)。你把這些工具清單連同使用者的問題一起送給 Claude。

接下來是那個一定要記住的四步流程。第一步,你在請求裡帶上工具清單。第二步,Claude 判斷這題需不需要用工具、要用哪個、該帶什麼參數——如果要用,它回傳的 stop_reason 會是 tool_use,並附上工具名和它填好的參數(例如 get_stock,產品編號=A123)。第三步,你的程式看到 tool_use,就去實際執行——真的連資料庫查 A123 的庫存。第四步,你把查到的結果(例如「剩 12 件」)用一則 tool_result 訊息送回去,Claude 拿到後才組出給客戶看的最終回答(「A123 目前庫存 12 件,可以馬上出貨」)。這一來一回可能發生好幾輪,直到 Claude 不再需要工具、給出最終答案。

兩個進階觀念。第一,tool choice(工具選擇)可以控制 Claude 用工具的方式:預設 auto(它自己判斷要不要用);也可以強制它一定要用某個工具,這在「我就是要它輸出結構化資料」的場景很有用——例如逼它把客訴一律整理成 {類別, 情緒, 急迫度} 的固定格式,這招常被拿來做結構化輸出。第二,你可以一次給它多個工具(查庫存、查物流、寄通知),它會依對話需要,一步步串起來用。最後務必記住那條安全線:Claude 永遠只是「說」要呼叫哪個工具,真正的執行是你的程式。所以危險動作(刪資料、付款、寄信給客戶)你都可以在自己的程式裡加確認、加權限控管——決定權始終在你這邊。

實作步驟

  1. 找出 Claude 需要「一隻手」的地方 盤點你的場景裡有哪些是 Claude 憑空做不到、必須連到真實系統的動作:查即時庫存、查訂單狀態、寫進 CRM、寄通知。這些就是要做成工具的候選。
  2. 為每個工具寫 schema 給每個工具寫 namedescriptioninput_schemadescription 要當成寫給新同事的說明書——講清楚它做什麼、什麼時候該用,Claude 才會在對的時機呼叫。
  3. 把工具清單連同問題送給 Claude messages.create 請求裡加上 tools 參數。Claude 會自行判斷這題需不需要動用工具。
  4. 偵測 stop_reason 並執行工具 檢查回應的 stop_reason。若為 tool_use,取出 Claude 給的工具名與參數,在你自己的程式裡實際執行(查資料庫、呼叫別家 API)。危險動作在這一步加權限與確認。
  5. 用 tool_result 把結果送回去 把執行結果包成一則 tool_result 訊息,接在對話後面再送一次給 Claude,讓它根據真實資料組出最終回答。
  6. 需要固定格式時用 tool choice 強制 若目的是要 Claude 穩定輸出結構化資料(如把每封信整理成固定欄位),用 tool_choice 強制它呼叫指定工具,拿到可靠的 JSON。

常見踩雷

  • description 寫得太隨便——Claude 判斷要不要用工具全看這段,寫不清楚它就會亂用或不用。
  • 以為 Claude 會自己執行工具——它只負責「決定」,實際查庫、寄信都是你的程式做。
  • 沒檢查 stop_reason 就直接當成最終答案——會把「我要用工具」的中間狀態誤當結果。
  • 把危險動作(刪除、付款、對外寄信)直接讓工具無條件執行——一定要在自己程式裡加確認與權限。

深入來源:anthropics/courses・Tool Use(CC BY-NC 4.0)

03

RAG:讓 Claude 根據你的資料回答

RAG(Retrieval-Augmented Generation,檢索增強生成)解決一個大問題:Claude 再聰明,也不知道你公司內部的報價單、SOP、產品規格。RAG 的做法是把你的文件切成小塊、建立索引,使用者問問題時先「檢索」出最相關的幾段,再連同問題一起餵給 Claude 回答。這樣它就能像讀過你所有內部文件一樣,根據真實資料回答,而不是憑空亂編。

  • Claude 不知道你的內部資料,硬問只會一本正經地編(幻覺)——RAG 就是先把對的資料塞給它再讓它答。
  • 標準流程五步:切塊(chunking),做向量(embedding),存進向量資料庫,檢索相關段落,連同問題餵給 Claude
  • embedding(向量)把文字變成一串數字,意思相近的文字數字也相近,所以能用「語意」而不只是「關鍵字」找資料。
  • 檢索有兩種:向量檢索(比語意,問法不同也找得到)與 BM25/關鍵字檢索(比字面,精確詞、料號、型號很強);實務上常兩種併用。
  • 什麼時候該用 RAG:資料量大、會變動、要出處引用時用;如果只是幾百字的固定規則,直接寫進 prompt 反而更簡單。
深入研讀 · 實作步驟 收合

先講這解決什麼生意問題。假設絲萬萬有幾百份東西:報價原則、產品規格、常見客訴的標準回覆、公司政策。新人問「A 方案含不含後續維護?」,你希望有個機器人能秒答。但你不能把幾百份文件全部塞進每一次 prompt——太長、太貴,而且模型能一次讀的量(context window,上下文視窗)有上限。RAG 的聰明之處是:不要每次都給它全部,而是每次只找出跟這個問題最相關的那幾段,再交給 Claude。這樣又省又準,還能附上「這答案出自哪份文件第幾段」,讓人可以查證。

流程第一步是 chunking(切塊):把長文件切成一段一段(例如每 300 到 500 字一塊,段落之間稍微重疊避免切斷語意)。為什麼要切?因為檢索與餵給模型都以「塊」為單位,塊太大會夾帶無關內容、太小又會斷章取義,切得好壞直接影響品質。第二步 embedding(做向量):用一個 embedding 模型把每一塊文字轉成一長串數字(向量)。這串數字的魔法在於——意思接近的文字,數字也會接近。所以「維護費用」和「後續保養收費」就算用字不同,向量也會靠很近。把所有塊的向量存進向量資料庫(如 Pinecone、pgvector、Chroma),就完成了索引。

第三步是使用者提問時的檢索:把問題也轉成向量,去資料庫裡找「數字最接近」的前幾塊(例如取最相關的 3 到 5 塊)。這叫向量檢索,強在能跨越用詞差異抓語意。但它不是萬能——遇到精確的料號、型號、法條編號、人名,字面比對的 BM25/關鍵字檢索反而更準(你搜「A123」就是要一字不差的 A123,不是「語意接近」的東西)。所以成熟的系統常把兩種併用(稱為 hybrid search,混合檢索),再視需要加一層 rerank(重新排序)把最相關的往前挑。第四、五步就回到你熟悉的地方:把檢索到的幾塊文字,連同使用者問題,組成一個 prompt 餵給 Claude,並在 system prompt 交代「只根據我給你的資料回答,資料裡沒有就說不知道,並附出處」——這句話是壓制幻覺的關鍵。

最後也是最重要的判斷:不是每件事都需要 RAG。RAG 有它的建置與維護成本(要切塊、要跑 embedding、要顧向量資料庫)。判斷準則:資料量大(幾十份以上)、會經常變動、需要引用出處、或內容多到塞不進 prompt——這些情況用 RAG。反過來,如果你的「知識」只是一頁固定的公司規則、幾百字而已,直接寫進 system prompt 就好,硬套 RAG 是過度工程。中小企業常見的甜蜜點是:把「常被重複問、但答案就散在幾份內部文件裡」的東西做成 RAG 問答機器人——這正好呼應公司內部的 Majordomo 思路,用機器回答重複問題,人只處理例外。

實作步驟

  1. 盤點並清理要進庫的文件 先挑「會被重複問、答案在文件裡」的內容:SOP、報價原則、產品規格、客訴標準回覆。清掉過期版本——餵進去的是舊資料,答出來就是錯的。
  2. 把文件切塊(chunking) 把長文件切成 300 到 500 字的小塊,段落間稍微重疊避免語意被切斷。表格、條列這類結構盡量整塊保留,別攔腰切。
  3. 為每塊做 embedding 並存進向量資料庫 用 embedding 模型把每塊轉成向量,存進向量資料庫(如 pgvector、Chroma、Pinecone)。這一步做完就有了可被語意搜尋的索引。
  4. 提問時檢索最相關的段落 把使用者問題也轉成向量,取回最相近的 3 到 5 塊。若場景常出現料號、型號、精確名詞,加上 BM25 關鍵字檢索併用,準度更高。
  5. 把檢索結果連同問題餵給 Claude 將檢索到的段落與問題組成 prompt,在 system prompt 明講「只根據提供的資料回答,沒有就說不知道,並附出處」,壓制幻覺、方便查證。
  6. 驗證答案有引用、會拒答 用真實問題測試:答對的要能指出來源段落;資料裡沒有的,要能老實說「查無」,而不是硬編。做不到就回頭調切塊大小或檢索數量。

常見踩雷

  • 塊切太大夾帶無關內容、或太小斷章取義——切塊品質直接決定檢索品質。
  • 只用向量檢索卻要查精確料號/型號——這種場景關鍵字檢索(BM25)反而更準,該併用。
  • 沒在 system prompt 交代「沒有就說不知道」——Claude 會用檢索到的殘料硬湊出看似合理的錯答案。
  • 資料只有幾百字固定規則也硬上 RAG——直接寫進 prompt 更簡單,別過度工程。
  • 文件更新了卻沒重建索引——庫裡還是舊版,答案就跟著錯。

深入來源:Anthropic 官方文件與 Building Effective Agents

04

Prompt 評估:上線前怎麼知道品質穩定

Eval(evaluation,評估)就是幫你的 AI 功能建一套「考卷」:準備一批有標準答案的測試題,讓 prompt 跑一遍,自動打分,看它到底穩不穩。沒有 eval,你只是「試了幾次覺得還行」就上線,之後客戶遇到的錯你根本不知道。要把 AI 功能當產品交出去,eval 是從「感覺可以」升級到「有數據證明可以」的唯一方法。

  • 「試了幾次覺得可以」不算數——你手動試的那幾題,跟真實使用者會問的千奇百怪不一樣。
  • eval 的核心是一份 測試集:一批有代表性的輸入,加上你期望的輸出(標準答案或評分標準)。
  • 兩種打分法:code-based grading(程式打分)——答案能用程式檢查對錯時用(分類對不對、有沒有含關鍵字、格式合不合法)。
  • model-based grading(模型打分,LLM as judge)——答案沒有唯一正解時,用另一個 Claude 當評審,依你給的標準打分(回覆有沒有禮貌、有沒有答到重點)。
  • 改 prompt、換模型、上線前,都先跑一次 eval 比較分數——這樣你才知道改動是變好還是變壞,而不是憑感覺。
深入研讀 · 實作步驟 收合

先講為什麼非做不可。你在聊天視窗把一個客服分類 prompt 試了五、六次,覺得「嗯,很準」,就上線了。問題是:真實客戶一天丟進來的訊息有幾百種講法——有人打錯字、有人中英夾雜、有人一則訊息問三件事。你手動試的那幾題根本蓋不到。結果就是上線後默默錯一堆,你還不知道,直到客戶抱怨。eval 的精神就是把「憑感覺」換成「有一張考卷、有分數」。這在你要把 AI 功能當成產品、對客戶或老闆負責時,是不可跳過的一步。

eval 的第一塊是測試集——一批「輸入加期望輸出」的題目。輸入要盡量涵蓋真實世界的多樣性:正常的、刁鑽的、模稜兩可的、會出錯的邊界案例都要放進去。期望輸出可以是明確的標準答案(這則訊息應該分類為「退款」),也可以是一組評分標準(好的回覆應該:有同理心、給出下一步、不超過三句)。這份測試集一開始不用大,二三十題有代表性的,就比你隨手試五次強太多;之後每次線上出包,就把那個案例補進測試集,讓考卷越來越貼近現實。

第二塊是怎麼打分,官方課程分成兩大類。第一類 code-based grading(程式打分):當答案能用程式客觀判斷對錯時用。例如分類任務——Claude 回「退款」,你的標準答案也是「退款」,程式比對相等就得分;或檢查輸出是不是合法 JSON、有沒有包含必要欄位、字數有沒有超標。這類又快又便宜又客觀,能用就用。第二類 model-based grading(模型打分,也叫 LLM as judge):當答案沒有唯一正解時用——像「這封客訴回覆寫得好不好」沒有標準答案,你就寫一份評分準則,請另一個 Claude 當評審,依準則給分(例如語氣 1 到 5 分、有沒有答到重點 1 到 5 分)。用機器當評審,才能規模化評估幾百題主觀品質。

第三塊是怎麼用進日常。eval 不是上線前跑一次就丟,而是變成你的迴歸測試(regression test):每次你調 prompt、換模型(例如想從 Sonnet 降到便宜的 Haiku 省錢)、或加新功能,都先讓整份測試集跑一遍,比較分數。分數上升代表改對了;掉了代表你改壞了、該回退。這樣你做每個決定都有數據撐腰,而不是「感覺新版好像比較好」。工具方面,除了自己寫腳本,官方課程也介紹用 Promptfoo 這類現成評估框架,它能同時支援程式打分與模型打分、一鍵比較不同 prompt 或模型的成績,中小企業想快速起步很好用。一句話總結:沒有 eval 的 AI 功能,等於沒測試就上線的軟體——能動,但你不知道它什麼時候會壞。

實作步驟

  1. 收集真實輸入當測試集 從實際場景撈 20 到 30 個有代表性的輸入:正常的、刁鑽的、會出錯的邊界案例都要。別只放你希望它答對的漂亮題目。
  2. 為每題定義「什麼叫答對」 能有標準答案的就寫標準答案(該分成哪類、該含哪些欄位);沒有唯一正解的就寫評分準則(好的回覆要具備哪幾點)。
  3. 能用程式判對錯的,用 code-based grading 分類、抽取、格式檢查這類客觀任務,寫程式比對標準答案或檢查格式(是否合法 JSON、是否含必要欄位、字數上限)。又快又便宜,優先用。
  4. 主觀品質的,用 model-based grading 像回覆語氣、是否答到重點這類沒標準答案的,寫一份評分準則,用另一個 Claude 當評審依準則打分,才能規模化評估。
  5. 跑整份測試集、算總分 讓 prompt 跑完所有測試題,統計通過率或平均分。可用 Promptfoo 這類框架一鍵執行與比較。這個分數就是你的品質基準線。
  6. 每次改動前後都比較分數 改 prompt、換模型、上線前,都先跑一次 eval,比較分數升降再決定。線上出的每個新錯誤,補進測試集,讓考卷越來越貼近現實。

常見踩雷

  • 測試集只放「你希望它答對」的漂亮題目——真實世界的刁鑽輸入沒測到,上線照樣爆。
  • 主觀任務硬用程式比對字面相等——回答意思對但用字不同就被誤判成錯。
  • 換模型省錢卻沒跑 eval——可能悄悄掉了品質,客戶先幫你發現。
  • eval 跑一次就丟——它該是每次改動都重跑的迴歸測試,不是一次性儀式。

深入來源:anthropics/courses・Prompt Evaluations(CC BY-NC 4.0)

05

Agents 與工作流:把多步驟自動化串起來

當一件事需要好幾步(先分類、再查資料、再生成回覆、再寄出),你有兩種做法:workflow(工作流)是你把步驟和路線都寫死,AI 只負責每一格的判斷;agent(代理)是你只給目標和工具,讓 AI 自己決定怎麼走、走幾步。這一站教你分清兩者,並且記住一條省錢又穩定的原則:能用簡單 workflow 解決的,就不要動用複雜 agent。

  • workflow 等於路線由你寫死、AI 填每一格;agent 等於目標由你給、路線 AI 自己決定。可控性 vs 彈性的取捨。
  • workflow 三種常見樣式:prompt chaining(串接)把大任務拆成一串固定步驟;routing(分流)先分類再送去對應處理;parallelization(並行)多件事同時跑再彙整。
  • agent 適合步驟數不固定、要臨場判斷的開放任務——它會自己用工具、看結果、決定下一步,直到達成目標。
  • 先問:這任務的步驟固定嗎?固定就用 workflow(好預測、好除錯、便宜);真的沒辦法事先寫死,才用 agent。
  • 能簡單就別複雜——很多人一上來就想做全自主 agent,其實八成的中小企業自動化,一條寫死的 workflow 就夠了,還更穩更省。
深入研讀 · 實作步驟 收合

先把兩個詞講清楚,因為市場上被講得很玄。workflow(工作流)是:你這個工程師事先把「先做 A、再做 B、遇到這種情況走 C」的流程圖畫好、寫死在程式裡,AI 只在每一格負責它擅長的判斷或生成。agent(代理)是:你不畫流程圖,只告訴 AI「目標是什麼」跟「你有哪些工具」,讓它自己決定先做什麼、看到結果後再決定下一步,像個會自己想辦法的員工。Anthropic 官方在《Building Effective Agents》講得很直白:兩者沒有高下,是可控性與彈性的取捨——workflow 好預測、好除錯、成本可算;agent 有彈性但比較難預測、也比較貴。

workflow 有三種最實用的樣式,中小企業幾乎都在這裡解決。第一 prompt chaining(串接):把一個大任務拆成一串固定步驟,前一步的輸出當後一步的輸入。例如自動生月報:第一步請 Claude 從原始數據抓出重點,第二步把重點寫成敘述,第三步潤稿成老闆看得懂的語氣——每步單純、好檢查。第二 routing(分流):先用一個 Claude 把輸入分類,再送去對應的專門處理。例如客服訊息進來,先分成「退款/技術問題/一般詢問」,再各自走不同的回覆 prompt——比用一個萬能 prompt 硬扛所有情況準得多。第三 parallelization(並行):把可以同時做的事拆開一起跑再彙整,例如要同時檢查一份合約的「金額、期限、違約條款」三個面向,三路並行再合併,又快又不互相干擾。

那什麼時候才真的需要 agent?當任務步驟數不固定、需要臨場判斷時。例如「幫我查清楚這位客戶為什麼上個月沒續約」——可能要先查 CRM,看到線索再去翻客服紀錄,發現是物流問題再去查訂單……你事先根本不知道要幾步、走哪條路。這種開放式任務就適合給 agent:給它查詢工具、給它目標,讓它自己一邊做一邊決定下一步,用了工具、看了結果、判斷還沒達成就繼續,直到搞定。代價是它比較難預測、可能繞路、token 花得多,所以你要設好上限(最多幾步)跟安全邊界(哪些動作要人確認)。

最後是這一站最重要、也最省你錢的一句話:能用 workflow 解決的,就不要用 agent。官方明確建議:先找最簡單能解決問題的方案,只有在簡單方案真的不夠時,才增加複雜度。很多中小企業一聽到「AI agent」就想做一個全自主、什麼都能幹的機器人,結果又貴又不穩、還很難除錯。實際上你盤點會發現,八成的自動化需求——每天生報表、客服分流、詢價自動回、把資料從 A 系統搬到 B 系統——步驟其實是固定的,一條寫死的 workflow 就搞定,既好預測又便宜。把 agent 留給那些真的沒辦法事先規劃路線的開放任務。判斷順序永遠是:能不能不用 AI(純程式)?不行,能不能一個 prompt 解決?不行,能不能用固定 workflow?真的都不行,才上 agent。

實作步驟

  1. 先判斷:這任務的步驟固定嗎 把任務攤開,問自己「每次都走一樣的步驟嗎?」固定就走 workflow;步驟數會變、要臨場判斷,才考慮 agent。
  2. 固定串接的,用 prompt chaining 把大任務拆成一串固定步驟,前一步輸出餵下一步(抓重點,寫敘述,潤稿)。每步單純,好檢查、好除錯。
  3. 要先分類再處理的,用 routing 先用一個 Claude 把輸入分類(退款/技術/一般),再送去各自的專門 prompt。比一個萬能 prompt 硬扛所有情況準得多。
  4. 能同時做的,用 parallelization 把互不相依的子任務拆開並行跑再彙整(同時檢查合約的金額、期限、違約條款)。又快又不互相干擾。
  5. 真的無法預先規劃,才用 agent 只有當步驟數不固定、需要邊做邊判斷時,才給 Claude 工具與目標讓它自主決策。務必設好步數上限與安全邊界(危險動作要人確認)。
  6. 永遠從最簡單的方案開始 判斷順序:純程式能解嗎?不行,一個 prompt 能解嗎?不行,固定 workflow 能解嗎?真的都不行,才上 agent。能簡單就別複雜,又穩又省。

常見踩雷

  • 一聽到「AI agent」就想做全自主機器人——八成的中小企業需求,固定 workflow 就夠,還更穩更省。
  • 把步驟固定的任務硬做成 agent——結果難預測、難除錯、token 燒更多。
  • 用一個萬能 prompt 硬扛所有情況——該用 routing 先分流,各情況各自處理才準。
  • 放 agent 自主跑卻沒設步數上限與安全邊界——可能無限繞路燒錢,或誤觸危險動作。

深入來源:Anthropic 官方文件與 Building Effective Agents

改編來源: Building with the Claude API Claude Code in Action