不斷擴充的工具組(第 1/2 段)


🏦 台灣Pay 銀行轉帳 💙 PayPal
去年開發者得自己寫的 scaffolding,現在已經內建在模型和 API 裡了
- 00:28 講者 Lucas 是 Anthropic 的 research PM,這場演講是在 Code with Claude 大會上發表的
- 05:41 這樣 Claude 事先就知道會拿到什麼,例如想排序結果時,知道一定會有 score,可以省下一次和 harness 之間的 round trip,輸出更有效率也更聰明
- 10:34 Code execution(現在):推出 code execution tool,會自動給 Claude 一個託管的 sandbox(本段字幕到這裡截斷)
💡 你可以怎麼用:如果你有在用 Claude Code,可以打 /context 看看空間被什麼佔掉,再照它的建議清掉用不到的東西。平常交代 AI 做事時,也可以直接說清楚你要的結果長什麼樣子、要有哪些欄位;工具不要事先砍太多,讓它自己挑,通常效果比較好。
看全部 34 條重點
🧑🏫 這支是 Anthropic 在 Code with Claude 大會上的演講,重點是:做 AI 應用時,去年要自己寫一大堆的輔助程式,現在很多已經直接做進 Claude 和它的 API 裡。講者一項一項比對以前和現在的做法,看完就知道哪些事已經不用自己處理,也知道現在的 AI 為什麼比較不需要人盯著。
- 00:28 講者 Lucas 是 Anthropic 的 research PM,這場演講是在 Code with Claude 大會上發表的↳ 講者 Lucas 是 Anthropic 的 research PM,也就是研究型產品經理,負責把研究成果做成產品。這場是他在 Anthropic 的 Code with Claude 大會上的演講。
- 00:28 主旨:去年要自己寫的 scaffolding,現在直接跟著模型一起提供(ships with the model)↳ scaffolding 原意是鷹架,這裡指開發者為了讓模型好用,在模型外面另外寫的輔助程式。去年得自己寫,現在直接做進模型和 API(程式呼叫模型的介面)裡了。
- 00:59 別再把模型當成單純的「輸入→輸出 LLM 黑盒子」,而要看成模型外圍有一整組工具,用來擴充它的能力、提升表現,也就是「不斷擴充的工具箱」↳ LLM 是大型語言模型。不要只把它當成「問題丟進去、答案吐出來」的盒子,它外面還有一整組工具,幫它做更多事、做得更好,而且這組工具一直在增加。
- 00:59 演講用「以前 vs. 現在」來對照:左邊是以前的做法,右邊是 2026 年同一件事的做法,多半大幅簡化↳ 整場演講用逐項對照的方式:同一件事,左邊是以前的做法,右邊是 2026 年的做法。大多數項目的步驟都少了很多。
- 01:30 好處不只可靠度更高,開發也更簡單:不用再花心力在重試、wrapper 這類東西上,可以專心在想要的結果↳ 以前很多力氣花在「別讓它壞掉」:失敗了要重試、外面還要包一層 wrapper(在外層處理雜事的程式)。現在這些不用管,可以專心想你要做出什麼。
- 02:01 涵蓋主題:tool use、context management、code execution、computer use,每個主題附實用技巧,另外還有 Claude Code 專屬小技巧↳ 四個主題:tool use(呼叫外部工具)、context management(管理模型記得的內容)、code execution(跑程式)、computer use(操作電腦畫面),另有 Claude Code(Anthropic 的寫程式助理)技巧。
- 02:01 一年前做 agent 等於是「圍著模型蓋東西」:用 router 挑工具、retry loop、output validator、context compaction,做 computer use 甚至要自己算座標↳ agent 是能自己規劃、連續做好幾步的 AI。一年前做 agent 要自己加:挑工具的 router、失敗重試迴圈、檢查輸出的 validator、壓縮舊對話的 compaction,操作電腦時連點哪個座標都要自己算。
- 02:32 還沒開始做產品,就得先寫幾百行 scaffolding↳ 也就是說門檻很高:真正想做的功能還沒開始,光是讓模型能正常運作的基礎程式,就要先寫好幾百行。
- 02:32 scaffolding 沒有消失,而是搬進了模型本身;工作還在,只是不用再由你自己維護↳ 這些工作不是不需要了,而是從你的程式搬到模型和 API 那一端。事情還是有人在做,只是更新、修 bug 不再是你的負擔。
- 03:06 Tool use(以前):不敢把整套工具都交給模型,因為會吃掉 context window,只好自己寫 router↳ context window 是模型一次能讀進去的內容容量。每個工具的說明都會佔空間,工具一多就塞爆,所以以前只好自己寫 router,每次只挑幾個工具給模型。
- 03:06 router 常用字串比對或 heuristics 寫成,例如「模型提到 SQL 就給它資料庫工具」↳ heuristics 是人寫死的經驗法則。例如對話裡出現「SQL」(查資料庫用的語言)這個字,就把資料庫工具交給模型。
- 03:36 工具常常失敗,所以還得加上有 back off 的 retry decorator↳ 工具呼叫常常失敗,像是網路逾時,所以還要包一層 retry decorator:失敗就自動重試,而且用 back off,每次失敗後多等一下再試,不要一直狂打。
- 03:36 這類 router 其實是用 if 條件句去猜使用者意圖,很脆弱,一加新工具最先壞掉的就是它↳ 用一堆「如果…就…」去猜使用者想做什麼,一定會漏掉很多情況;而且每加一個新工具就要改規則,最先出問題的就是這一塊。
- 03:36 Tool use(現在):模型可以自己搜尋工具、挑出對的工具↳ 現在不用一次把所有工具塞給模型,模型可以自己去搜尋有哪些工具,再挑出適合這次任務的。
- 04:06 模型夠聰明、選工具的準確度也夠高,tool router 和事先過濾通常只會讓結果更差,應該讓模型依當下情境自己判斷要用哪些工具↳ 模型現在挑工具已經比人寫的規則準。你先幫它過濾,反而可能擋掉它真正需要的工具,不如讓它看當下狀況自己決定。
- 04:06 工具出錯時,可以放心交給 Claude:它會看到錯誤、自己恢復,然後再呼叫一次工具↳ 工具出錯時,不用再自己寫重試機制。Claude 會讀懂錯誤訊息、調整之後再呼叫一次,自己把事情接回來。
- 04:37 Tool use 技巧:大多數開發者只告訴 Claude 工具的輸入參數,其實也可以在工具描述裡寫出 output schema↳ 描述一個工具時,多數人只寫「要給它什麼資料」,其實也可以寫「它會回傳什麼」。這就是 output schema:回傳結果裡有哪些欄位、長什麼樣子。
- 05:10 範例:search docs 工具的描述寫明「會搜尋文件,並回傳 ID、title、snippet、score」↳ 例如一個搜尋文件的工具,說明裡直接寫清楚:每筆結果會回傳 ID、標題(title)、摘要片段(snippet)和相關度分數(score)。
- 05:41 這樣 Claude 事先就知道會拿到什麼,例如想排序結果時,知道一定會有 score,可以省下一次和 harness 之間的 round trip,輸出更有效率也更聰明↳ Claude 事先知道一定有 score,要排序就能直接規劃,不用先試一次看看。harness 是包在模型外面、負責執行工具再把結果傳回來的程式;少一次來回,就更快也更聰明。
- 05:41 Claude Code 技巧:在 Claude settings 裡設定 pre-tool use 和 post-tool use hooks↳ 在 Claude Code 的設定裡可以加 hooks:pre-tool use 在工具被呼叫之前自動觸發,post-tool use 在呼叫之後觸發。
- 06:11 hooks 讓 Claude 呼叫某個工具之前或之後,自動用程式執行某些動作,例如在特定情況下擋掉工具呼叫,或在呼叫後分析、記錄輸出↳ 例如:遇到特定情況就擋下這次工具呼叫,或是每次工具跑完,就自動把輸出記錄下來、拿去分析。這是程式固定去做的,不靠 Claude 自己記得。
- 06:49 Context management(以前):long-running agent 得自己打造記憶系統,例如 chunking、RAG,或每隔 N 輪/N 個 token 叫另一個模型做摘要↳ 要跑很久的 agent 以前得自建記憶:chunking 把資料切成小塊,RAG 是需要時再搜出相關段落塞回來,或是每隔幾輪、一定 token 量(模型計算文字的單位)就請另一個模型做摘要。
- 06:49 這些 scaffolding 的目的,都是為了實際上撐大模型的 context window↳ 說穿了,這些都是繞路:模型一次能讀的量不夠,只好想辦法讓它像是讀得下更多。
- 07:20 以前還得手動移動 cache breakpoints,才能快取先前的對話輪次、省成本↳ cache(快取)是把重複的內容存起來,下次不用重算,比較省錢。cache breakpoints 標記「存到哪裡」,以前每多一輪對話,就要手動往後移。
- 07:20 Context management(現在):提供 1 million context length 且價格固定(flat pricing),大部分的 context window 壓力就解除了↳ 現在 context window 有 100 萬 token,而且是 flat pricing,也就是用得再長,單價也一樣。所以大部分「塞不下」的煩惱都解決了。
- 07:20 再搭配 server-side compaction 和 context editing,剩下的工作只需要幾行設定↳ 剩下的交給兩個功能:server-side compaction 在 Anthropic 的伺服器上壓縮舊對話,context editing 照規則清掉過時的內容。開發者只要寫幾行設定。
- 07:50 這讓人更接近早上 keynote 提到的「無限 context window」的感覺;這些功能都已內建在 API 裡,一個 API call 就能用↳ keynote 是大會開場的主題演講。這些功能都已經內建在 API 裡,一次呼叫就能用,用起來越來越接近 context window 沒有上限的感覺。
- 08:20 Context management 技巧:建議每隔 N 輪清掉 tool results↳ tool results 就是工具執行完回傳的內容。建議每隔幾輪就清掉一次,不要讓它們一直佔著空間。
- 08:20 把過時的工具輸出(截圖、搜尋結果、讀取的檔案)清掉,可以省下大量 context,同時留下它們促成的決策(這些決策會記在 Claude 的 transcript 裡)↳ 截圖、搜尋結果、讀過的檔案,用完之後就沒用了,但根據它們做的決定已經記在 transcript(對話紀錄)裡。清掉原始資料、留下結論,就能省下很多空間。
- 08:51 範例:transcript 裡讀了大檔案、截了圖、做出決策、搜尋又倒出一大堆文字。清掉這些結果,只保留核心任務、所做的決策和 agent 自己分析出的結果,就能即時省 token↳ 例如一段紀錄裡讀了大檔案、截了圖、又搜出一大堆文字。把這些原始資料清掉,只留任務目標、做過的決定和 agent 自己的分析,token 馬上就省下來。
- 09:24 Claude Code 技巧:輸入 /context,會顯示一個即時的彩色格狀圖,列出 context window 被哪些東西佔用↳ 在 Claude Code 裡輸入 /context 這個指令,會出現一張即時的彩色格子圖,讓你看到 context window 被哪些東西佔掉。
- 09:24 /context 會顯示 messages、tool results、system、MCP definitions 各佔多少空間,也會提供優化建議↳ 圖上會分開列出對話訊息、tool results、system(系統指示)、MCP definitions 各佔多少。MCP 是讓 Claude 連接外部工具的標準協定。圖上也會給省空間的建議。
- 10:01 Code execution(以前):「寫→跑→修」的循環是開發者的工作:找 VM 供應商、開 sandbox、把模型寫的程式放上去跑、解析 traceback 再餵回模型,一直重複到成功↳ 以前模型寫的程式要開發者自己跑:找 VM(雲端虛擬電腦)供應商、開 sandbox(隔離的安全執行環境)、執行,再把 traceback(錯誤追蹤紀錄)丟回給模型改,一直重複到成功。
- 10:34 Code execution(現在):推出 code execution tool,會自動給 Claude 一個託管的 sandbox(本段字幕到這裡截斷)↳ 現在有 code execution tool:Claude 會自動拿到一個已經託管好的 sandbox,可以在裡面跑程式,不用開發者自己準備。這段字幕到這裡就斷了,細節在下半段。
📘 術語
scaffolding(鷹架/外圍支撐程式碼):為了讓模型能用而圍著它寫的程式,例如 router、retry loop、validator,動輒上百行
router(工具路由器):用字串比對、heuristics 決定給模型哪些工具,例如提到 SQL 就給資料庫工具
heuristics(經驗法則):用 if 條件句猜使用者意圖來決定何時帶入工具,很脆弱
retry decorator / back off(重試裝飾器/退避):工具常失敗,所以要包一層會退避、再重試的機制
output validator(輸出驗證器):以前做 agent 時要自己寫的 scaffolding 之一
context window(上下文視窗):模型能容納的內容空間;工具太多會吃掉它
output schema(輸出結構描述):在工具描述裡寫出會回傳哪些欄位,例如 ID、title、snippet、score
round trip(來回一趟):Claude 事先知道輸出格式,就能省下和 harness 之間的一次來回
harness(執行框架):字幕只在「省下和 harness 之間的 round trip」這句提到,沒有另外解釋
pre-/post-tool use hooks(工具呼叫前/後的 hook):在 Claude settings 裡設定,工具呼叫前後自動用程式做事,例如擋掉呼叫、記錄輸出
chunking(分塊):以前自建記憶系統、管理 context window 的做法之一
RAG(檢索增強生成):很熱門的做法,以前拿來處理 context window 不夠用的問題
cache breakpoints(快取斷點):以前要手動移動,才能快取先前輪次、節省成本
server-side compaction(伺服器端壓縮):和 context editing 一起,把 context 管理變成幾行設定
context editing(上下文編輯):和 server-side compaction 一起,把 context 管理變成幾行設定
/context(/context 指令):Claude Code 裡顯示 context window 使用情形的即時彩色格狀圖,附優化建議
MCP definitions(MCP 定義):/context 會列出它在 context window 裡佔多少空間
sandbox(沙盒):以前要自己在 VM 上開一個來跑模型寫的程式;現在 code execution tool 會提供託管的 sandbox
traceback(錯誤追蹤訊息):程式跑完後要解析它,再餵回模型修正
code execution tool(程式執行工具):自動給 Claude 一個託管的 sandbox,取代開發者自己跑的「寫→跑→修」循環
router(工具路由器):用字串比對、heuristics 決定給模型哪些工具,例如提到 SQL 就給資料庫工具
heuristics(經驗法則):用 if 條件句猜使用者意圖來決定何時帶入工具,很脆弱
retry decorator / back off(重試裝飾器/退避):工具常失敗,所以要包一層會退避、再重試的機制
output validator(輸出驗證器):以前做 agent 時要自己寫的 scaffolding 之一
context window(上下文視窗):模型能容納的內容空間;工具太多會吃掉它
output schema(輸出結構描述):在工具描述裡寫出會回傳哪些欄位,例如 ID、title、snippet、score
round trip(來回一趟):Claude 事先知道輸出格式,就能省下和 harness 之間的一次來回
harness(執行框架):字幕只在「省下和 harness 之間的 round trip」這句提到,沒有另外解釋
pre-/post-tool use hooks(工具呼叫前/後的 hook):在 Claude settings 裡設定,工具呼叫前後自動用程式做事,例如擋掉呼叫、記錄輸出
chunking(分塊):以前自建記憶系統、管理 context window 的做法之一
RAG(檢索增強生成):很熱門的做法,以前拿來處理 context window 不夠用的問題
cache breakpoints(快取斷點):以前要手動移動,才能快取先前輪次、節省成本
server-side compaction(伺服器端壓縮):和 context editing 一起,把 context 管理變成幾行設定
context editing(上下文編輯):和 server-side compaction 一起,把 context 管理變成幾行設定
/context(/context 指令):Claude Code 裡顯示 context window 使用情形的即時彩色格狀圖,附優化建議
MCP definitions(MCP 定義):/context 會列出它在 context window 裡佔多少空間
sandbox(沙盒):以前要自己在 VM 上開一個來跑模型寫的程式;現在 code execution tool 會提供託管的 sandbox
traceback(錯誤追蹤訊息):程式跑完後要解析它,再餵回模型修正
code execution tool(程式執行工具):自動給 Claude 一個託管的 sandbox,取代開發者自己跑的「寫→跑→修」循環
✏️ 小考一題
講者分享的 tool use 技巧中,建議在工具描述裡額外寫什麼,讓 Claude 省下一次 round trip?
A. 工具失敗時的 retry 次數B. 工具的 cache breakpoints 位置C. 哪些關鍵字該觸發這個工具的 routing 規則D. 工具的 output schema(會回傳哪些欄位)看答案
答案:D。[04:37]–[05:41] 講者說大多數人只給輸入參數,其實也可以描述 output schema,例如回傳 ID、title、snippet、score,讓 Claude 事先知道會拿到 score,省下一次和 harness 之間的 round trip。
💛 覺得有幫助?支持一下


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