Claude Code · · 12 min read

Claude Code 是祕密武器,我們確定要把它交給人們嗎? - 來自 Anthropic 內部的討論

引言:從祕密武器到公開工具

截圖 1

「這是祕密武器,我們確定要把它交給人們嗎?」這是 Anthropic 內部曾經激烈討論的問題。因為 Claude Code 與 Anthropic 的每個人每天使用的工具是相同的。

在這次對話中,Alex(負責 Anthropic 的雲端關係)與 Boris(技術人員,也是 Claude Code 的建立者)將深入探討這個革命性的寫程式工具。

Claude Code 的起源與理念

截圖 2

Claude Code 是一種在終端機中進行代理寫程式的方式。與傳統的寫程式工具不同,使用者不必採用新的工具,也不必使用新的 IDE,更不必使用特定的網站或任何東西。它就是代理寫程式,而且在你工作的任何地方都可以使用。

這個概念實際上源於 Anthropic 工程師和研究人員使用工具來完成工作的方式。在現實中,人們有各種不同的技術堆疊,這種情況相當奇特,因為並沒有一個每個人都使用的標準堆疊。

有些人使用 Zed IDE,有些人使用 VS Code,然後還有一些開發者會堅定地說:「你永遠別想從我手中奪走我的 Vim,大概是從我冰冷的、死寂的手中。」

面對這種多樣性,開發團隊想要打造一個適用於所有人的東西,這就是他們最終選擇終端機的原因。

為什麼選擇終端機?

截圖 3

終端機幾乎是所有介面中最通用的,因為它很靈活,而且已經整合到每個人的工作流程中。更重要的是,它恰好也是最簡單的。正因為它如此簡單,開發團隊可以非常快速地進行迭代。

事後看來,這結果是件好事,但絕對不是一開始的初衷。

門檻極低的入門方式

截圖 4

對於想要使用 Claude Code 的新開發人員來說,入門過程相當簡單。只需要從 NPM 下載它,指令是 `npm install -g add-anthropic-ai/claude-code`。這有點像一段咒語,下載完成後,只需要在系統上有 Node.js(很多人都有),就完成了所有準備工作。

啟動也很直觀:只要在終端機輸入「claude」,按下 enter,Claude 就會引導你完成剩下的過程。你就可以開始跟它對話,它就會開始寫程式。

可以在任何終端機中運作

截圖 5

Claude Code 的一個令人印象深刻的特點是它可以在任何終端機中運作。無論你使用 iTerm2、Apple Terminal 或任何其他終端機,即使在 SSH 工作階段或 TMUX 工作階段中,它也能順利運作。

人們使用 Claude Code 的主要方式之一是在 IDE 終端機中。比如在 VS Code 終端機中使用時,體驗會變得更強大。不用在終端機中看到檔案編輯,你會在 IDE 本身看到它們又大又漂亮的顯示。同時,系統也會利用更多來自 IDE 的訊號,讓 Claude 變得更聰明。

內部成功到公開發布

截圖 6

Claude Code 在二月正式發布,距離這次對話已經過了三個多月。談到感受,Boris 用「簡直瘋了」來形容,這完全超乎預期。

在發布之前,團隊其實並不確定是否要發布它。這個工具讓 Anthropic 的工程師和研究人員在內部非常有效率,當時正在進行一場激烈的辯論。「這是祕密武器嗎?我們確定要把它給別人嗎?」因為這和 Anthropic 的每個人每天用的工具是一樣的。

最終,他們認為這是個正確的決定,因為它讓人們更有效率,而且人們喜歡它。

決定推出的轉折點

截圖 7

這個決定的轉折點來自於內部使用數據。一開始只有核心團隊的幾個人在使用,然後在某個時候,他們把它給了所有 Anthropic 的員工。接下來出現了一個驚人的每日活躍使用者(DAU)圖表,只看員工數據,連續三天都是垂直上升的。

「我們當時就想,『好吧,這太瘋狂了。這太受歡迎了。』」

之後,他們把它給了一些外部人士試用,只是想看看「我們是不是瘋了?這個有用嗎?」所有的回饋都非常正面,答案變得很明顯。

「吃自己的狗糧」的開發哲學

截圖 8

值得注意的是,Claude Code 本身就是用 Claude Code 寫的。幾乎所有 Claude Code 中的程式碼都是用 Claude Code 撰寫、重寫再重寫的。他們非常相信「吃自己的狗糧」的理念。

這非常重要,因為當你使用一個明顯經過內部測試的產品時,你可以感覺到品質的差異。在日常使用的產品中,你可以感覺到這是團隊一直在使用的東西,而不是只是為了發布而製作的產品。

Claude Code 是超級代理人

截圖 11

當開發人員在電腦上有正在處理的程式碼庫時,進入終端機,輸入「claude」,按下 enter,接下來會發生什麼呢?

Claude 開始工作。它會使用工具,會出去做它的事。這需要很多步驟。

如果你以前只在 IDE 中使用過寫程式輔助工具,如果你習慣的體驗是系統會完成一行或幾行程式碼之類的,Claude Code 完全不是那樣。它超級有代理性。

