內建工具
您可以建立自己的自訂工具,但有些功能已經足夠常見,Anthropic 直接提供預先建置好的版本。您不需要撰寫程式碼,也不需要自行架設沙盒環境。您只需宣告該工具,Anthropic 就會負責執行。
伺服器工具:由您宣告,由 Anthropic 執行
Anthropic 提供在其基礎設施上執行的伺服器工具(server tools)。這些工具並非由您執行——而是由 Anthropic 執行。這表示您不需要為這些呼叫建立代理迴圈(agent loop)。Claude 會自行呼叫工具,結果會在同一個回應中回傳。
主要的工具有:
- 網路搜尋(Web search)——搜尋網際網路並回傳附有引用來源的結果
- 程式碼執行(Code execution)——在沙盒中撰寫並執行 Python
- 網頁擷取(Web fetch)——從 URL 擷取完整內容
一個檔案中的兩個伺服器工具
讓我們在一個檔案中看看其中兩個重要的工具:兩次 messages.create 呼叫,一次使用網路搜尋,另一次使用程式碼執行。
import anthropic
client = anthropic.Anthropic()
# 呼叫 1:網路搜尋 — Anthropic 在伺服器端執行搜尋
search_response = client.messages.create(
model="claude-opus-5",
max_tokens=1024,
tools=[{"type": "web_search_20260209", "name": "web_search"}],
messages=[
{"role": "user", "content": "What is Anthropic's latest model release? Answer in one sentence."}
],
)
for block in search_response.content:
if block.type == "server_tool_use":
print(f"Tool call: {block.name} — {block.input}")
elif block.type == "text":
print(block.text)
# 呼叫 2:程式碼執行 — Claude 在沙箱中撰寫並執行 Python
code_response = client.messages.create(
model="claude-opus-5",
max_tokens=1024,
tools=[{"type": "code_execution_20260120", "name": "code_execution"}],
messages=[
{"role": "user", "content": "Calculate the mean and standard deviation of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"}
],
)
for block in code_response.content:
if block.type == "server_tool_use":
print(f"Tool call: {block.name} — {block.input}")
elif block.type == "bash_code_execution_tool_result":
print(f"stdout: {block.content.stdout}")
elif block.type == "text":
print(block.text)請注意兩件事:
- 這裡沒有代理迴圈。 我們不需要根據
stop_reason做切換,也不需要把工具結果再推送回去。Anthropic 會在伺服器端執行工具,回應中已經包含結果。 - 回應中有新的區塊類型。 工具呼叫有一個
server_tool_use區塊,輸出則有一個程式碼執行工具結果區塊,再加上一般的text區塊。
執行它
對於網路搜尋,您會看到印出 Claude 的工具呼叫,接著是一句關於最新模型發布的答案,其中已經整合了搜尋引用來源。
對於程式碼執行,您會看到 Claude 實際撰寫的 Python 程式碼、沙盒執行後的 stdout 輸出,以及最終的文字答案。
我們不需要自行架設搜尋爬蟲,也不需要自行執行 Python 沙盒。我們只宣告了兩個工具,就免費獲得了這兩項功能。
另一個類別:客戶端工具
值得了解還有另一個類別存在。客戶端工具(Client tools)在您的程式碼執行的地方執行。Anthropic 發布這些工具的結構描述(schema)並訓練 Claude 使用它們,因此您不需要自行定義結構描述。以下是兩個範例:
- 記憶(Memory)——Claude 在不同工作階段之間讀寫記憶
- Bash——一個持續存在的 bash shell,讓 Claude 可以執行指令

它們的形式與自訂工具相同,但結構描述已內建於 Claude 之中。您的程式碼仍然負責執行它們:對於記憶功能,有四個 SDK 提供了輔助函式,可處理 Claude 針對您提供的儲存空間所發出的記憶呼叫;而對於 bash,則是由您的應用程式自行執行該 shell。
為什麼這在正式環境中很重要
在正式環境的應用程式中,這是通往原本需要數週才能完成的功能的最短路徑。網路搜尋可以驅動一個事實查核端點,用來對照即時網路內容,驗證草稿中每一項數字與法規相關的主張。

不過有一點要提醒:某件事在網路上被驗證過,並不代表它就是真的。請務必再次檢查 Claude 的工作成果。
重點回顧
- 伺服器工具——網路搜尋、程式碼執行、網頁擷取——都在您的
tools陣列中宣告。由 Anthropic 負責執行。 - 您會在同一個回應中取得結果,不需要代理迴圈。請留意
server_tool_use以及工具結果區塊,它們會與一般的文字區塊並列出現。 - 像記憶與 bash 這類客戶端工具,會在您的程式碼執行的地方執行。結構描述已內建於 Claude 之中,四個 SDK 提供了記憶功能的輔助函式,而對於 bash,則由您的程式碼負責執行該 shell。
- 「由 Anthropic 代管」這個概念可以一路擴展到更高層次:受管理代理(managed agents)將這個概念套用到整個代理,而不僅僅是單一工具。