Claude Code 是一款專為「智能體編碼」(agentic coding) 設計的命令列工具。它由 Anthropic 開發,旨在讓開發者能以更原生、強大的方式,將 Claude 的能力深度整合至日常的編碼工作流程中。不同於許多強制特定流程的工具,Claude Code 刻意設計得低階且無預設立場,提供近乎原始的模型存取能力,使其成為一個極具彈性、可自訂、可編寫腳本且安全無虞的開發利器。
要充分發揮 Claude Code 的潛力,關鍵在於掌握其獨特的工作模式並建立適合自己的**實踐。本文將作為您的入門指南,從最基礎的環境設定開始,逐步介紹一系列已被證實有效的訣竅與工作流程。無論您是剛接觸智能體編碼的新手,還是經驗豐富的開發者,都能從中找到啟發,學習如何客製化您的設定、善用各種工具,並將 Claude Code 無縫融入您的開發、測試與程式碼庫管理等各個環節。
以下內容是翻譯 Anthropic 的 Claude Code: Best practices for agentic coding,幫助你可以更快的了解 Claude Code 並開始作為你的 AI 輔助工具。
我們最近 發布了 Claude Code,這是一款為智能體編碼設計的命令列工具。作為一個研究專案,Claude Code 為 Anthropic 的工程師和研究人員提供了一種更原生的方式,將 Claude 整合到他們的編碼工作流程中。
Claude Code 刻意設計得低階且無預設立場,提供近乎原始的模型存取能力,而不強加特定的工作流程。這種設計哲學創造了一個靈活、可自訂、可編寫腳本且安全的強大工具。然而,雖然功能強大,但這種靈活性也為剛接觸智能體編碼工具的工程師帶來了學習曲線——至少在他們發展出自己的一套**實踐之前是如此。
本文概述了一些已被證實有效的通用模式,這些模式不僅適用於 Anthropic 的內部團隊,也適用於在各種程式碼庫、語言和環境中使用 Claude Code 的外部工程師。此列表中的任何內容都不是一成不變或普遍適用的;請將這些建議視為起點。我們鼓勵您進行實驗,找出最適合您的方式!
想了解更詳細的資訊嗎?我們在 claude.ai/code 的完整文件中,涵蓋了本文提到的所有功能,並提供了額外的範例、實作細節和進階技巧。
Claude Code 是一個智能體編碼助理,它會自動將上下文(context)拉取到提示(prompt)中。這個收集上下文的過程會消耗時間和 Token,但您可以透過調整環境來進行優化。
是一個特殊檔案,Claude 在開始對話時會自動將其內容拉取到上下文中。這使得它成為記錄以下資訊的理想之處:
檔案沒有固定的格式要求。我們建議保持其簡潔且易於人類閱讀。例如:
您可以將 檔案放置在幾個不同的位置:
當您執行 指令時,Claude 會自動為您生成一個 。
您的 檔案會成為 Claude 提示的一部分,因此應像任何頻繁使用的提示一樣進行優化。一個常見的錯誤是添加大量內容卻沒有迭代其有效性。花點時間實驗,確定什麼內容能讓模型產生**的指令遵循效果。
您可以手動將內容添加到 ,或者按下 鍵給 Claude 一個指令,它會自動將其整合到相關的 中。許多工程師在編碼時會頻繁使用 來記錄指令、檔案和風格指南,然後將 的變更包含在提交(commit)中,這樣團隊成員也能受益。
在 Anthropic,我們偶爾會將 檔案透過 提示詞優化器 處理,並經常調整指令(例如,使用「IMPORTANT」或「YOU MUST」來加強語氣)以提高遵循度。
預設情況下,對於任何可能修改您系統的操作,Claude Code 都會請求權限:檔案寫入、許多 bash 指令、MCP 工具等。我們刻意採用這種保守的方法設計 Claude Code,以將安全性放在首位。您可以自訂允許清單,以允許您知道是安全的額外工具,或允許那些易於撤銷的潛在不安全工具(例如,檔案編輯、)。
有四種方式可以管理允許的工具:
Claude 知道如何使用 CLI 與 GitHub 互動,以建立 issue、開啟 pull request、讀取評論等。如果沒有安裝 ,Claude 仍然可以使用 GitHub API 或 MCP 伺服器(如果您已安裝)。
Claude 可以存取您的 shell 環境,您可以在其中為它建立一系列便利的腳本和函式,就像為自己建立一樣。它還可以透過 MCP 和 REST API 來利用更複雜的工具。
Claude Code 會繼承您的 bash 環境,使其能夠存取您所有的工具。雖然 Claude 知道像 unix 工具和 這樣常見的工具,但若沒有指示,它不會知道您的自訂 bash 工具:
Claude Code 同時作為 MCP 伺服器和客戶端。作為客戶端,它可以透過三種方式連接到任意數量的 MCP 伺服器以存取其工具:
在使用 MCP 時,以 旗標啟動 Claude 也會很有幫助,這有助於識別設定問題。
對於重複性的工作流程——例如除錯循環、日誌分析等——可以將提示詞模板儲存在 資料夾內的 Markdown 檔案中。當您輸入 時,這些模板就會透過斜線指令選單提供。您可以將這些指令存入 git,讓您的團隊其他成員也能使用。
自訂斜線指令可以包含特殊關鍵字 ,以從指令調用中傳遞參數。
例如,這是一個可以用來自動拉取並修復 GitHub issue 的斜線指令:
將以上內容放入 會使其在 Claude Code 中成為 指令。然後您就可以使用例如 來讓 Claude 修復 issue #1234。同樣地,您可以將您個人的指令添加到 資料夾,讓這些指令在您所有的會話中都可用。
Claude Code 不會強加特定的工作流程,讓您有彈性地以自己想要的方式使用它。在這份彈性所提供的空間中,我們的使用者社群中浮現了幾種成功有效使用 Claude Code 的模式:
這個多功能的工作流程適用於許多問題:
步驟 #1-#2 至關重要——如果沒有它們,Claude 傾向於直接跳到編寫解決方案的程式碼。雖然有時候這正是您想要的,但對於需要更深入前期思考的問題,要求 Claude 先進行研究和規劃,能顯著提高其表現。
這是 Anthropic 內部偏好的一種工作流程,適用於可以透過單元測試、整合測試或端對端測試輕鬆驗證的變更。測試驅動開發(TDD)在智能體編碼的加持下變得更加強大:
當 Claude 有一個清晰的目標可以迭代時——無論是視覺模型、測試案例或其他類型的輸出——它的表現最好。透過提供像測試這樣的預期輸出,Claude 可以進行變更、評估結果,並逐步改進直到成功。
與測試工作流程類似,您也可以為 Claude 提供視覺目標:
如同人類一樣,Claude 的輸出在經過迭代後往往會顯著改善。雖然第一個版本可能不錯,但經過 2-3 次迭代後,通常看起來會好得多。給予 Claude 查看其輸出的工具,以獲得**結果。
您可以不監督 Claude,改用 來繞過所有權限檢查,讓 Claude 不間斷地工作直到完成。這對於修復 lint 錯誤或生成樣板程式碼等工作流程非常有效。
讓 Claude 執行任意指令是有風險的,可能導致資料遺失、系統損壞,甚至資料外洩(例如,透過提示注入攻擊)。為了將這些風險降到最低,請在沒有網路存取的容器中使用 。您可以參考這個使用 Docker Dev Containers 的參考實作。
在接觸新的程式碼庫時,使用 Claude Code 進行學習和探索。您可以像在結對程式設計(pair programming)時詢問專案中的其他工程師一樣,向 Claude 提出各種問題。Claude 可以代理式地搜尋程式碼庫以回答一般性問題,例如:
在 Anthropic,以這種方式使用 Claude Code 已成為我們核心的上手(onboarding)工作流程,顯著縮短了熟悉時間並減輕了其他工程師的負擔。不需要特別的提示技巧!只需提問,Claude 就會探索程式碼以尋找答案。
Claude 可以有效地處理許多 git 操作。許多 Anthropic 的工程師使用 Claude 處理超過 90% 的 git 互動:
Claude Code 可以管理許多 GitHub 互動:
這消除了記住 命令列語法的需要,同時自動化了例行任務。
Anthropic 的研究人員和資料科學家使用 Claude Code 來讀取和寫入 Jupyter notebook。Claude 可以解釋輸出,包括圖片,提供了一種快速探索和與資料互動的方式。沒有特定的提示或工作流程要求,但我們推薦的一個工作流程是在 VS Code 中並排開啟 Claude Code 和一個 檔案。
您也可以要求 Claude 在向同事展示之前,清理或美化您的 Jupyter notebook。明確告訴它要讓 notebook 或其資料視覺化「美觀」,通常有助於提醒它正在為人類的觀看體驗進行優化。
以下建議適用於所有工作流程:
Claude Code 的成功率會隨著更具體的指令而顯著提高,尤其是在初次嘗試時。在開始時給予清晰的指引,可以減少之後修正路線的需要。
例如:
Claude 能夠推斷意圖,但它無法讀懂您的心思。具體性能帶來更符合期望的結果。
Claude 能透過多種方式出色地處理圖片和圖表:
這在處理設計稿作為 UI 開發的參考點,以及用於分析和除錯的視覺圖表時特別有用。如果您沒有將視覺資料加入上下文中,向 Claude 明確表示結果的視覺吸引力有多重要仍然會很有幫助。
使用 tab 鍵自動完成功能來快速引用您儲存庫中任何地方的檔案或資料夾,幫助 Claude 找到或更新正確的資源。
將特定的 URL 與您的提示一起貼上,讓 Claude 抓取和閱讀。為了避免對相同網域(例如,docs.foo.com)重複出現權限提示,請使用 將網域添加到您的允許清單中。
雖然自動接受模式(按 shift+tab 切換)能讓 Claude 自主工作,但通常您作為一個積極的協作者並引導 Claude 的方法會得到更好的結果。您可以在一開始就向 Claude 徹底解釋任務以獲得**結果,但您也可以隨時修正 Claude 的路線。
這四個工具有助於修正路線:
雖然 Claude Code 偶爾能在第一次嘗試就完美解決問題,但使用這些修正工具通常能更快地產生更好的解決方案。
在長時間的會話中,Claude 的上下文視窗可能會充滿不相關的對話、檔案內容和指令。這會降低效能,有時還會分散 Claude 的注意力。在任務之間頻繁使用 指令來重置上下文視窗。
對於有多個步驟或需要詳盡解決方案的大型任務——例如程式碼遷移、修復大量 lint 錯誤或運行複雜的建置腳本——可以透過讓 Claude 使用一個 Markdown 檔案(甚至是一個 GitHub issue!)作為檢查清單和工作草稿區來提高效能:
例如,要修復大量的 lint 問題,您可以這樣做:
有幾種方法可以將資料提供給 Claude:
大多數會話都涉及這些方法的組合。例如,您可以透過管道傳入一個日誌檔案,然後告訴 Claude 使用工具來拉取額外的上下文以對日誌進行除錯。
Claude Code 包含了無頭模式,適用於非互動式情境,如 CI、pre-commit hook、建置腳本和自動化。使用 旗標搭配一個提示來啟用無頭模式,並使用 來進行串流式 JSON 輸出。
請注意,無頭模式不會在會話之間持續存在。您必須在每個會話中觸發它。
無頭模式可以驅動由 GitHub 事件觸發的自動化,例如當您的儲存庫中建立了一個新的 issue。例如,公開的 Claude Code 儲存庫 就使用 Claude 來檢查新進的 issue 並指派適當的標籤。
Claude Code 可以提供主觀的程式碼審查,超越傳統 linting 工具所能檢測的範圍,識別出如錯別字、過時的註解、誤導性的函式或變數名稱等問題。
除了獨立使用外,一些最強大的應用涉及並行運行多個 Claude 實例:
一個簡單而有效的方法是讓一個 Claude 編寫程式碼,而另一個 Claude 則進行審查或測試。這類似於與多位工程師合作,有時擁有獨立的上下文是有益的:
您可以對測試做類似的事情:讓一個 Claude 編寫測試,然後讓另一個 Claude 編寫程式碼來使測試通過。您甚至可以讓您的 Claude 實例互相溝通,方法是給它們各自獨立的工作草稿區,並告訴它們要寫入哪一個、讀取哪一個。
這種分離通常比讓單一 Claude 處理所有事情產生更好的結果。
許多 Anthropic 的工程師不會等待 Claude 完成每一步,而是這樣做:
這種方法在處理多個獨立任務時表現出色,是多個 checkout 的一種更輕量級的替代方案。Git worktree 允許您將同一個儲存庫的多個分支 checkout 到不同的目錄中。每個 worktree 都有自己獨立的工作目錄和檔案,但共享相同的 Git 歷史和 reflog。
使用 git worktree 使您能夠在專案的不同部分同時運行多個 Claude 會話,每個會話都專注於其獨立的任務。例如,您可能讓一個 Claude 重構您的身份驗證系統,而另一個 Claude 則在建構一個完全不相關的資料視覺化元件。由於任務不重疊,每個 Claude 都可以全速工作,無需等待對方的變更或處理合併衝突:
一些訣竅:
(無頭模式)能以程式化的方式將 Claude Code 整合到更大的工作流程中,同時利用其內建的工具和系統提示。使用無頭模式主要有兩種模式:
對於這兩種使用情況,使用 旗標來對 Claude 的調用進行除錯會很有幫助。我們通常建議在生產環境中關閉詳細模式以獲得更簡潔的輸出。
您在使用 Claude Code 時有什麼訣竅和**實踐嗎?請標記 @AnthropicAI,讓我們看看您正在打造什麼!
作者:Boris Cherny。本文汲取了廣大 Claude Code 使用者社群的**實踐,他們富有創意的做法和工作流程持續啟發著我們。同時特別感謝 Daisy Hollman、Ashwin Bhat、Cat Wu、Sid Bidasaria、Cal Rueb、Nodir Turakulov、Barry Zhang、Drew Hodun 以及許多其他 Anthropic 的工程師,他們寶貴的見解和對 Claude Code 的實踐經驗幫助塑造了這些建議。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/222642.html