Claude 會理解你的查詢,並會使用它所擁有的所有工具,包括 bash、檔案編輯等等,用來探索程式碼庫、讀取檔案、取得所需的上下文,然後編輯檔案,進行任何你想要的變更。

寫程式方式的演進:從打孔卡片到「寫提示詞」

截圖 12

這種變化代表著與過去二、三十年的寫程式方式相比的一種新的寫程式形式。Boris 的程式設計之旅可以追溯到很久以前,他的爺爺其實是 1940 年代蘇聯第一批電腦程式設計師之一。

他的爺爺用打孔卡寫程式,因為用軟體寫程式還不是一回事。他會拿著這些大的打孔卡,在美國有 IBM 的工具,算是當時的 IDE。你會用它來撰寫這些紙質打孔卡,這就是他寫程式的方式。

有趣的是,他每晚都會把這些帶回家,Boris 的媽媽會跟他說她小時候用蠟筆在上面畫畫的故事。對她來說,那是她成長經歷的一部分。

從那時起,程式設計不斷演進。以前是打孔卡,然後有了組合語言,接著有了第一批高階語言。從 COBOL 到 Fortran,然後進入了 80 年代的 Java 和型別語言以及 Haskell,那真是令人興奮的時代。

真正在演進的是體驗本身。現在你不用處理打孔卡、組合語言,甚至程式碼。你處理的是提示,模型會搞定程式碼的部分。對於程式設計師來說,這真是太令人興奮了。

基本上,我們已經從打孔卡進化到提示了。

Claude 4 模型帶來的變化

截圖 15

直到最近,Claude Code 主要由 Claude 3.5 Sonnet 驅動。現在 Claude 4 模型為 Claude Code 提供底層支援,這解鎖了什麼新可能性呢?

大概在模型推出前幾個月,開發團隊開始在內部試用它們。Boris 回憶道,他當時下巴都掉了,感覺它強大多了。所有這些新的使用案例都被解鎖了。

當在終端機中同步使用 Claude Code 時,其中一個最大的改變是 Claude 更能遵循你的指示。你告訴它在提示或說明中做某件事,它往往會照做並堅持下去。

這是一個很大的改變,因為 3.5 就像一頭野獸。這是一個很棒的寫程式模型,但是很難駕馭。

你試著寫測試,它會把你所有的測試都模擬掉,然後你會說「不,我不是那個意思。」通常你說個一兩次,它就懂了。但它太強大了,所以還是值得的。

現在有了新一代的 Claude 4 模型,你再也不用這麼做了。它們通常第一次就能做到你想要的。

Opus 的卓越表現

截圖 17

Opus 感覺就像是 Sonnet 之上的另一個層次,它不僅非常了解使用者的意圖,而且它還能一次性完成許多以前的模型做不到的事情。

例如,Boris 已經好幾個月沒寫單元測試了,因為 Opus 會幫他寫測試。幾乎每次,它都能在第一次就完美地一次搞定。這在終端機中非常有用,讓整個過程變得更不費力。

GitHub Action:整合自動化工作流程

截圖 18

最酷的用途之一是在 GitHub Actions 和其他環境中執行 Claude Code。你可以給它一個任務,然後模型就會自己去完成。當它第一次就帶著正確的結果回來時,那感覺太棒了。

現在有了 GitHub Actions,可以在 GitHub 中加入 Claude,然後讓它在背景處理任務,接著在新的 Pull Request 中帶回結果。

使用方式很簡單:像平常一樣在終端機打開 Claude,只要執行「claude」,然後執行「/install GitHub Action」,這會引導你完成安裝步驟。雖然有幾個步驟,但都是自動的。你只需要點擊一兩個按鈕,它就會在你的 GitHub repository 中安裝 Claude 應用程式。

在 issue 中提及 @Claude,就會幫你修正

截圖 20

體驗相當酷。在任何 issue 中,你都可以 @ 提及 claude,只要 @claude。Boris 每天都在 Pull Request 中使用它。

同事會提出一個拉取請求,而不是問他們「嘿,可以請你修正這個東西嗎?」他只會說「嘿,@claude,修正這個東西」,然後它就會修正它。

而不是問「你能寫測試嗎?」(他每次都覺得有點內疚),現在只會說「嘿,@claude,寫測試」,然後這就不再是個問題了。

隨時隨地的程式設計助手

截圖 21

這完全是程式設計的一個新面向,在這裡基本上可以隨時隨地叫來你的程式設計師來幫你解決這些問題,甚至不是在你的電腦上,而是在背景運作。

這是與模型互動的開端,就像你與一位程式設計師同事互動一樣。與其 @ 提及同事,現在可以 @ 提及 claude。

軟體工程的未來轉變

截圖 22

當轉向這種模型時,這將如何改變軟體工程呢?現在團隊在背景管理所有這些 Claude Code 實例,這種變化正在重新定義軟體開發的本質。

從打孔卡到提示的演進,代表的不僅僅是工具的改變,而是思維方式的根本轉變。程式設計師不再需要專注於語法和重複性任務,而可以將注意力集中在創意和問題解決上。

這種轉變正在創造一個新的軟體工程時代,其中人類和 AI 作為協作夥伴,共同創造出更高效、更創新的解決方案。

Read next