Tool、skill 還是 subagent?拆解一個已經撐爆 prompt 的 agent(第 3/4 段)


🏦 台灣Pay 銀行轉帳 💙 PayPal
長 system prompt 改用 skills、工具先用 Claude Code primitives,MCP 放最後
- 22:34 講者表示有了 skills 之後,不建議再把所有資訊塞進 system prompt。system prompt 只放 Claude 不管做什麼任務都需要記住的資訊
- 28:15 給 Claude 一個 bash tool,讓它寫簡短的 Python script、執行後再根據結果推理,效果比把整個 CSV 上傳到 context window 好很多
- 33:20 有些情況可以改用 code execution(CLIs 或用程式呼叫 APIs),不必用 MCP,agent 也更有彈性
💡 你可以怎麼用:如果你有一份很長的自訂指令或專案指令,可以直接請 Claude 幫你分:每次都要遵守的規則留著,只在特定任務用到的內容拆成 skills。要幫 AI 加工具時,先用內建的跑程式、讀檔案、搜尋,真的不夠再自己做,MCP 等到多個地方要共用同一組工具時再考慮。
看全部 30 條重點
🧑🏫 這段在講一個越做越肥的 AI agent(會自己規劃步驟、動手完成任務的 AI 助理)怎麼瘦身:把塞爆的 system prompt 拆成 skills,把十幾個專用工具換成「跟人一樣的基本能力」,MCP 放到最後才用。如果你寫過很長的 AI 指令,或正在想要不要接一堆外部工具,這段能幫你排好先後順序。
- 22:34 講者表示有了 skills 之後,不建議再把所有資訊塞進 system prompt。system prompt 只放 Claude 不管做什麼任務都需要記住的資訊↳ system prompt(每次對話開始前先給 Claude 的固定指令)以前常被當成百寶箱,什麼都往裡塞。講者說現在有了 skills,這裡只該留「不管做哪件事都得記得」的東西。
- 22:34 Skills 很適合打包 Claude「偶爾才用得到」的資訊↳ skills(一包一包的說明和資料,要用時才載入)適合放「有時才用到」的知識。就像員工手冊的附錄,平常不用背,碰到那件事再翻就好。
- 23:05 例子:只有叫 Claude 建 forecast(預測)時,它才需要預測相關資訊,所以只在那個任務才把這些資訊拉進 context window↳ 預測的做法和注意事項,只有叫 Claude 做 forecast(預測,例如估下個月銷量)時才需要,所以等到那時才載入 context window(Claude 做事時眼前攤開的所有資訊)。
- 23:05 Skills 也能讓 context 用得更有效率。全部塞進 system prompt,會讓完成任務用不到的資訊污染 context window↳ 眼前攤開的東西越多,跟任務無關的雜訊就越多。全塞進 system prompt,等於每次做事都要在一堆用不到的資料裡找重點,Claude 比較難專心在該做的事上。
- 23:36 實作第一步:請 Claude 檢視 system prompt,問它能不能改用 skills、說 system prompt 太長。Claude 分析後發現有 pre-built skills 可以補充 system prompt 的資訊↳ 做法很直接:跟 Claude 說「system prompt 太長了,能不能改用 skills?」讓它自己去看。它發現有 pre-built skills(已經做好、拿來就能用的 skills)可以接手一部分內容。
- 24:08 讓架構現代化的第一個修正:移除大部分 system prompt 內容、改放進 skills,啟用幾個原本沒有的 skill,並把長 system prompt 換成短的↳ 第一輪改造:把大部分 system prompt 內容搬進 skills,開啟幾個原本沒用的 skill,最後只留一份精簡版。重點是「搬家」不是「刪掉」,資訊都還在。
- 24:39 成果:原本約 400 行的 system prompt 縮成約 50 行,大量資訊移到 skills。改完之後可以重跑 evals↳ 約 400 行縮到約 50 行。改完要重跑 evals(一組固定考題,用來比較改前改後的表現),確認瘦身沒有讓 agent 變笨,不是憑感覺說變好了。
- 25:10 這個 inventory management agent 原本有 12 個 tools,每件事都有專屬工具,例如取資料一個、分析資料一個↳ 這個 inventory management agent(庫存管理 agent)原本有 12 個 tools(Claude 能呼叫的功能),而且一件事一個工具,拿資料一個、分析又一個,越堆越多。
- 25:41 第二步:請 Claude 分析 agent 現有的 tools,一起想怎麼優化↳ 第二步一樣交給 Claude:請它盤點現有的工具,一起討論哪些能合併或換掉。等於請 Claude 當顧問,幫忙整理自己的工具箱。
- 25:41 Anthropic 內部和替客戶建 agent 時的原則:採用跟人類一樣的 primitives↳ Anthropic 自己做 agent、幫客戶做 agent 都守一個原則:給 AI 的基本能力要跟人上班用的一樣。primitives 指的就是這些最基礎、能組合出各種事情的能力。
- 26:12 人上班時有電腦,可以瀏覽檔案系統、在瀏覽器上網搜尋,工程師還能寫程式和執行程式。Claude Code 就是把這些 primitives 同樣交給 Claude↳ 人上班靠電腦:翻資料夾找檔案、上網查東西,工程師還會寫程式、跑程式。Claude Code(Anthropic 的 AI 寫程式工具)做的,就是把這一整套同樣交給 Claude。
- 26:42 Claude Code 本質上就是給 Claude 一台電腦。好處是每次推出新模型都能直接換上,而新的 Claude 會把同樣的 primitives 用得更好↳ 說穿了 Claude Code 就是給 Claude 一台電腦。好處是工具不用跟著改,新模型推出就能直接換上,而新模型會把同一套工具用得更好。
- 27:12 比喻:你參加完研討會,手上的工具沒變,但學到東西、變聰明了,用同樣的工具會更有效率。Claude 也是一樣↳ 像你去上完一堂課,電腦和軟體都沒換,但會的招變多了,做事就更快。工具固定、模型變強,效果自然提升,不用每次都重做工具。
- 27:12 建 agent 時先給 human-like primitives,包括 code execution、瀏覽檔案系統、維護 to-do list、web search。這些是基礎工具,用不到再拿掉↳ 做 agent 時先把基本能力配好:code execution(寫程式並執行)、翻檔案、to-do list(待辦清單,幫它記進度)、web search(上網搜尋)。先全給,確定用不到再拿掉。
- 27:43 例子:agent 如果要分析大量 CSV 或 Excel 文件,code execution(能寫程式也能執行程式)是做資料分析、處理多份文件最好的方法之一↳ 例如要分析一大堆 CSV 或 Excel 表格,讓 Claude 寫程式去算是最好的方法之一。程式能一次處理很多份檔案,不用靠它用「讀」的一份一份慢慢看。
- 28:15 給 Claude 一個 bash tool,讓它寫簡短的 Python script、執行後再根據結果推理,效果比把整個 CSV 上傳到 context window 好很多↳ bash tool(讓 Claude 下指令、跑程式的工具)讓它寫幾行 Python 算好再判斷,比把整份 CSV 塞進 context window 好很多,就像用公式加總,而不是一格一格看。
- 28:46 實作結果:移除 agent 大部分的 tools,改用 primitives。這個 inventory agent 分析 Excel 和預測資料的工具,都能整併成 Claude Code 那一套工具↳ 結果大部分專用工具都拿掉了。原本分析 Excel、做預測的各種工具,都能用 Claude Code 那一套基本能力取代,工具變少了,能做的事卻沒少。
- 29:16 用 Claude managed agents 建 agent 時,這些工具預設就內建,不用自己寫程式執行或檔案系統的工具,直接用 Anthropic 為 Claude Code 做的內建工具↳ Claude managed agents(簡稱 CMA,讓 agent 正式上線運作的地方)已經內建這些工具。不用自己寫「跑程式」「讀檔案」的功能,直接用 Anthropic 為 Claude Code 做好的就行。
- 29:47 請 Claude 重跑 eval,看表現有沒有進步↳ 工具改完一樣要重跑 eval,用數字確認換成基本能力之後表現真的變好,而不是只是看起來比較簡潔。
- 30:18 光靠 Claude Code 那套工具能做的有限,agent 總會需要一些 custom tools↳ 基本能力不是萬能。碰到你自己業務才有的需求,總還是需要一些 custom tools(為自己的 agent 量身做的工具)。
- 30:18 做法:先從 primitives(code execution、web search、to-do list 等)開始,用不到就拿掉(例如有些 agent 不需要 web search),需要時才加 custom tools↳ 順序是:先給基本能力,用不到就刪(例如不需要上網的 agent 就拿掉 web search),真的缺了才補 custom tools。先減法,再加法。
- 30:48 這個 inventory agent 大部分工具都換成了 Claude Code 的工具。Claude 把本地的 agent 重新部署到 Claude managed agents,接著重跑 F1 eval↳ 大部分工具換好之後,Claude 把原本在自己電腦上跑的 agent 搬到 CMA 上,再跑 F1 eval。F1 是常見的評分方式,同時看答得準不準、有沒有漏掉。
- 31:18 在 CMA 裡,工具有三種選擇:① Claude Code primitives(web search、code execution、file system)② custom tools(只有自己的 agent 能用)③ 連接 MCP↳ 在 CMA 上工具有三條路:一是 Claude Code 內建的基本能力;二是只給自己 agent 用的 custom tools;三是接 MCP(一套讓 AI 連接外部工具和服務的標準接口)。
- 31:49 很多人一開始就先用 MCP,很多客戶最後手上一堆雜亂的 MCP servers,功能常常重疊,衍生出問題↳ 很多人一開始就猛接 MCP,最後手上一堆 MCP server(提供工具的服務),又亂又重複,好幾個做同一件事,反而出問題。就像手機裝了三個功能一樣的 app。
- 31:49 Anthropic 的順序:先用 Claude Code 工具,再做只給自己 agent 用的本地工具,不急著用 MCP↳ Anthropic 建議的順序:先用 Claude Code 內建工具,不夠再做只給自己 agent 用的工具,MCP 不急著上。
- 32:19 只有當多個 agent 或多個 Claude Code client 需要共用同一組標準化、受治理的工具時,才把工具收集起來發布成 MCP server↳ MCP 適合「共用」的情況:好幾個 agent 或好幾個人的 Claude Code 都要用同一組工具,而且要統一規格、有人管誰能用時,才整理好發布成 MCP server。
- 32:49 業界越來越常見的做法:讓 Claude 用 code execution 來執行工具,例如用 CLIs、用程式呼叫 APIs,而不是透過 MCP↳ 業界越來越常直接讓 Claude 寫程式去用工具,例如用 CLI(打字下指令的程式介面),或寫程式呼叫 API(系統之間互相溝通的窗口),不經過 MCP。
- 32:49 MCP 的缺點:可能造成 context 問題,污染 context、佔用大量空間↳ MCP 的代價是佔空間:接上的工具說明會佔掉 context window,接得越多越擠,用不到的也塞在裡面干擾。
- 33:20 有些情況可以改用 code execution(CLIs 或用程式呼叫 APIs),不必用 MCP,agent 也更有彈性↳ 所以有些情況直接用 CLI 或寫程式呼叫 API 就好,不必架 MCP。Claude 需要時自己寫程式去叫,組合方式更自由,agent 也更有彈性。
- 33:20 Claude 跑完了,接下來要看 before and after 的結果↳ 改造都跑完了,接下來要比較改前改後的結果,看這些調整到底帶來多少進步。
📘 術語
system prompt(系統提示詞):應該只放 Claude 不管什麼任務都需要記住的資訊
skills(技能包):用來打包 Claude 偶爾才需要的資訊,需要時才拉進 context window
context window(上下文視窗):Claude 做任務時放資訊的地方;塞進用不到的資訊會污染它
pre-built skills(預建技能):已經做好的 skills,Claude 分析後發現可以用來補充 system prompt 的資訊
evals(評估測試):修改後重跑,用來看 agent 有沒有進步
primitives(human-like primitives)(基本能力/類人基本工具):人上班也有的能力,例如 code execution、檔案系統、to-do list、web search
code execution(程式碼執行):能寫程式也能執行程式,是做資料分析、處理多份文件最好的方法之一
bash tool(bash 工具):讓 Claude 能寫 Python script、執行後根據結果推理
Claude managed agents(CMA)(Claude 託管 agents):部署 agent 的地方,Claude Code 的工具預設內建
custom tools(自訂工具):只有自己的 agent 能用的獨立工具,需要時才加
MCP server(MCP 伺服器):多個 agent 或 client 需要共用同一組標準化、受治理的工具時,才發布成 MCP server
CLI(命令列介面):可以讓 Claude 透過 code execution 使用 CLIs 來執行工具,不必透過 MCP
skills(技能包):用來打包 Claude 偶爾才需要的資訊,需要時才拉進 context window
context window(上下文視窗):Claude 做任務時放資訊的地方;塞進用不到的資訊會污染它
pre-built skills(預建技能):已經做好的 skills,Claude 分析後發現可以用來補充 system prompt 的資訊
evals(評估測試):修改後重跑,用來看 agent 有沒有進步
primitives(human-like primitives)(基本能力/類人基本工具):人上班也有的能力,例如 code execution、檔案系統、to-do list、web search
code execution(程式碼執行):能寫程式也能執行程式,是做資料分析、處理多份文件最好的方法之一
bash tool(bash 工具):讓 Claude 能寫 Python script、執行後根據結果推理
Claude managed agents(CMA)(Claude 託管 agents):部署 agent 的地方,Claude Code 的工具預設內建
custom tools(自訂工具):只有自己的 agent 能用的獨立工具,需要時才加
MCP server(MCP 伺服器):多個 agent 或 client 需要共用同一組標準化、受治理的工具時,才發布成 MCP server
CLI(命令列介面):可以讓 Claude 透過 code execution 使用 CLIs 來執行工具,不必透過 MCP
✏️ 小考一題
根據影片,Anthropic 建 agent 時,什麼情況才會把工具發布成 MCP server?
A. system prompt 超過 400 行、需要縮短的時候B. 只有多個 agent 或 client 需要共用同一組標準化、受治理的工具時C. 建 agent 的第一步就先接上 MCP,之後再補其他工具D. 只要 agent 需要用到 web search 就一定要用 MCP看答案
答案:B。[32:19] 講者說只有當多個 client 都會受惠於同一組工具,例如多個 agent 或 Claude Code client 需要存取同一組標準化、受治理的工具時,才會發布成 MCP server;[31:49] 也說他們不會一開始就用 MCP
💛 覺得有幫助?支持一下


課本免費、沒有廣告,支持與否都能照常讀 🐰