Developer Advocate Guide

白話文圖解:
Claude Code SDK 底層邏輯

放棄難懂的 JSON 封包與抽象的節點圖。我們直接用「情境對比」,讓你一秒看懂 SDK 到底在幹嘛、它跟傳統 API 差在哪,以及為什麼程式會自己「知錯能改」。

1

第一關:千萬別抄影片的程式碼

官方教學影片裡示範的套件名稱已經過期。如果你照抄,程式根本跑不起來。請認明下方的正確版本:

❌ 影片舊版寫法 (會報錯)
npm install @anthropic-ai/claude-code import { query } from "@anthropic-ai/claude-code";
✅ 最新正確寫法 (請用這個)
npm install @anthropic-ai/claude-agent-sdk import { query } from "@anthropic-ai/claude-agent-sdk";
2

什麼是「串流思考軌跡」?

很多人不懂為什麼 SDK 要寫 for await (const event of query())。因為它不是一個「按下去等答案」的 API,而是一個「實況轉播台」
點擊下方按鈕,看看「傳統 API」和「Agent SDK」在處理同一個任務時,你看到的畫面有什麼不同:

任務:找出專案目錄裡有幾個 JS 檔案

傳統 API (乾等模式)

Agent SDK (實況串流)

等待執行...

💡 這就是 for await 的威力:你能「攔截」到它每一次決定使用工具 (tool_use) 的瞬間,用來實作 UI 進度條,而不是讓用戶看著畫面發呆。

3

「預設唯讀」與神奇的錯誤迴圈

這是初學者最常跌倒的坑:SDK 為了安全,預設不准修改檔案。如果你在 Prompt 要求它改檔案,程式不會當機,而是會上演一段「被警衛攔下,然後乖乖道歉」的戲碼。
觀察下方模擬器,看看「有給權限」和「沒給權限」時,底層系統與 AI 之間的對話是怎麼進行的。

請點擊上方按鈕開始模擬...
👨‍💻 程式碼解法:
在呼叫時加上 options: { allowedTools: ["Edit"] },或是修改專案底下的 .claude/settings.json,就能發給它通行證。