超越基礎:Claude Code 進階用法(第 4/4 段)


🏦 台灣Pay 銀行轉帳 💙 PayPal
介紹 plug-in 設計、非同步與平行工作流程,以及 worktree、/loop、auto mode 等工具
- 35:31 如果允許 plug-in 各自附一個 CLAUDE.md(字幕寫成 Cloud.MD),幾乎每個 plug-in 都會附,這樣無法 scale。它看起來只是一個檔案、成本很低,其實不然
- 41:18 因為 Git worktree 的規定,各 worktree 的 branch 名稱必須不同,但它們都追蹤 upstream main
- 46:46 三個重點之二:Mind the box(這句是 Claude 想的),意思是要注意你的 context window
💡 你可以怎麼用:下次同時交代兩三件事時,先用 rename 和 /color 幫每個 session 取名上色;要等很久的任務,就開 auto mode 搭配 /loop 定時檢查,再用手機的 Remote control 偶爾看一眼,別一直守在電腦前。
看全部 38 條重點
🧑🏫 這是 Claude Code 進階系列的最後一段,前半講 plug-in 該怎麼設計才不會越裝越亂,後半分享 Claude Code 團隊自己怎麼同時帶好幾個 Claude 工作。如果你已經會用 Claude,想讓它在你不在時繼續做事、或一次跑好幾件事,這段的工具和習慣可以直接拿來用。
- 35:31 如果允許 plug-in 各自附一個 CLAUDE.md(字幕寫成 Cloud.MD),幾乎每個 plug-in 都會附,這樣無法 scale。它看起來只是一個檔案、成本很低,其實不然↳ plug-in 是幫 Claude Code 加功能的擴充包;CLAUDE.md 是每次開工都會讀進去的說明檔。要是每個 plug-in 都附一份,裝越多份就越多,撐不住(這就是無法 scale)。
- 35:31 如果真的想這樣做,可以從 session start hook 回傳一段文字↳ session start hook 是「每次開新對話時自動執行的小程式」。如果真想讓 plug-in 每次都塞一段說明,就讓這個 hook 輸出那段文字,效果等同附一份說明檔。
- 36:01 用 hook 回傳文字,就很清楚是讓使用者每次都無條件付出成本。這種做法很迂迴,但講者認為這才是打造可 scale 的 plug-in 生態系該用的抽象層↳ 差別在於這種寫法擺明了:這段文字每次都會佔用使用者的空間,而且沒得選。講者故意讓它繞一圈,逼作者正視這個成本,整個 plug-in 生態才撐得起來。
- 36:01 要把 plug-in 當成 context engineering primitive(換句話說就是文字檔)來看↳ context 是 Claude 當下看得到的所有資訊。context engineering primitive 可以想成「安排這些資訊的基本積木」。講者要大家記得,plug-in 本質上就是一些文字檔。
- 36:31 Context engineering primitive 會經過反覆改進和評估,不是 agent 在背景臨時產生的東西↳ 這些積木是人寫好、測過、改過好幾輪的成品,品質有把關。它們不是 agent(會自己動手做事的 AI)在背景隨手記下的東西。
- 36:31 Memory 有它的用處,但它屬於低品質、低成本、短期的資訊;plug-in 則是用來操控 context、讓結果更好的工具。所以 memory 不屬於這一類↳ memory(記憶功能留下的筆記)有用,但它粗糙、便宜、只顧眼前。plug-in 則是精心設計、讓結果變好的工具。兩者等級不同,不要混為一談。
- 37:04 接下來談 Claude Code 團隊自己怎麼用 Claude Code,以及未來方向。兩大主題是非同步(asynchrony)和平行化(parallelism)↳ 後半段轉到 Claude Code 團隊自己的用法,核心有兩件事:asynchrony(非同步,交代完就先走開)和 parallelism(平行化,同時開好幾條線)。
- 37:38 非同步:可以離開電腦,讓它自己跑一陣子再回來看。平行化:同時進行好幾件事↳ 非同步就像把衣服丟進洗衣機,然後去做別的事。平行化則是洗衣、煮飯、回信同時進行,而每件事都交給一個 Claude 去跑。
- 37:38 兩者結合,代表你一定要擅長切換情境(context switching)。講者坦言自己和很多工程師都討厭切換情境↳ context switching 是在不同工作之間切換腦袋。同時顧好幾個 Claude,就得不停在它們之間跳來跳去。講者也承認,工程師多半很討厭這樣。
- 38:08 想做高品質、高效率的工程,工作日大概不會再是一口氣專注八小時的樣子,所以找到有效率切換情境的方法很重要↳ 以後的工作日比較像同時帶好幾個人、不斷巡場看進度,而不是埋頭做一整天。既然躲不掉,就要想辦法讓每次切換又快又省力。
- 38:08 Git worktree 是入門這種工作方式最簡單、最基本的方法之一↳ Git 是管理程式碼版本的工具,Git worktree 是它內建的功能。想開始同時跑好幾個 Claude,這是最簡單的起點。
- 38:41 Worktree 就是同一個 repo 在你電腦上不同資料夾裡的不同 checkout。Git 會做一些 lazy symlink 之類的處理,避免佔用太多磁碟空間↳ repo 是一個專案的程式碼庫,checkout 是取出一份來工作。worktree 讓同一個專案在電腦上多開幾個資料夾各自工作,Git 會共用檔案,不會重複佔空間。
- 39:12 在每個 worktree 各放一個 Claude Code instance,它們就不會互相干擾。就像以前和同事各自有自己的 checkout,只是現在你是帶領好幾個 Claude 的 technical lead↳ 每個資料夾各跑一個 Claude Code,各改各的,不會打架。你的角色就像 technical lead(技術組長),同時帶好幾個 Claude 分頭做事。
- 39:42 幫 session 改名、換顏色有助於切換情境。講者說顏色很能喚起記憶,把它比喻成 agentic 時代「給人類用的 syntax highlighting」↳ 幫每個 session(一段對話工作階段)取名、上色,一眼就認得出誰在做什麼。講者把它比喻成 syntax highlighting(程式碼依種類上色),只是這次是幫人分辨 Claude。
- 39:42 /color 能讓人很快想起那個 session 在做什麼,rename 也有幫助,對色盲的人尤其有用。切換情境的時間越短,效率越高↳ /color 幫 session 換顏色,看到顏色就想起它在忙什麼;rename 是改名,對分不清顏色的人特別有用。每次切換少花幾秒回想,累積起來差很多。
- 40:12 講者自己的設定:一大堆長期存在、都追蹤 upstream main 的 worktree,涵蓋 Anthropic 的兩個 monorepo,以及不在 monorepo 裡的 Claude Code repo↳ 講者開了一堆長期保留的 worktree,全都追蹤 upstream main(團隊共用主線的最新版),涵蓋兩個 monorepo(很多專案放在同一個大庫)和 Claude Code 自己的 repo。
- 40:44 講者有 persistent agent,最近改用更長期、各自擁有自己資料夾的 agent。做這份簡報的那個 agent 想自稱「agent N」↳ persistent agent 是長期存在、不會做完就消失的 agent。講者現在讓每個 agent 有自己的資料夾、長期使用;做這份簡報的那個 agent 還想叫自己「agent N」。
- 41:18 因為 Git worktree 的規定,各 worktree 的 branch 名稱必須不同,但它們都追蹤 upstream main↳ branch(分支)是各自修改程式的支線。Git 規定不同 worktree 不能用同一個 branch 名稱,所以名字各取各的,但全都跟著同一條主線更新。
- 41:18 長期存在的 worktree 不必每次重跑 npm init、cargo init 之類的初始化步驟,也不用重做 symlink,講者覺得這種工作流程很有效率↳ 新開一個資料夾,通常要先跑 npm init、cargo init 這類初始化,還要重設連結。資料夾長期留著,這些事只要做一次,之後打開就能直接開工。
- 41:49 讓每個 agent 維持自己的身分很重要↳ 讓每個 agent 有固定的身分,例如固定的資料夾、名字和分工。你找它時就知道它是誰、負責什麼,切換起來才不會亂。
- 41:49 Claude 之間可以互相溝通:一月時以某種形式推出,現在持續改進,也在放寬 send message(字幕作 syn messaging)的限制,Claude 現在就能傳訊息給其他 Claude↳ Claude 現在可以互相傳訊息。這個功能一月推出初版,之後持續改進,send message(傳訊息)的限制也在逐步放寬。
- 42:23 目標是:經你允許後,同一個帳號底下跑的任何 Claude 都能彼此溝通。需要讓一個 Claude 向另一個解釋事情時特別有用↳ 目標是:只要你同意,同一個帳號下的所有 Claude 都能互通。例如 A 查清楚一個問題,可以直接跟 B 說明,不用你在中間複製貼上。
- 42:23 承接前面「你工作的地方都要讓 Claude 能存取」的觀點:現在你工作的地方之一就是另一個 Claude,所以要能存取那段對話的資訊↳ 前面講過,你工作會用到的地方都該讓 Claude 讀得到。現在「另一個 Claude 的對話」也是你的工作場所之一,所以也該讓它看得到。
- 42:56 要讓它們分開也有很多正當理由(例如做 redundancy、testing),但預設上它們應該能互相溝通↳ 有時你會刻意讓它們互不相通,例如 redundancy(多做一份備援)或 testing(測試)。但這是例外,預設應該是能互通。
- 42:56 /loop 最近推出:每隔固定時間執行一次 prompt,例如每 10 分鐘跑一次↳ /loop 是新指令,讓 Claude 每隔固定時間跑一次同一個 prompt(你給它的指令),例如每 10 分鐘檢查一次某件事。
- 43:30 當 prompt 不再需要時,Claude 可以自己把 loop 關掉。這個工具的內部名稱叫 cron tool,/loop 只是叫 Claude 使用 cron tool 的文字指令↳ 事情處理完、不用再盯時,Claude 會自己停掉。背後其實是一個叫 cron tool 的定時排程工具,/loop 只是叫 Claude 去用它的快捷指令。
- 43:30 用 /loop 盯 PR(babysitting PRs)非常有用,能讓工作 pipeline 和平行化做得更好。就算 CI 要跑兩小時,也可以放著一天半,它會把 CI 的錯誤都修好↳ PR 是把改好的程式送去審核的請求,CI 是送出後自動跑的測試。用 /loop 盯 PR,測試出錯它就修;就算 CI 要跑兩小時,放一天半回來也修好了。
- 44:09 權限模式:講者認為大家都應該用 auto mode。他明確表示不推薦 dangerously skip permissions,而 auto mode 不等於 dangerously skip permissions↳ 權限模式決定 Claude 動手前要不要先問你。講者推薦 auto mode;dangerously skip permissions 則是乾脆什麼都不問,他明確不推薦,兩者不是同一回事。
- 44:09 Auto mode 有很多配套機制:一個 classifier agent,再加上另一個 agent 以對抗方式檢查 tool call,確保沒有壞事發生;官方有發過相關 blog post↳ auto mode 不是放手不管。它有 classifier(負責判斷的 agent),再加一個專門挑毛病的 agent,審查每個 tool call(Claude 要執行的操作),擋下危險動作。
- 44:45 Auto mode 基本上讓你不再遇到 permission prompt,這讓 loop、agent teams、隔夜工作變得可行↳ permission prompt 是跳出來問「可以執行嗎?」的提示。不用一直按同意,Claude 才能真的自己跑 loop、讓多個 agent 協作,或整晚工作。
- 44:45 Auto mode 比較貴,因為會多用不少 token,大約多 30%~40%。但講者說不確定這個數字、請別引用,現在可能已經更低,團隊也在努力降低↳ 代價是多用 token(AI 的計算用量,也就是費用)。講者粗估多三到四成,但他強調數字不確定、請別引用,現在可能已經更低,團隊也還在壓低。
- 44:45 剛推出的 Cloud agents(字幕原文):一個能看到所有正在跑的 agent 的地方,有個小 classifier 會依狀態分類,顯示哪些在工作、哪些卡住↳ 字幕寫 Cloud agents,是新推出的總覽畫面。它列出所有正在跑的 agent,由一個小 classifier 依狀態分類,哪些在做事、哪些卡住,一目了然。
- 45:15 在這個畫面裡可以直接送 prompt、按 Enter 跳進 session、偷看 session 內容,也能送 prompt 開新 session↳ 在這個畫面就能直接下指令、按 Enter 進入某個 session,或只是偷看它在做什麼;也能直接開新的 session,不用到處翻視窗。
- 45:46 打造這個功能的工程師在過去一個月內,用它處理了大約一千個 PR(等於用它來開發它自己),大幅縮短切換情境的延遲↳ 做這個功能的工程師,一個月內用它處理了約一千個 PR,等於邊用邊開發它自己。它讓在一堆 agent 之間切換的等待時間大幅縮短。
- 46:16 Remote control:講者強烈推薦。可以在手機和 Claude Code desktop 上查看,例如晚餐後花 30 秒確認 agent 還在隔夜運作、沒卡在蠢問題上↳ Remote control 讓你在手機或 Claude Code desktop(桌面版)上看 agent 的狀況。例如晚餐後花 30 秒,確認它整晚還在跑、沒卡在一個蠢問題上。
- 46:16 三個重點之一:給它存取權限(Give it access)↳ 第一點:給它存取權限。你工作要用到的資料、工具、對話,都盡量讓 Claude 碰得到,它才幫得上忙。
- 46:46 三個重點之二:Mind the box(這句是 Claude 想的),意思是要注意你的 context window↳ 第二點「Mind the box」,box 指 context window,也就是 Claude 一次能看的內容容量。放進去的每樣東西都在佔這個有限空間,要挑著放。
- 46:46 三個重點之三:選擇能 scale 的抽象層。想想當 monorepo 有 10 萬行、1 億行,或有 10 萬個 skill 時,你的 plug-in 會是什麼樣子↳ 第三點:挑規模變大也撐得住的做法。先想想:程式碼有 10 萬行、1 億行,或 skill(可重複使用的技能包)有 10 萬個時,你的 plug-in 還行得通嗎?
📘 術語
plug-in(外掛):講者要大家把它當成 context engineering primitive,也就是文字檔
session start hook(session 開始時觸發的 hook):可以回傳文字,等於明確讓使用者每次都無條件付出成本
context engineering primitive(context 工程的基本單元):經過反覆改進與評估、用來操控 context 以得到更好結果的東西,不是 agent 臨時產生的
memory(記憶):低品質、低成本、短期的資訊,不屬於 context engineering primitive
asynchrony(非同步):可以離開電腦,讓它跑一陣子再回來
parallelism(平行化):同時進行多件事
context switching(情境切換):在多個工作/session 之間切換;非同步加平行化之後一定要擅長這件事
Git worktree(Git 工作樹):同一個 repo 在不同資料夾的不同 checkout,用 lazy symlink 節省磁碟空間
upstream main(上游 main 分支):講者所有長期 worktree 都追蹤它,只是 branch 名稱各不相同
/color、rename(改顏色、改名):幫 session 上色、改名,方便切換時快速想起在做什麼
/loop(定時循環指令):每隔固定時間執行一次 prompt,是叫 Claude 使用 cron tool 的文字指令
cron tool(排程工具):/loop 背後工具的內部名稱
auto mode(自動權限模式):用 classifier agent 和對抗式檢查的 agent 審查 tool call,基本上不再出現 permission prompt
dangerously skip permissions(危險地跳過權限):講者明確說不推薦;auto mode 和它不一樣
classifier(分類器):auto mode 中檢查 tool call 的 agent;Cloud agents 中則用來依狀態分類各 agent
Remote control(遠端控制):可以在手機或 Claude Code desktop 上查看 agent 狀態
context window(上下文視窗):「Mind the box」這句要提醒大家注意的東西
session start hook(session 開始時觸發的 hook):可以回傳文字,等於明確讓使用者每次都無條件付出成本
context engineering primitive(context 工程的基本單元):經過反覆改進與評估、用來操控 context 以得到更好結果的東西,不是 agent 臨時產生的
memory(記憶):低品質、低成本、短期的資訊,不屬於 context engineering primitive
asynchrony(非同步):可以離開電腦,讓它跑一陣子再回來
parallelism(平行化):同時進行多件事
context switching(情境切換):在多個工作/session 之間切換;非同步加平行化之後一定要擅長這件事
Git worktree(Git 工作樹):同一個 repo 在不同資料夾的不同 checkout,用 lazy symlink 節省磁碟空間
upstream main(上游 main 分支):講者所有長期 worktree 都追蹤它,只是 branch 名稱各不相同
/color、rename(改顏色、改名):幫 session 上色、改名,方便切換時快速想起在做什麼
/loop(定時循環指令):每隔固定時間執行一次 prompt,是叫 Claude 使用 cron tool 的文字指令
cron tool(排程工具):/loop 背後工具的內部名稱
auto mode(自動權限模式):用 classifier agent 和對抗式檢查的 agent 審查 tool call,基本上不再出現 permission prompt
dangerously skip permissions(危險地跳過權限):講者明確說不推薦;auto mode 和它不一樣
classifier(分類器):auto mode 中檢查 tool call 的 agent;Cloud agents 中則用來依狀態分類各 agent
Remote control(遠端控制):可以在手機或 Claude Code desktop 上查看 agent 狀態
context window(上下文視窗):「Mind the box」這句要提醒大家注意的東西
✏️ 小考一題
根據影片,/loop 指令的作用是什麼?
A. 自動審查每個 tool call,不再出現 permission promptB. 每隔固定時間執行一次 prompt,內部是叫 Claude 使用 cron toolC. 列出所有正在執行的 agent,並依狀態分類D. 讓多個 Claude 在不同 worktree 之間互傳訊息看答案
答案:B。[42:56] /loop 會每隔固定時間(例如每 10 分鐘)執行一次 prompt;[43:30] 它的內部名稱是 cron tool,/loop 只是叫 Claude 使用 cron tool 的文字指令。其他選項分別是 send message 工具、auto mode 和 Cloud agents 的功能。
💛 覺得有幫助?支持一下


課本免費、沒有廣告,支持與否都能照常讀 🐰