這部 Claude Code 最佳實踐分享影片是由 @anthropic-ai 於 2025 年 5 月 22 日在美國加州舊金山的 Code w/ Claude 發表的,兩天前上傳到了 Anthropic 的 YouTube 頻道,影片作者-保哥,特別幫大家上好了全中文字幕,應該很好吸收!
本影片深入探討了 Cloud Code,一個由 Anthropic 開發的 AI 程式碼助理,旨在協助使用者更有效率地進行軟體開發。演講者 Cal 分享了他如何參與 Cloud Code 團隊的個人經歷,並將其比喻為一位總是在終端機上工作的程式設計師同事。他接著解釋了 Cloud Code 的底層運作原理,強調其作為一個純粹代理人,能夠利用強大的工具並透過代理式搜尋來理解程式碼庫,而非依賴索引。此外,影片也討論了 Cloud Code 的多種應用場景,從協助探索新程式碼庫、作為開發夥伴、到自動生成程式碼和支援部署與除錯。最後,演講者提供了使用 Cloud Code 的最佳實踐,包含利用 .cloud.md
文件進行狀態共享、高效的權限管理、整合其他 CLI 工具,以及最佳化工作流程和進階技巧。
以下是影片內容的整理:
Cloud Code 介紹與講者背景
講者 Cal 在約一年半前加入 Anthropic,協助創立 Applied AI 團隊,其任務是幫助客戶和合作夥伴在 Claude 基礎上構建出色的產品和功能。Cal 大部分時間都在對 Claude 進行提示,以從模型中獲得最佳輸出。他也是一位程式開發者,經常有許多想法但很少完成專案。去年底,他開始使用一款最終成為 Cloud Code 的工具,並用它來開發一個筆記應用程式。這次經歷完全改變了他編寫程式碼和思考軟體工程的方式,他對 Cloud Code 的工作效果感到非常著迷和驚訝,並在該專案上取得了比他自己能達到的更遠的進度。
Cal 最初擔心自己使用了太多 tokens,但後來發現 Cloud Code 團隊內部有一個排行榜,追蹤 Anthropic 員工的使用情況,而他在週末的使用量已衝到榜首。因此,他得以與 Boris、Cat 以及早期的 Cloud Code 團隊成員見面,並表達他對該工具的喜愛以及在提示方面的知識,最終成為了該團隊的核心貢獻者之一。他主要負責提示詞、系統提示、工具運作方式、工具描述與結果,以及評估工具效果的工作。
Cloud Code 是什麼?
Cal 將 Cloud Code 形容為一位「在終端機上完成所有工作的同事」— 就像是從不碰 GUI 的高手。它就像是隨時在你身邊的導師。
Cloud Code 如何運作?
Anthropic 團隊的開發理念是「做最簡單有效的事情」。對於 Cloud Code 來說,這意味著它是一個非常純粹的代理(pure agent)。
- 代理模型: Anthropic 所謂的代理模型,是指「一些指令、一些強大的工具,然後讓模型在迴圈中運行直到它決定完成」。Cloud Code 正是如此,它包含強大的工具,這些工具是擅長使用終端機的人會使用的,例如:
- 創建和編輯檔案。
- 使用終端機。
- 透過 MCP 引入其他功能。
- 理解程式碼庫: Cloud Code 不像一年多前常見的編碼代理那樣,透過索引整個程式碼庫並進行嵌入(rag retrieval)來理解程式碼。相反地,Claude 透過「代理式搜尋(agentic search)」來探索和理解程式碼庫,這與人類初次接觸新團隊或新程式碼庫時的探索方式相同。它使用像
Glob
、Gp
和find
這樣的搜尋工具來瀏覽程式碼庫。代理式搜尋意味著模型可以進行多次搜尋,查看結果,然後決定是否需要進一步搜尋以了解更多資訊。 - 使用者介面與權限系統: 在這些基礎之上,Cloud Code 還有一個輕量級且友好的使用者介面(UI)層,讓使用者可以看到 Claude Code 的工作過程和文字流動。它還擁有一個良好的權限系統,允許代理工作,並在代理執行潛在危險操作時強制人類介入進行確認。
- 安全性與可用性: Cloud Code 是模型之上的一個輕量級層,而且 Anthropic 的模型不僅可以透過其 API 訪問,也可以透過 AWS 和 GCP 等雲端供應商獲得。這使得將 Cloud Code 指向這些其他服務變得非常容易和自然。
Cloud Code 的使用案例
Cal 表示 Cloud Code 在各個方面都表現出色。
- 程式碼探索與新專案上手 (Discovery):
- 當你被分配到一個新的程式碼庫時(例如更換團隊、公司或開始開源專案),Cloud Code 可以極大地加速你的上手過程。
- 你可以問 Claude 某個功能是如何實現的,或者讓它查看檔案的 Git 歷史並講述程式碼在過去幾週如何變化。
- 作為思想夥伴 (Thought Partner):
- 在你深入工作之前,可以讓 Cloud Code 作為你的思想夥伴。
- 例如,當你考慮實現某個功能時,可以要求 Claude 搜尋相關資訊,並提出兩到三個不同的實施方案,而不是立即開始編寫程式碼。Claude 會利用其代理式搜尋能力,提供多種想法,然後你可以與它一起驗證這些想法。
- 程式碼建構與編寫 (Building and Writing Code):
- 從零開始的開發 (Zero to One): 你可以讓它在空目錄中從頭開始建構應用程式或遊戲。
- 在現有程式碼庫中工作: 這是 Cloud Code 團隊主要關注的方面。
- 自動生成單元測試: Cloud Code 使得添加單元測試變得非常簡單直接,因此 Cloud Code 團隊自己的程式碼庫擁有異常高的單元測試覆蓋率。
- 生成提交與 PR 訊息: 完成工作後,可以讓 Claude 編寫提交訊息或 PR 訊息。
- 部署與生命週期 (Deployment and Lifecycle):
- 透過 Cloud Code SDK,可以無頭模式(headless)或以程式設計方式使用它,將編碼代理嵌入到 CI/CD 流程中,或在 GitHub 中提供程式設計協助。
- 支援與規模化 (Support and Scale):
- 更快地調試錯誤。
- 協助大型程式碼庫遷移: 許多客戶使用 Cloud Code 來處理大型程式碼庫遷移專案(例如從舊版 Java 遷移到新版,或從 PHP 遷移到 React/Angular),這使得這類專案更容易消化。
- 與終端機和 CLI 工具協作 (Terminal and CLI Tools):
- Claude 非常擅長處理終端機指令和各種 CLI 工具,例如 Git、Docker、BigQuery 等。
- 當你遇到 Git rebase 等難題時,可以直接啟動 Cloud Code 並描述情況,讓它來解決。
Cloud Code 最佳實踐
- 使用
cloud.md
檔案:- Cloud Code 是一個代理,沒有內建記憶體。
cloud.md
是在不同會話或團隊成員之間共享狀態的主要方式。 - 當你啟動 Claude 時,如果工作目錄中有
cloud.md
檔案,它會被加載到上下文中,並作為重要指令提供給 Claude。 - 存放位置: 你可以將
cloud.md
放入專案並提交到版本控制中,供所有團隊成員共享。也可以在你的主目錄中放置一個,讓 Claude 始終知道某些通用資訊。 - 內容:
cloud.md
可以包含運行單元測試的方法、專案的佈局概覽、測試位置、模組資訊或程式碼風格指南等。 - 多個
cloud.md
檔案: 在同一目錄中不能有多個cloud.md
。預設情況下,Claude 只讀取當前工作目錄中的cloud.md
文件。對於子目錄中的cloud.md
文件,Cloud Code 會在搜尋時發現並讀取相關的,但預設不會自動讀取所有子目錄中的文件,以避免上下文溢出(尤其是在單體儲存庫中)。你可以透過在cloud.md
中使用@
符號來引用其他cloud.md
檔案,以手動加載它們。
- Cloud Code 是一個代理,沒有內建記憶體。
- 權限管理 (Permission Management):
- 預設情況下,對於讀取操作(搜尋或讀取),Cloud Code 會自動執行。
- 但當它開始寫入、運行 bash 命令或執行可能更改機器內容的操作時,UI 會彈出權限請求,你可以選擇「是」、「永遠允許」或「否」。
- 自動接受模式 (Auto Accept Mode): 按下
Shift + Tab
可以進入此模式,Cloud Code 將自動執行。 - 你可以在設定中配置特定命令(如
npm run test
)始終被批准,以加速工作流程。
- 整合設定 (Integration Setup):
- 由於 Claude 擅長終端機操作,因此你可以透過安裝更多 CLI 工具(例如 GitHub 的
GH
工具)或連接更多 MCP 伺服器來擴展 Cloud Code 的能力。 - 推薦使用知名且文檔齊全的 CLI 工具,而非安裝 MCP 伺服器。
- 如果你有內部工具,也可以透過
cloud.md
告知 Claude。
- 由於 Claude 擅長終端機操作,因此你可以透過安裝更多 CLI 工具(例如 GitHub 的
- 上下文管理 (Context Management):
- Claude 作為一個代理,在調用工具時會累積上下文。Anthropic 模型目前的上下文視窗為 200,000 tokens,這個視窗可能會被佔滿。
- 清空上下文 (
/cle
): 在長期會話中,當上下文視窗接近上限時,你可以運行/cle
來清空所有內容(除了cloud.md
)並重新開始。 - 壓縮上下文 (
/compact
): 或者,你可以運行/compact
,這會將當前會話的內容總結成一個新的用戶訊息,就像是將工作交給另一位開發者接手一樣,這個摘要會作為新會話的起始點。這個壓縮功能經過了大量調優。
- 高效工作流程 (Efficient Workflows):
- 規劃和待辦事項 (Planning and To-Dos):
- 不要直接讓 Claude 修復錯誤,而是先讓它搜尋問題根源,然後提出解決方案的計畫。這能讓你驗證其計畫,節省時間。
- Claude 在執行大型任務時會創建一個待辦事項列表。你可以監控這個列表,如果發現任何不合理的地方,可以按下
Escape
鍵介入並修改待辦事項列表。
- 智慧結對編程 (Smart Pair Coding):
- 雖然讓 Claude 自動工作很誘人,但結合以下做法效果更好:
- 測試驅動開發 (TDD): 讓 Claude 進行小修改,運行測試確保通過。
- 檢查 TypeScript 和 Linting。
- 定期提交: 這樣如果 Cloud Code 偏離軌道,你可以隨時回溯並重試。
- 雖然讓 Claude 自動工作很誘人,但結合以下做法效果更好:
- 使用截圖引導和調試 (Screenshots to Guide and Debug):
- Claude 基於多模態模型,你可以將截圖貼上,或指定圖片檔案,讓 Claude 根據圖片內容(例如設計稿)來構建網站。
- 規劃和待辦事項 (Planning and To-Dos):
- 進階技巧 (Advanced Techniques):
- 同時運行多個 Claude 實例: 一些用戶和 Anthropic 內部人員會同時運行多達四個 Claude 實例,透過 T-Mo 或不同標籤頁進行協調。
- 善用
Escape
鍵: 在 Claude 工作時,你可以監控其進度,並按下Escape
鍵停止它並介入,以修正其路徑或給予其他指示。 - 雙擊
Escape
: 這個隱藏功能可以讓你回溯到對話的更早階段,重置工具的擴展。 - MCP 中的工具擴展 (Tool Expansion in MCP): 如果預設的 bash 工具無法滿足需求,可以考慮使用 MCP 伺服器來擴展工具能力。
- 無頭自動化 (Headless Automation): 這是團隊最興奮的領域,探索如何在 GitHub Actions 等地方以程式設計方式使用 Claude。
新功能與更新
- 模型選擇: 現在可以透過
/model
或/config
命令查看並切換正在運行的模型(預設為 Sonnet,也可選擇 Opus)。 - 工具調用之間思考 (Thinking Between Tool Calls): Cloud 4 模型現在可以在工具調用之間進行「思考」(think hard 或 extended thinking)。當你觸發思考時,會看到淺灰色文字顯示思考過程,這在解決任務和調試錯誤時非常有用。
- VS Code 和 JetBrains 整合: Cloud Code 提供了與 VS Code 和 JetBrains 的良好整合,例如 Claude 會知道你當前所在的檔案。
- 保持更新: 團隊發布新功能的速度很快。建議定期查看 Anthropic 在 GitHub 上公開的 Cloud Code 專案下的變更日誌(changelog)來了解最新資訊。
問答環節補充
- 多個
cloud.md
檔案的處理: 如上所述,預設只讀取當前目錄的cloud.md
,子目錄的需模型搜尋發現或手動引用。可以在主目錄設定通用cloud.md
。 - 模型不遵守
cloud.md
指令的問題: 講者提到,以前的模型(如 3.7)即使在提示中明確指示不要留下內聯註釋,模型也傾向於留下。Cloud 4 模型在遵守指令方面有了顯著改進,早期測試者反饋cloud.md
被更密切地遵守。因此,升級到新模型並重新審視cloud.md
內容可能會有所幫助。 - 多代理執行與並行化 (Multi-Agent Execution and Parallelization): 目前 Cloud Code 的「簡單有效」方式是專注於一個擅長編碼的代理。如果想實現多個代理協同工作並共享上下文,目前的最佳方法是讓代理們「寫入一個共享的 markdown 檔案或類似的東西」,以便它們可以彼此簽入並進行交流。例如,一個 Claude 實例將資訊寫入
ticket.md
,然後另一個 Claude 實例讀取該檔案並從中接手工作。這依賴於模型讀取檔案並理解其內容的能力。未來可能會在產品中提供更原生的支援。