生活分享
Claude Agent SDK 入門
用最小程式執行一次可驗證的代理工作。Claude Agent SDK 讓你用程式啟動代理工作、接收訊息與處理結果。本篇使用 Node.js 與 JavaScript 建立一個只讀代理,讀取自己的 notes.txt 並列出待辦事項。成果是一個可執行程式、明確的時間與回合限制,以及成功和失敗分開的處理方式。
閱讀時間約 5 分鐘

Claude Agent SDK 讓你用程式啟動代理工作、接收訊息與處理結果。本篇使用 Node.js 與 JavaScript 建立一個只讀代理,讀取自己的 notes.txt 並列出待辦事項。成果是一個可執行程式、明確的時間與回合限制,以及成功和失敗分開的處理方式。
先理解非互動執行Claude Code|非互動執行與 JSON 輸出用單次指令、管線與結構化輸出建立腳本。claude -p 讓你把一次任務放進腳本,由程序輸入提示並接收結果。本篇會先取得文字輸出,再保存 JSON 結果,最後使用 JSON Schema 要求固定欄位。你會同時檢查退出碼與結果內容,避免把一份存在的輸出檔誤認為執行成功。閱讀全文,準備 Node.js 22 以上與有效 API 認證。本篇建立獨立 sdk-todo 資料夾,不修改原待辦網站。SDK 套件、認證與設定載入方式依官方文件核對,訂閱登入不應直接被包裝成對外產品的共用認證。
SDK 與一般聊天 API 的差別
閱讀完整文字說明
Claude Agent SDK 入門,以流程和文件圖形呈現教學重點。
| 程式狀態 | 代表什麼 | 還需要確認 |
|---|---|---|
| 套件安裝成功 | 依賴存在 | 認證與程序可啟動 |
| Read 工具執行 | 曾嘗試讀取 | 是否讀到正確檔案 |
| 收到最終結果 | 代理回合結束 | 結果類型與業務內容 |
| 超時或例外 | 未正常完成 | 保存錯誤並判斷是否重試 |
SDK 提供代理迴圈與工具執行,你的程式透過 query 送出任務並逐個接收訊息。一般模型回覆文字,與實際使用 Read 工具讀取磁碟檔案,是兩種不同的能力。這篇故意只提供讀取工具,方便觀察最小工作流程。
不要把 allowedTools 當成工具清單的限制欄位。它主要提供預先授權,而 tools 決定本例要提供哪些工具。正式服務還需要依工作權限、資料隔離與使用者身份設計授權,不能只靠提示寫「請安全操作」。
建立獨立程式目錄
mkdir sdk-todo
cd sdk-todo
npm init -y
npm pkg set type=module
npm install @anthropic-ai/claude-agent-sdk
保存 package-lock.json,記錄安裝版本,避免後續排錯時不知道實際使用哪版。新版套件在支援的平台通常包含 Claude Code 執行檔,但若安裝時跳過 optional dependencies 或平台套件不符,可能需要依官方文件另行指定原生執行檔。
建立 notes.txt,輸入三行假資料。不要把 API key 放在這個檔案,因為代理接下來就是要讀取它。也不要把真實秘密放在可分享的範例輸出中。
買牛奶
整理桌面
閱讀文件
在程序環境提供認證
在啟動 node 的同一個終端機設定 ANTHROPIC_API_KEY。SDK 不會自動載入 .env 檔;若你使用秘密管理工具,應由該工具注入環境。下面 PowerShell 範例避免把秘密直接寫進命令歷史,輸入後也不回顯內容。
$sdkSecret = Read-Host 'API key' -AsSecureString
$env:ANTHROPIC_API_KEY = [System.Net.NetworkCredential]::new('', $sdkSecret).Password
macOS 或 Linux 可使用自己的秘密管理工具,或在支援 read -s 的 Bash 中隱藏輸入。環境變數仍存在於程序環境,這只是避免顯示與歷史紀錄,不等於永久安全保存機制。
read -rs -p 'API key: ' ANTHROPIC_API_KEY
export ANTHROPIC_API_KEY
建立只讀代理程式
import { query } from '@anthropic-ai/claude-agent-sdk';
const controller = new AbortController();
const timer = setTimeout(() => controller.abort(), 60000);
let finished = false;
try {
for await (const message of query({
prompt: '請使用 Read 讀取 notes.txt,列出三個待辦事項。不得修改檔案;讀不到就明確回報。',
options: {
cwd: process.cwd(),
tools: ['Read'],
allowedTools: ['Read'],
settingSources: [],
maxTurns: 4,
abortController: controller,
},
})) {
if (message.type === 'assistant') {
for (const block of message.message.content) {
if (block.type === 'text') console.log(block.text);
if (block.type === 'tool_use') console.log('Tool:', block.name);
}
}
if (message.type === 'result') {
finished = true;
console.log('Result:', message.subtype);
if (message.subtype !== 'success' || message.is_error) process.exitCode = 1;
}
}
if (!finished) throw new Error('No final result received');
} catch (error) {
console.error(String(error));
process.exitCode = 1;
} finally {
clearTimeout(timer);
}
settingSources 在本例明確使用空清單,不自動載入磁碟上的各層設定;若正式專案需要 CLAUDE.md 或專案設定,必須按 SDK 文件明確配置,不假設與互動 CLI 完全相同。maxTurns 限制工具回合,計時器則限制本程式等待時間,兩者不是同一種預算。
執行與核對結果
node agent.mjs
預期看到 Read 工具與三個真實待辦,再出現成功結果。重新開啟 notes.txt 確認內容沒有改變。只看到 Result: success 還要核對資料是否完整;程序成功退出不代表業務內容一定符合你的需求。
再把 notes.txt 暫時改名,重跑一次,應得到明確缺檔回報而不是捏造三個待辦。模型可能成功完成「回報缺檔」這個任務,所以應用程式若需要嚴格區分有資料與缺資料,下一步要加入結構化結果欄位與業務驗證。
處理失敗與停止
認證錯誤先確認環境變數在同一程序中存在,不要把值印出來。超時或回合用盡時,保存結果類型與必要訊息,調查原因後才調整限制。重試可能再次產生模型費用,也可能重複工具操作,不能無條件無限重跑。
目前範例只讀檔,容易重試;一旦加入寫檔或外部操作,就要設計重複執行的識別方式與結果保存。需要中止時可按 Ctrl+C,程式內則使用 AbortController;被中止的工作不能當成已收到完整結果。
正式程式通常還需要把任務狀態保存到可靠位置,例如開始、使用工具、收到最終結果與失敗原因。只在終端機印出文字適合練習,但程序中斷後無法靠記憶判斷哪些工作已完成。儲存紀錄時仍要過濾秘密與不必要的檔案內容。
本例的六十秒是示範限制,不是保證所有網路與模型工作都能在此時間內完成。若超時,先看程序是否已啟動、認證是否正常與 Read 是否回傳,再決定是否增加時間。增加限制之前先排除無限等待與錯誤重試。
當任務改為讀取多個檔案時,先在應用程式層決定允許的工作根目錄。Read 工具存在不代表你的服務可以讓任何使用者指定任意伺服器路徑;多使用者隔離需要另外設計與驗證。
小練習與交付紀錄
記錄 Node 與 SDK 版本、輸入檔、使用工具、結果類型與實際輸出。將三項待辦改為兩項,確認程式讀到新內容,再恢復原始材料。不要把套件成功安裝視為代理已完成操作。
完成判準是正常輸入能取得正確文字、缺檔不會被捏造、時間與回合有界限、檔案未修改。本篇範例依官方介面撰寫;真正的模型呼叫需要你自己的 API 認證,作者沒有代你執行付費請求。練習完成後移除不再需要的環境變數與測試金鑰。
回 Claude Code 教學總目錄Claude Code 完整教學目錄:從入門到自動化依平台、程度與功能找到需要的教學,從 96 篇文章與共用練習專案逐步完成操作。這個教學中心把 Claude Code 分成 96 個可以獨立閱讀的小題目,從桌面、CLI、網頁與手機開始,再學 MD 規則、常用指令、Skills、MCP 與自動化。你可以依推薦路線循序學習,也可以直接搜尋正在遇到的功能、命令或檔名。目錄依目前公開狀態顯示可閱讀文章。閱讀全文
同主題延伸閱讀
生活分享
Claude Code|建立第一個 mod:在 Claude Code 行程內數工具呼叫
寫一個三檔案的 mod,用驗證器與測試確認它掛上的事件。文件把 mod 定義成多了入口檔的 plugin:入口檔叫 hooks module,Claude Code 在事件發生時呼叫裡面的函式,函式可以觀察、改寫或接手事件。
生活分享
Claude Code|Git Worktree 平行工作
隔離多個任務的檔案與分支。Git Worktree 讓同一儲存庫擁有多個工作目錄,各自使用分支與檔案。本篇會把待辦篩選與文件整理分開,確認兩個 session 不會直接改到彼此的檔案,再把其中一個成果整合回主分支。你也會知道何時可以安全清理工作目錄。
生活分享
Claude Code|雙 Worktree 實作與衝突整合
隔離兩項功能,最後完成整合與回歸。兩個 Claude 工作階段同時編輯專案,最容易出現的問題是互相改到同一份檔案,或各自測試通過、整合後卻失敗。本篇用兩個 Worktree 分別處理篩選預設值與介面文字,故意製造一次小衝突,再完成整合、驗證與清理。你不需要先啟用 Agent Teams。
生活分享
Claude Code|比較流程品質、用量與執行時間
以同一資料集比較兩種工作方法。比較兩種 Claude 工作方法時,不能只挑成功那一次,也不能只看第一個答案有多快。本篇用固定案例、原始紀錄和一致判準,比較品質、重試、等待與人工整合時間,最後寫出有樣本數與限制的報告,而不是保證某個方法一定省錢。
引用本文的文章
最新旅遊情報攻略

