← Agent 實驗室
課程 5面試 6

工具呼叫實驗:Tool、MCP、Skill

模型在遠端,怎麼操作你電腦上的檔案和系統?左邊選一句話、決定有哪些工具;按「下一步」,右邊一格一格看到:誰在哪裡做了什麼、實際送出與回傳的 JSON,以及 token 用在哪。

你的環境與提問

改動會從頭重跑
你對 Agent 說
內建工具
MCP server
已安裝的 Skills

所有數字(token、檔案內容、工作項目)都是示意用的假資料,目的是看出流程與相對大小,不是真實量測。token 為依字數估算。

實際發生的事

目前這一次 request 的輸入 token(—)
0
request 輸入 token
0
工具定義(每輪都送)
0
Skill 描述(平常)
0
Skill 全文(載入後)

      

Tool、MCP、Skill 比較

本質解決什麼上下文成本例子
Tool有名稱、說明、參數 schema 的函式;由本機 Agent 負責執行讓模型能「動手」:讀檔、跑指令、改檔每個工具的定義每一輪都送,約百餘到數百 token/個Read、Bash、Edit
MCP工具的標準接口(JSON-RPC);工具由獨立的 server 提供,Agent 是 client不必為每個 Agent 重寫整合,直接接公司系統和一般工具相同:定義每輪都送;對模型來說它就是工具mcp__tfs__wi_list
Skill一個資料夾,核心是 SKILL.md(做事流程與腳本);用到才載入教模型「怎麼做」一件事,不必每次都貼流程平常只佔名稱加一句描述;被呼叫後全文才進 context(數千 token)code-review、deploy

怎麼知道它們什麼時候被呼叫?

三種都是模型自己判斷要不要用
什麼時候載入什麼時候呼叫誰決定
Tool每一輪都在(工具定義常駐上下文)模型判斷「這件事需要動手」,例如讀檔、跑指令模型,看工具的 description
MCP啟動 session 時連到 MCP server,取得工具清單(只做一次)跟 Tool 一樣;名稱像 mcp__tfs__wi_list模型
Skill啟動時只載入名稱和一句描述① 模型判斷任務符合描述,呼叫 Skill 工具載入全文 ② 你自己打 /skill名稱模型或你

模型只會「要求」呼叫,真正執行的是你電腦上的 Agent(例如 Claude Code)。

在 Claude Code 怎麼看看到什麼
對話畫面本身每次呼叫都會顯示一行,例如 ● Bash(git status)、● tfs - wi_list (MCP)、● Skill(code-review)
Ctrl + O展開詳細內容:送了什麼參數、回了什麼結果
/mcp連了哪些 MCP server、連線狀態、各自提供哪些工具
/context上下文裡各部分佔多少 token:系統工具、MCP 工具、Skill 描述、CLAUDE.md、對話
Hooks(PreToolUse)每次呼叫工具前自動執行,可以記錄或攔截;matcher 設 mcp__.* 就能記下所有 MCP 呼叫
直接用 API回應的 stop_reason 是 "tool_use",content 裡有 tool_use 區塊
想讓它一定被呼叫:把 description 寫清楚(模型靠它選工具);直接說「用 tfs 工具查」;Skill 可以直接打 /code-review;用不到的 MCP 先關掉,工具太多比較容易選錯,也浪費 token。

看完要記得

口試怎麼答(約 30 秒)

模型本身只會輸出一段要求呼叫工具的結構化文字,真正執行的是本機的 Agent 程式。Agent 把工具清單放進請求,模型依說明文字決定要用哪個,Agent 執行後再把結果送回去,一直循環到完成。MCP 是讓外部系統用統一格式提供工具的協定,Skill 則是需要時才載入的工作說明書。簡單說,Tool 是動作,MCP 是接外部系統的標準,Skill 是流程知識。