全新工具帶:Artifacts、Tasks 與型別化輸出
導覽 Claude Code Fable 5 時代的工具帶:Artifacts、Task 系統、AskUserQuestion 預覽、ReportFindings、LSP 工具,以及可接續的子代理。
你將學到什麼
第 5 模組已經涵蓋了 Fable 5 時代的重大架構轉變 — 模型、effort(推理強度)、workflow(工作流程)、記憶、延遲載入工具、排程自主性。這最後一堂課涵蓋其餘的一切:一批面向使用者的工具,悄悄改變了一個 Claude Code session 產出的東西。
完成本堂課後,你將理解:
- Artifacts(成品頁面)— 發佈託管網頁,而非終端機文字
- Task 系統 — TodoWrite 進化為可追蹤、具依賴關係的任務
- 帶預覽的 AskUserQuestion,以及計劃模式(plan mode)如何安排提問順序
- ReportFindings — 程式碼審查輸出成為型別化資料,而非散文
- LSP 工具、ShareOnboardingGuide 與主代理的 worktree
- 具名、可接續的子代理(subagent)與預設背景執行
問題所在
在第 2 堂課你學到了最初的工具系統:Read、Write、Edit、Bash、Grep。那些工具每一個都是在幫助 agent 對世界採取行動。但 agent 的輸出 — 你實際消費的東西 — 始終只有一種形態:終端機裡的文字。
這個天花板無所不在:
- 一次程式碼審查產出一整面散文牆,你得用眼睛逐行解析。
- 一份進度清單(TodoWrite,第 3 堂課)的生命週期侷限在單一對話之內。
- 一份設計選項的比較以段落形式送達,而不是可以並排比較的選擇。
- 一份值得與隊友分享的報告,得從終端機裡複製貼上出來。
Fable 5 時代的 harness(執行框架)用一個簡單的想法回應:給 agent 比文字更豐富的輸出管道 — 託管頁面、型別化發現、結構化提問、可追蹤任務 — 讓宿主 UI 來做解析,而不是你的眼睛。
如何運作
Artifacts:當網頁勝過終端機文字
Claude Code 可以把一個 HTML 或 Markdown 檔案發佈成 claude.ai 上的託管網頁。頁面預設私有;使用者可以自行選擇分享。這是儀表板、報告與視覺化說明的管道 — 任何「渲染後的頁面勝過等寬字型文字」的場合都適用。
三個特性定義了 artifacts 的行為:
- 只能完全自足。 嚴格的 Content Security Policy(內容安全政策)封鎖所有外部請求 — CDN 腳本、外部樣式表、字型、fetch 呼叫。所有東西都必須內聯;資產以
data:URI 內嵌。 - 穩定的 URL。 對同一個檔案路徑重新部署,就會更新同一個 URL。其他 session 發佈的 artifacts 可以透過 URL 更新。你的團隊只需收藏一個連結;你持續改進連結背後的內容。
- 響應式且能感知主題。 頁面必須適應視窗大小,並在亮色與暗色主題下都能正確渲染。
Task 系統:TodoWrite 長大成人
第 3 堂課的 TodoWrite 是個規劃便箋 — 有用,但短暫且扁平。Fable 5 時代以一個真正的任務系統取而代之:
TaskCreate ──► visible task list
TaskUpdate ──► states: pending / in_progress / completed
TaskList ──► what's open, what's blocked
TaskGet ──► inspect one task
TaskStop / TaskOutput ──► control & read background work
兩項升級最為重要:
- 依賴關係。 任務可以依賴其他任務,所以清單編碼的是執行順序,而不只是意圖。
- 背景工作以任務形式追蹤。 Agent、workflow 與背景 Bash 指令全都會出現在任務清單裡,並在完成時發出通知。任務清單不再是 agent 的私人計劃 — 它是整個 session 的營運視圖。
AskUserQuestion:帶預覽的選項
Agent 可以不用散文提出開放式問題,而是拋出一個帶 2–4 個選項的結構化問題,並可選擇多選。最突出的特性是預覽(previews):每個選項可以附帶一段 ASCII 示意圖或程式碼片段,並排渲染,讓你比較的是具體的替代方案,而不是它們的文字描述。
這是第 22 堂課的 human-in-the-loop(人類在迴圈中)原則獲得了原生 UI:決策以選擇題的形式來到你面前,而不是一段文字。
計劃模式,按部就班
計劃模式仍然使用 EnterPlanMode / ExitPlanMode,但流程是刻意設計的:釐清問題發生在計劃定案之前,而使用者只會在 ExitPlanMode 核准時看到計劃。你先回答問題,然後評判一份完整連貫的計劃。
ReportFindings:審查輸出成為資料
程式碼審查的發現以型別化清單回報,而不是散文。每個發現都帶有:
| 欄位 | 用途 |
|---|---|
| file, line | 缺陷錨定在哪裡 |
| summary | 對缺陷的一句話陳述 |
| failure scenario | 具體的輸入/狀態 → 錯誤的輸出 |
| verdict | CONFIRMED(已確認)或 PLAUSIBLE(可能成立) |
| category | 發現的類型(正確性、效率……) |
因為發現是資料,宿主 UI 可以原生渲染它們。審查輸出不再是你閱讀的東西,而成為介面呈現的東西。
LSP 工具
Language server(語言伺服器)查詢 — 定義、參照、診斷 — 現在可以直接在 harness 內使用。舊工具帶靠 Grep 和推論來導航程式碼,現在 agent 可以直接詢問語言伺服器。
ShareOnboardingGuide
Harness 可以為你的專案產生一份 ONBOARDING.md,並上傳成一個隊友可以直接在 Claude Code 裡開啟的分享連結。入職知識不再是一份沒人讀的 wiki 頁面,而成為通往工具本身的活入口。
主代理的 Worktree
第 12 堂課介紹了子代理的 worktree 隔離。Fable 5 時代把它延伸到主 agent:EnterWorktree / ExitWorktree 讓主要 session 取得一份隔離的 repo 副本。子代理與 workflow agent 則透過 isolation: 'worktree' 獲得同樣的能力。
子代理:預設背景執行、具名且可接續
Agent 工具本身也改變了形態(原始模型見第 4 堂課):
- 預設背景執行。 啟動的 agent 在背景執行;完成時通知父代理。
run_in_background: false可強制同步執行。 - 具名且可接續。 可以給 agent 一個
name,父代理之後可以透過 SendMessage 以信箱(mailbox)的方式接續它 — 上下文完好無缺 — 而不是從頭開始。委派不再是射後不理。 - 最終訊息只回傳給呼叫者。 使用者永遠不會直接看到子代理的輸出;父代理必須轉達重要的部分。
隨之而來的委派準則:把多檔案的閱讀與搜尋交給 agent,主上下文只保留結論(而非整批檔案傾倒),而當你已經知道答案在哪個檔案時,單一事實的查詢就自己做。
向外延伸
兩個一句話就能說完的工具補完了這條腰帶:PushNotification 可以通知使用者的裝置,RemoteTrigger 可以觸發並與遠端 session 互動。Harness 能夠觸及它所執行的終端機之外。
實作範例
我們把整條工具帶在概念上串起來:把一次程式碼審查發佈成可分享的 artifact。
Step 1: Review runs
Subagents (background, tracked as tasks)
examine the diff
│
Step 2: Findings return typed
ReportFindings: file, line, summary,
failure scenario, verdict, category
│
Step 3: Build the page
One self-contained HTML file:
inline CSS, findings table, verdict
badges — no external requests (CSP)
│
Step 4: Publish
Artifact tool → hosted, default-private
URL on claude.ai
│
Step 5: Iterate
Fix issues, redeploy the SAME file
path → same URL updates in place
實務上的操作流程:
- 要求審查。 Agent 們在背景啟動,以受追蹤的任務形式出現,並在完成時通知你。
- 發現以資料形式送達。 每個發現都有檔案、行號、失敗情境,以及 CONFIRMED/PLAUSIBLE 判定 — 所以報告頁面可以把已確認的正確性錯誤排在可能成立的效率備註之上,完全不需要解析文字。
- 頁面必須完全自足。 沒有 CDN 圖表函式庫,沒有外部字型。樣式全部內聯;任何圖片都以
data:URI 內嵌。它必須在亮色與暗色主題下都能渲染。 - 發佈並分享。 預設私有;你先審閱,再分享連結。
- 修正後重新部署。 下週的再審查寫入同一個檔案路徑 — 團隊收藏的 URL 就會顯示更新後的報告。
一個終端機 session 產出了一份持久、可分享的交付物 — 完全不必離開 Claude Code。
前後對比
| Fable 5 之前的時代 | Fable 5 時代 |
|---|---|
| 報告是終端機散文 | 託管、可分享的 Artifacts |
| TodoWrite 便箋,僅限單一對話 | 具狀態、依賴關係與通知的 Task 系統 |
| 開放式的文字提問 | AskUserQuestion:2–4 個帶預覽的選項 |
| 審查發現是一段段文字 | ReportFindings:型別化、由 UI 渲染的資料 |
| 用 Grep 導航程式碼 | LSP 查詢:定義、參照、診斷 |
| 射後不理的子代理 | 透過 SendMessage 的具名、可接續 agent |
| Worktree 僅限子代理 | 主代理也有 EnterWorktree |
| 輸出止步於終端機 | PushNotification、RemoteTrigger、分享連結 |
關鍵洞見
這條工具帶的主題是:輸出變得結構化了。 原始的工具讓模型對世界採取行動;新的工具讓 harness 呈現工作成果。一個帶有檔案、行號與判定的發現可以被渲染與排序。一個帶有狀態與依賴關係的任務可以被監控。一個帶預覽的問題可以用一次點擊回答。一個擁有穩定 URL 的 HTML 檔案可以被分享與更新。
本堂課的每一個工具,都把「人類必須解析的文字」換成「介面可以渲染的資料」— 而正是這一點,比任何單一功能都更能解釋為什麼 Fable 5 時代的 session 感覺不再像一份聊天記錄,而更像一個工作環境。
第 5 模組總結
你已經完成了第 5 模組:Fable 5 時代 — 八堂課,講述 Claude Code 在 Claude 5 世代如何改變:
- 第 25 堂課:Claude 5 家族與模型策略 — Fable 5、Mythos 級層級,以及按任務混用模型層級。
- 第 26 堂課:Effort 等級與 Ultracode — 品質/成本旋鈕,以及 xhigh + 編排(orchestration)作為選擇性啟用。
- 第 27 堂課:Workflow 工具 — 控制流程在程式碼,判斷在模型。
- 第 28 堂課:編排品質模式 — 對抗式驗證、評審團、loop-until-dry。
- 第 29 堂課:持久記憶 — 一個事實一個檔案,MEMORY.md 作為索引。
- 第 30 堂課:延遲載入工具與 ToolSearch — 工具 schema 成為按用付費的上下文。
- 第 31 堂課:排程自主性 — 迴圈、喚醒、cron、快取感知的節奏。
- 第 32 堂課(本堂)— 擴充後的工具帶。
回想第 24 堂課的五大原則。Fable 5 時代強化了其中的每一條:
- Agent 迴圈是基礎。 Workflow 沒有取代迴圈 — 它們以確定性的方式為迴圈的委派寫下腳本,而每個子代理內部跑的仍然是同一個迴圈。
- 上下文是最珍貴的資源。 延遲載入工具、ToolSearch、以摘要取代硬壓縮、載入指標而非內容的記憶索引 — 整個時代都是上下文經濟學。
- 權限是安全網。 權限模式現在可以按生成的子代理個別設定,Bash 預設在沙箱中執行 — 隨著自主性成長,安全網也變得更細緻。
- Markdown 是擴充語言。 Skill、agent、記憶、入職指南 — 仍然是帶 frontmatter 的 Markdown 檔案。放進一個檔案,就獲得一項能力(或一段記憶)。
- 生產環境需要生產紀律。 帶狀態與通知的任務、型別化發現、可恢復的 workflow、硬性預算上限 — 這份紀律如今內建在 harness 本身。
課程到這裡結束,但平台不會停下。想持續掌握新模型與新功能落地的動態,請追蹤文章專區 — 新聞在那裡;而架構,就在這些教學裡。
去打造點什麼吧。