情報
2026 韓國楓葉預測:雪嶽山 10 月 20 日、首爾近郊 10 月底、內藏山與漢拏山 11 月上旬
韓國山林廳 2026 年 9 月 22 日公布的楓紅高峰預測:雪嶽山 10 月 20 日,春川、國立樹木園到首爾植物園落在 10 月 28 日到 11 月 2 日,內藏山 11 月 4 日、漢拏山 11 月 6 日,整體比最近 5 年晚約 0.8 天。整理各地楓樹與銀杏的預測日、首爾出發怎麼排,以及出發前去哪裡看即時楓況。2026 年 10 月查證。
- 季節活動
- 自然
- 觀景

攻略胡志明市
胡志明市到頭頓一日遊:白藤碼頭搭高速船、船票與班次,下船就是胡梅纜車與耶穌基督像
人在胡志明市挪一天去頭頓看海:市中心的白藤高速船碼頭搭船,航程 120 分鐘到頭頓的胡梅碼頭,平日成人 320,000 越南盾、週末 350,000,回程末班平日 15:00。下船就是胡梅纜車站,同一條路上有白宮,小山頂上是耶穌基督像。平日一天只有兩班船,整天要從末班船倒推著排。
- 交通
- 行程範例
- 海灘

攻略沖繩
沖繩不開車攻略:單軌只到浦添,美麗海水族館要坐兩個多小時的巴士,回那霸的最後一班直達車 17:22 就開走
不租車的沖繩怎麼移動:那霸市區靠沖繩都市單軌電車(ゆいレール),那霸機場站到終點てだこ浦西 19 站、17 公里、37 分鐘,一日券 1,000 日圓;美麗海水族館有那霸機場直達的高速巴士,單程 2,000 日圓起、官方時刻表上 2 小時上下,下車後還要走 10 分鐘;古宇利島要在今帰仁村役場轉車,當天來回光坐車就六個半小時;回程的最後一班直達車 17:22 就從記念公園前開走(2026 年 9 月查證)。
- 交通
- 行程範例
- 預算
資料來源
- Run Claude Code programmatically · 查證日期:
- Overview · 查證日期:
- Quickstart · 查證日期:
- Agent SDK reference - TypeScript · 查證日期: