Bible Network Crypto DeFi Onchain RWA AI Agent Stablecoin Chain SAFU CryptoTax DeFAI AGI Claude Me Claude Skill Claude Design Claude Cowork
獨立知識媒體
與任何項目無關聯
學會用 Claude,每件事都做得更好
claudeskill-me.com
最新
為什麼裝了 Skill 卻不會觸發?15,000 字元預算爆了,Claude Code 會悄悄丟棄描述且不警告  ·  Effort 跟 Temperature 都是「調整輸出」的參數,差在哪裡?新模型上其中一個已經失效  ·  官方 anthropics/skills 倉庫評測:168k 星星的內容品質沒問題,問題出在你根本找不到它  ·  Subagent 不是更聰明的小 Claude——它解決的是隔離問題,不是能力問題  ·  SKILL.md 到底該寫多長?官方 500 行門檻背後的三層漸進式披露邏輯  ·  XML 標籤怎麼用才對?3 個真實案例對比純文字 Prompt 的差異
名詞解析 · tools-integration

Agent Tool

Agent 工具
tools-integration advanced

30 秒版 · 給沒耐心的人
Claude Code 用來啟動 Subagent 的內建工具,v2.1.63 起由原本的 Task 工具改名而來,舊名稱仍可作為別名使用。
完整解說 +
01 · 這是什麼?

Agent 工具是什麼,跟一般的工具呼叫有什麼不同?

Agent 工具是 Claude Code 內建的一種特殊工具,作用是啟動一個 Subagent——一個擁有自己獨立上下文視窗的新 Claude 實例。跟一般工具(例如讀檔案、執行指令)不同的地方在於,一般工具呼叫完就結束、結果直接回到當前上下文;Agent 工具呼叫的則是啟動另一個完整的對話流程,這個流程有自己的系統提示詞、工具清單、權限設定,完成後才把結果摘要傳回呼叫者。

這個工具原本叫做 Task,在 Claude Code v2.1.63 正式改名為 Agent。改名的原因是原本的命名跟另一套內部的任務追蹤系統(Task* 相關功能)容易混淆,官方文件與現行版本已經統一使用 Agent 這個名稱,但既有設定檔或 hook 腳本裡的 Task(...) 寫法仍可作為別名繼續運作,不會因為改名而失效。

02 · 為什麼存在?

Agent 工具為什麼存在,解決了什麼問題?

一個標準對話有固定大小的上下文視窗,在長時間、多步驟的任務裡,探索性質的檔案讀取、程式碼搜尋累積的輸出會持續佔用上下文空間,稀釋掉真正重要的資訊。Agent 工具提供了一個把這類雜訊隔離出去的機制——把會產生大量中間過程的工作交給 Subagent 在獨立上下文裡完成,主對話只接收提煉過的結果。

這也解釋了為什麼這個工具需要跟一般工具分開設計、給予特殊名稱:它做的不是單純的資訊擷取,而是啟動一整條獨立的執行分支。這種分支需要有自己的權限控制(例如限制某個 Subagent 只能讀檔案不能寫入)、自己的模型選擇(可以指定用比較便宜的模型處理探索性任務),這些都是一般工具不具備的能力。

03 · 如何影響你的決策?

Agent 工具實際運作起來是什麼樣子,有哪些限制?

主 Agent 呼叫 Agent 工具時,需要指定要啟動的 Subagent 類型(例如 general-purpose 或某個自訂的 Subagent 名稱)以及一段任務描述文字。Subagent 啟動後擁有自己乾淨的上下文,不繼承主對話歷史,完成任務後把結果摘要傳回。

Subagent 也可以再呼叫 Agent 工具去啟動下一層 Subagent,但這個巢狀能力有深度限制——目前預設是主對話下方最多三層,到達深度上限後,Agent 工具會從那一層 Subagent 的工具清單裡被拿掉,讓它只能自己把工作做完再回傳,不會無限往下延伸。這個深度限制可以透過環境變數調整,設成 1 就等於完全關閉巢狀能力。另外還有一種特殊型態叫「fork」,它會直接繼承主對話的完整歷史而不是從乾淨上下文開始,但 fork 本身無法再呼叫 Agent 工具去產生下一層。

04 · 你該怎麼辦?

了解 Agent 工具的機制,對我實際使用 Claude Code 有什麼幫助?

如果你在設定檔、settings.json、或自訂 hook 腳本裡看到 Task(...) 這樣的寫法,不用擔心它已經過期——這是官方保留的別名,跟寫成 Agent(...) 效果相同,繼續使用不會出問題,只是新寫的設定建議直接用 Agent 這個現行名稱,以免將來查文件時對不上。

如果你在設計自訂 Subagent、或撰寫會攔截工具呼叫的 hook 腳本,需要特別留意:檢查 tool_name 欄位的腳本如果寫死比對字串 "Task",在改名後可能會失效,因為實際傳入的欄位值已經變成 "Agent"。這類腳本建議同時比對兩個名稱,或改用官方目前的權限規則語法(例如 Agent(agent_type))來限制哪些 Subagent 類型可以被啟動,而不是自己手刻字串比對邏輯。

資料來源:Create custom subagents - Claude Code DocsTask→Agent tool rename in v2.1.63 breaks hook payloads · Issue #29677 · anthropics/claude-code
實際例子 +

GitHub 上的官方 issue #29677 記錄了一起真實案例:Claude Code v2.1.63 把 Task 工具改名為 Agent 後,社群開發者發現自己撰寫的 PreToolUse/PostToolUse hook 腳本開始失效,因為這些腳本檢查 tool_name 欄位時寫死比對字串 "Task",改名後欄位值變成 "Agent",腳本邏輯因此再也匹配不到。這起事件也讓官方在後續文件裡明確加註「v2.1.63 起 Task 工具改名為 Agent,既有 Task(...) 設定仍可作為別名運作」的說明,避免同樣的問題重演。

常見誤解 +
✕ 誤解1
× 誤解:舊設定檔裡的 Task(...) 寫法已經失效,需要全部手動改成 Agent(...),實際是:官方明確保留 Task(...) 作為別名,行為與 Agent(...) 完全相同,不強制要求更新既有設定;但自行撰寫的 hook 腳本如果檢查的是原始傳入值而非設定語法本身,仍可能因為傳入值變成字串 "Agent" 而需要調整比對邏輯
✕ 誤解2
× 誤解:Agent 工具跟一般工具一樣,呼叫後結果會立刻回到當前對話,實際是:Agent 工具啟動的是一整條獨立的對話流程,有自己的上下文、系統提示詞與權限設定,完成前主對話完全看不到過程,只在結束後收到一份摘要
這件事跟你有什麼關係 +
直接影響

優點是能把探索性質的雜訊隔離在獨立上下文裡,讓主對話保持乾淨,也能針對不同 Subagent 設定不同的工具權限與模型;缺點是啟動 Subagent 需要重新建立上下文,對於背景資訊需求高、需要跟主對話頻繁互動的任務反而會增加延遲成本,不是所有任務都適合委派出去。

提問
請至少輸入 10 個字
更多相關主題