編譯 | 傅宇琪、褚杏娟
策劃 | Tina
近日,初創(chuàng)公司 Every 總經(jīng)理 Kieran Klaassen 在 x 上表示自己用 Claude Code 編程時(shí)平均每天花 250 美元,也就是說一個(gè)月花費(fèi) 6000 美元(約合 4.3 萬人民幣)。他還曬出了詳細(xì)的花費(fèi)列表:
帖子發(fā)出后,網(wǎng)友們紛紛對(duì) Klaassen 的花費(fèi)表示不理解:“你是買了 30 個(gè) Max 套餐賬戶嗎?還是說你用的是 API 付費(fèi)方式?我不懂?!薄叭绻慊诉@么多錢,還不如直接雇個(gè)開發(fā)者呢!”
當(dāng)然,也有開發(fā)者認(rèn)為 Klaassen 的做法很有啟發(fā)性,畢竟“6000 美元不算什么,只是高級(jí)工程師一周的薪資?!钡u(píng)的聲音還是占了大多數(shù)。
隨后,他在 x 上解釋稱,“花了 6000 美金,多個(gè) Agent 并行運(yùn)行,一天提交了 10 個(gè) PR,還完成重構(gòu)并部署上線了?!彼€表示:
我知道這讓你不爽。又一個(gè)“看看我 AI 開銷”的爆款帖子,都是炒作,都是噪音。
但你翻白眼時(shí),錯(cuò)過了關(guān)鍵點(diǎn):這些智能體徹底改變了我們的構(gòu)建方式,不只是更快——而是完全不同。就像從所有樂器的演奏者變成了交響樂團(tuán)的指揮。音樂變得更豐富,而你與創(chuàng)作的關(guān)系也完全改變了。
我們只有兩個(gè)工程師。服務(wù)數(shù)千用戶。過去需要數(shù)月的功能,現(xiàn)在幾天就能上線。不是因?yàn)槲覀儗懘a更快了,而是因?yàn)槲覍W(xué)過音樂,學(xué)會(huì)了“指揮” 。只是這次,指揮的是智能體。
沒錯(cuò),賬單看起來的確像是在博眼球。但成果呢?那些是實(shí)實(shí)在在的。當(dāng)懷疑的人還在爭(zhēng)論這是否可持續(xù)時(shí),我們已經(jīng)在交付成果了。當(dāng)他們?cè)诒г钩醋鲿r(shí),我們正在培育超越我們自身能力的系統(tǒng)。
軟件開發(fā)變成了一場(chǎng)不同思維方式頭腦之間的協(xié)作藝術(shù)。
你可以繼續(xù)無視這些賬單截圖,把一切都當(dāng)作炒作。但你每觀望一天,理解它的人和無法理解它的人之間的差距就會(huì)更大一些。
在評(píng)論區(qū),他也說明了并非實(shí)際花掉了 6000 美元,而是產(chǎn)生了與其價(jià)值相當(dāng)?shù)某杀尽K舱J(rèn)為每個(gè)月花 6000 美元有點(diǎn)貴,但每月支付 2000 美元是可以接受的。
Klaassen 推文中提到的成果也很顯著:他和 Nityesh Agarwal 確實(shí)在一周內(nèi)交付了六項(xiàng)新功能、五個(gè) Bug 修復(fù)和三次基礎(chǔ)設(shè)施更新。兩人實(shí)際上在短短三個(gè)月內(nèi),通過 AI 工具完成了 AI 郵箱管理工具 Cora 的開發(fā),并在發(fā)布后迅速吸引了超過 10,000 用戶注冊(cè)。
近期,Klaassen 和 Agarwa 兩人在 Dan Shipper 的播客節(jié)目上詳細(xì)演示了其是如何使用 Anthropic 的 Agentic 編程工具 Claude Code 工作并借此提升工程效率的。InfoQ 對(duì)此次訪談進(jìn)行了翻譯,并在不改變?cè)敢馍线M(jìn)行了增刪,希望能給大家?guī)硪恍﹩l(fā)。其中,部分核心觀點(diǎn)如下:
使用 AI 編程,不應(yīng)僅限于寫代碼本身,還應(yīng)用于調(diào)研和工作流程的構(gòu)建,幾乎涉及開發(fā)過程中的每一個(gè)環(huán)節(jié)。
該團(tuán)隊(duì)表示已經(jīng)很久沒有使用 Cursor 或者其他 Agent 類編程工具了,因?yàn)?Claude Code 的體驗(yàn)遠(yuǎn)勝一籌,幾乎將復(fù)雜度降低了十倍。
Cora 團(tuán)隊(duì)現(xiàn)在的方式是盡量讓 AI 完成實(shí)際工作,而人類開發(fā)者專注于管理這些 AI 工具。
一個(gè)點(diǎn)子能帶來很多后續(xù)產(chǎn)出,這就是所謂的“復(fù)利效應(yīng)”。團(tuán)隊(duì)有六七個(gè)任務(wù)是同時(shí)進(jìn)行的,因?yàn)槊慨?dāng)有了新想法,就立刻開始執(zhí)行。
務(wù)必記得在“價(jià)值最低”的階段對(duì) AI 的輸出進(jìn)行嚴(yán)格審核,確保盡早發(fā)現(xiàn)并修正問題。
放棄 Cursor,選擇Claude Code
主持人:雖然 Cora 團(tuán)隊(duì)只有兩個(gè)人,但整個(gè)開發(fā)節(jié)奏和產(chǎn)出卻像是一個(gè) 15 人的團(tuán)隊(duì)。Kieran,你前幾天說的一句話讓我印象很深刻:你們正在探索所謂“復(fù)利式工程(compounding engineering)”的可能性——每完成一個(gè)任務(wù),都會(huì)讓后續(xù)任務(wù)變得更容易。我覺得你們的經(jīng)驗(yàn)值得被更多人了解,因?yàn)槲覀儞碛辛诵碌墓ぞ?,就需要建立新的原則和工作流。
Kieran:開發(fā) Cora 是一件非常有趣的事情,更有趣的是能在 Enjoy 這樣的環(huán)境中工作,這里不僅有先進(jìn)的工具,還有豐富的思想資源和全新的工作方式。這讓我們重新思考“如何構(gòu)建產(chǎn)品”本身。我們正在一邊做產(chǎn)品,一邊嘗試新方法,這種探索本身就很吸引人。
我們常常會(huì)遇到各種新模型、新研究工具,別人問我們?cè)趺纯?,我們就在邊用邊學(xué)的過程中不斷嘗試。最近幾周,Nityesh 和我都明顯感受到一種轉(zhuǎn)變正在發(fā)生:一場(chǎng)由新模型、思維方式、MCP 等推動(dòng)的系統(tǒng)性變革。
主持人:具體改變了什么?你們目前逐步成型的工作流程大致是什么樣的?
Kieran:對(duì)我來說,最關(guān)鍵的轉(zhuǎn)變是我意識(shí)到“AI 編程”不只是代碼本身的生成。它應(yīng)該貫穿整個(gè)流程,從前期的研究到設(shè)計(jì)工作流程,再到具體執(zhí)行,每一步都能借助 AI。如今的 Agent 已經(jīng)足夠強(qiáng)大,能勝任幾乎所有環(huán)節(jié),因此我們需要徹底重新思考整個(gè)開發(fā)方式。
以前我們用 Cursor 或 Windsurf 之類的工具,屬于更傳統(tǒng)的“代碼補(bǔ)全”階段。而現(xiàn)在,我們開始直接給 Agent 布置任務(wù)就能完成。盡管最終的產(chǎn)出仍然需要人工協(xié)作與指引,但我們要學(xué)會(huì)更深入地?fù)肀н@一方式。
Claude Code 就是一個(gè)非常優(yōu)秀的編碼 Agent,能很好地理解和執(zhí)行復(fù)雜指令,尤其在與新模型結(jié)合之后,能力顯著提升。突然之間,我意識(shí)到:我們已經(jīng)進(jìn)入了那個(gè)“Agent 時(shí)代”。這不再是實(shí)驗(yàn)室里的概念,而是真正能用來構(gòu)建真實(shí)產(chǎn)品的技術(shù)。我們就是在用它做應(yīng)用,而且它真的在工作。
主持人:你們?cè)趺词褂?Claude Code?
Kieran:Claude Code 是 Anthropic 推出的一款編碼 Agent,底層使用的是 Claude 模型,它以命令行界面(CLI)的形式運(yùn)行在本地終端中。對(duì)于不太懂技術(shù)的人來說,命令行可能看起來有些嚇人,但我已經(jīng)成功說服一些非技術(shù)背景的朋友嘗試使用 Claude Code,他們也覺得很好用。
主持人:打開的終端是那種黑底白字的經(jīng)典界面,看起來像 DOS 系統(tǒng)。Kieran 只輸入了 “Claude”,屏幕上就出現(xiàn)了 “Welcome to Claude Code” 的歡迎信息,并有一個(gè)輸入框可以鍵入命令。
Kieran:Claude Code 和普通的 Claude 模型不同,它擁有對(duì)本地目錄和計(jì)算機(jī)的訪問權(quán)限,能瀏覽文件、運(yùn)行本地命令、截取網(wǎng)頁截圖,甚至進(jìn)行網(wǎng)頁搜索,內(nèi)置的工具遠(yuǎn)比普通 Claude 豐富。這點(diǎn)很關(guān)鍵,因?yàn)樽龉こ涕_發(fā)不僅僅是寫代碼。你需要知道 GitHub 上的需求和任務(wù)狀態(tài),了解 CI/CD 流程是否正常,測(cè)試是否通過等等。而擁有這些功能的編碼 Agent,才真正具備完成一個(gè)完整工作流程的能力。
我可以讓它自動(dòng)執(zhí)行我平常要做的事。這正是“復(fù)利式工程”產(chǎn)生作用的地方——Agent 不僅寫代碼,還參與了整個(gè)開發(fā)上下游流程。大多數(shù)工程師的時(shí)間并不主要花在編寫代碼上,而是花在搞清楚“下一步要做什么”,如何理解用戶反饋并作出響應(yīng)。這些事情,Claude Code 現(xiàn)在都可以幫上忙。
比如我現(xiàn)在就可以讓它幫我查看我們上周發(fā)布了哪些內(nèi)容,然后整理成清單。這不僅可以用于團(tuán)隊(duì)同步,也可以為產(chǎn)品營(yíng)銷提供素材。例如它會(huì)總結(jié)出我們修復(fù)的 bug、主要新功能,像簡(jiǎn)報(bào)摘要、聊天面板狀態(tài)、郵箱匯總、XML 標(biāo)簽、時(shí)區(qū)自動(dòng)識(shí)別等等。
主持人:而且這些內(nèi)容的組織方式很清晰,既能讓工程師讀懂,也方便非技術(shù)團(tuán)隊(duì)使用。
Kieran:我們現(xiàn)在幾乎全力在推進(jìn)“讓 AI 做事、我們來管理 AI”的模式。比如,有人來問我某個(gè)功能現(xiàn)在的狀態(tài)或下周發(fā)布什么內(nèi)容,我可以直接讓 Claude 查 pipeline,看即將推出的內(nèi)容。
大家應(yīng)該已經(jīng)能感受到 Claude Code 的邏輯了:一旦你把所有信息系統(tǒng)接入它,使用起來就非常順暢。對(duì)我來說,Claude Code 是目前最靈活的工具,不僅能解決編程問題,還能參與整個(gè)工程流程。很多編碼 Agent 只聚焦在寫代碼上,但我希望它能成為整個(gè)工程工作的輔助系統(tǒng)。
Anthropic 的團(tuán)隊(duì)在設(shè)計(jì)這款工具時(shí),顯然考慮到了這一點(diǎn)。它沒有被限定在某個(gè)特定用例上,而是保持了高度的通用性,同時(shí)又能精準(zhǔn)解決問題。它能理解上下文、分析自己哪里做錯(cuò)了并進(jìn)行修正。這些能力結(jié)合起來,才真正讓它具備了現(xiàn)在可以投入實(shí)際使用的水平。
主持人:傳統(tǒng)的“寫代碼”和現(xiàn)在的“Agent 協(xié)作編程”之間,最本質(zhì)的區(qū)別是什么?
Nityesh:相較于我們熟悉的 Cursor 和 Windsurf 等工具,Agentic Coding 其實(shí)提供了類似的能力,但 Claude Code 更進(jìn)一步,把整件事簡(jiǎn)化了一個(gè)數(shù)量級(jí)。
Kieran:雖然命令行界面對(duì)有些人來說可能看起來很復(fù)雜,但其實(shí)它比像 Windsurf、Cursor 那樣的圖形界面更簡(jiǎn)單。Claude Code 的界面只有一個(gè)文本輸入框,沒有快捷鍵、沒有界面按鈕,只有純文本交互。因?yàn)榈讓?Claude 模型能力更強(qiáng)了,它可以持續(xù)工作、調(diào)用更多工具,所以反而變得更強(qiáng)大。雖然它和 Cursor 背后都是 Claude,但 Claude Code 簡(jiǎn)潔的界面帶來了更大的靈活性。
我今天早上就用它查了一下數(shù)據(jù)指標(biāo)。當(dāng)時(shí)我在想:“為什么這份用戶反饋表單完全沒有任何回應(yīng)?”
Nityesh:給大家補(bǔ)充點(diǎn)背景:我們每周會(huì)發(fā)一份問卷,問用戶如果不能再用 Cora 會(huì)有多失望,用來判斷產(chǎn)品的價(jià)值。我們也每周開會(huì)看這些指標(biāo),但 Kieran 發(fā)現(xiàn)這周根本沒人填寫這份表單。
Kieran:對(duì),我感覺肯定是哪里出問題了,也許表單壓根沒發(fā)出去。我就問 Claude Code:“14 天前是不是出了什么問題?幫我查一下?!?/p>
Claude Code 的反應(yīng)是列出一組待辦事項(xiàng),比如檢查 controller 的最近代碼改動(dòng)、搜索代碼庫等。它自動(dòng)查到了在那個(gè)時(shí)間點(diǎn),我們刪掉了負(fù)責(zé)把用戶加入表單的那段代碼。Claude 還告訴我:“你只需要加回這段代碼就行了?!蔽揖驼f:“那你幫我加回去,并創(chuàng)建一個(gè) Pull Request?!彼土⒖虉?zhí)行了。我還補(bǔ)了一句:“順便也生成個(gè)腳本,把之前漏掉的用戶補(bǔ)回來?!彼沧龅搅?。
整個(gè)過程特別輕松,我?guī)缀鯖]有費(fèi)什么精力。這就像我在 GitHub 上記一個(gè)任務(wù)備忘一樣簡(jiǎn)單,只不過這次它直接幫我做完了。
用 Claude Code 研發(fā)的細(xì)節(jié)
主持人:如果沒有 AI,這樣的排查和修復(fù)任務(wù)可能要花 30 分鐘到幾小時(shí)不等。而且關(guān)鍵不是時(shí)間長(zhǎng)短,而是你必須停下手頭的事,專心處理它。而現(xiàn)在,你可以把它當(dāng)作“發(fā)個(gè)請(qǐng)求”,然后再發(fā)一個(gè)、再發(fā)一個(gè),有多個(gè)任務(wù)可以并行進(jìn)行。具體說說你現(xiàn)在的工作流程是什么樣的?比如你到底在干嘛?你自己還會(huì)寫代碼嗎?
Kieran:或許可以先講一下我們最早拿到 Claude Code 的時(shí)候做了什么,當(dāng)時(shí)我們都非常興奮。
Nityesh:對(duì),那是在 Claude 發(fā)布直播的前一天。我們當(dāng)時(shí)覺得,從明天起編程方式就會(huì)被徹底改變,我們將獲得一個(gè)能力更強(qiáng)的模型,就像擁有一個(gè)“編程神燈精靈”。
于是我們決定,最有生產(chǎn)力的做法不是繼續(xù)日常工作,而是開一個(gè)兩小時(shí)的會(huì)議,集中列出所有希望新模型能幫我們解決的問題。我們確實(shí)做到了,列了大約 20 個(gè) issue,包括 bug 修復(fù)、功能開發(fā)等,還為 Claude Code 的到來提前準(zhǔn)備好了系統(tǒng)。
Kieran:當(dāng)時(shí)挺有意思的,Nityesh 還用 ChatGPT 生成了一個(gè) prompt,大概內(nèi)容是:“明天我們就有 AGI(通用人工智能)了,幫我們列出我們需要它完成的一切?!比缓笪覀儼堰@個(gè) prompt 輸入到 Anthropic 的 prompt 優(yōu)化器中,再拿這個(gè)優(yōu)化后的 prompt 去生成具體任務(wù)。
主持人:你們當(dāng)時(shí)在 GitHub 中用的是那種類似 Trello 的看板系統(tǒng)嗎?每個(gè) issue 都是一個(gè)卡片,不管是新功能還是 Bug,每個(gè)卡片都有詳細(xì)文檔,包括問題描述、解決方案、技術(shù)要求,甚至還有實(shí)現(xiàn)步驟和預(yù)估所需時(shí)間。
Kieran:對(duì),比如這張卡片里寫的功能是“生成 AI 合成數(shù)據(jù)”,它的文檔里從問題定義、解決思路、技術(shù)要求,到實(shí)施步驟都寫得很清楚。
我們用 Claude Code 配合一個(gè)自定義的 prompt(在 Claude Code 中叫 command)來生成這些任務(wù)文檔。哪怕是用 ChatGPT 來生成也挺費(fèi)勁的,因?yàn)槟愕米x很多代碼,還得思考、整合,這其實(shí)是個(gè)挺重的腦力活。所以我們做了一個(gè) command,目的是把這個(gè)流程自動(dòng)化。
主持人:你說的 command 是 Claude Code 里的命令,還是 Cursor 里的?
Kieran:我是用 Cursor 編輯代碼,但運(yùn)行的還是 Claude Code。我還有個(gè)命令,就是語音轉(zhuǎn)文字(voice to text)直接啟動(dòng)。我和 Nityesh 經(jīng)常一起頭腦風(fēng)暴:“如果我們做這個(gè)會(huì)怎么樣?聽起來不錯(cuò)!”然后我就直接語音輸入,它就開始跑。比如我剛剛說:“我想在 Cora 加一個(gè)無限滾動(dòng)功能,當(dāng)我讀完一個(gè)簡(jiǎn)報(bào)(brief)后,它應(yīng)該自動(dòng)加載下一個(gè),直到所有未讀的簡(jiǎn)報(bào)都讀完為止?!?/p>
主持人:我想讓大家了解一件事:Kieran 幾乎從不敲鍵盤。他基本上全程通過語音輸入來操作,比如剛才他是直接用語音在終端中輸入,通過 Claude Code 進(jìn)行交互。我記得他用的是一個(gè)目前還未正式發(fā)布的內(nèi)部孵化項(xiàng)目——叫 Monologue,他是該工具的第四大用戶。雖然這個(gè)工具還在保密階段,但我們?cè)谶@里算是提前預(yù)覽了一下。
從我觀察來看,它的工作方式是這樣的:Kieran 說出任務(wù)內(nèi)容后,這個(gè)系統(tǒng)會(huì)將語音轉(zhuǎn)錄成文本,并插入到任務(wù)說明中,然后自動(dòng)執(zhí)行一系列操作。
Kieran:對(duì),Monologue 會(huì)把我說的內(nèi)容填入“功能描述”區(qū)域,接著執(zhí)行一整套步驟。首先,它會(huì)在代碼庫中查找相關(guān)實(shí)現(xiàn),相當(dāng)于先了解現(xiàn)有內(nèi)容;然后它會(huì)上網(wǎng)搜索最佳實(shí)踐,包括開源項(xiàng)目中的常見模式;最后它會(huì)生成一個(gè)計(jì)劃并讓我審核。我很喜歡這個(gè)“人類審核環(huán)節(jié)”,雖然偶爾它會(huì)搞錯(cuò),但大多數(shù)時(shí)候都能命中要點(diǎn)。確認(rèn)后,它就會(huì)創(chuàng)建 GitHub issue,并自動(dòng)分配到正確的工作流中。
主持人:原來你們是在 GitHub 的看板里,把想要實(shí)現(xiàn)的功能直接用語音講出來,然后 Claude Code 會(huì)自動(dòng)完成所有調(diào)研,生成完整文檔,最后轉(zhuǎn)成 GitHub issue。
Kieran:對(duì),這是個(gè)很關(guān)鍵的環(huán)節(jié)。它和 Cursor 編碼方式很不同。在 Cursor 里你可能會(huì)跳過這一步,因?yàn)樗饕怯脕韺懘a的。雖然你也可以在那里面寫 Markdown,但它不是專為任務(wù)管理設(shè)計(jì)的。相比之下,Claude Code 的設(shè)計(jì)更貼近 issue 跟蹤系統(tǒng)——這本來就是開發(fā)者熟悉的工具,我們可以直接把文檔交給開發(fā)者去實(shí)現(xiàn)。
主持人:當(dāng)我們第一次看到 Claude Opus 4 的時(shí)候,我們都震驚了,因?yàn)樗芤恢边\(yùn)行,無需人工干預(yù),最終還能給出很好的結(jié)果。雖然我們以前也見過一些 Agent 模式,但 Claude 的這種自動(dòng)化和完成度完全不一樣。它像是在穩(wěn)定、高質(zhì)量地一項(xiàng)項(xiàng)完成清單上的任務(wù),這是其他 Agent 循環(huán)很難做到的。
Nityesh:我和 Kieran 之間還在玩一個(gè)小游戲,看誰能讓 Claude Code 連續(xù)運(yùn)行更久,Kieran 現(xiàn)在是領(lǐng)先者。
Kieran:我這次運(yùn)行了 25 分鐘。
Nityesh:我目前只跑了 8 分鐘。
主持人:Kieran,你是怎么做到讓它跑這么久的?
Kieran:我給了一個(gè)特別長(zhǎng)的計(jì)劃,內(nèi)容很復(fù)雜,還包括大量測(cè)試任務(wù)。我讓它運(yùn)行所有測(cè)試并修復(fù)全部失敗項(xiàng),這樣整個(gè)過程就會(huì)持續(xù)很久。
主持人:你那個(gè)能自動(dòng)生成調(diào)研文檔的 prompt 是怎么寫出來的?你是靠感覺拼的,還是也用了 Claude 的 prompt 改寫器?
Kieran:這就涉及我們所說的“復(fù)利式工程”了。最早是 Nityesh 給我發(fā)了一個(gè) prompt,他寫得很戲劇化:“AGI 已經(jīng)實(shí)現(xiàn)了,我們可以開始寫軟件了?!蔽耶?dāng)時(shí)覺得這個(gè) prompt 還行,但我也問了一句:“你知道 Anthropic 的 prompt 改寫器嗎?”這個(gè)工具非常好用。你只要粘貼一個(gè) prompt,然后點(diǎn)擊“生成”,它會(huì)幫你優(yōu)化改寫??雌饋砗?jiǎn)單,但效果很不錯(cuò)。你甚至不需要花很多時(shí)間驗(yàn)證它好不好用——有時(shí)候試一試,不好就刪掉,成本很低。
那天我們要寫 30 個(gè)調(diào)研任務(wù),所以必須先有一個(gè)好用的 prompt。于是我就把剛剛那個(gè) prompt 粘進(jìn)去,生成一個(gè)版本,然后把它當(dāng)作基礎(chǔ) prompt 用。之后,我們只需更改參數(shù),就能反復(fù)復(fù)用。
主持人:本質(zhì)上,你們做的第一步是花時(shí)間寫了一個(gè) prompt,這個(gè) prompt 的作用是自動(dòng)生成其他 prompt。而那些調(diào)研文檔,其實(shí)本質(zhì)上也是給 Claude Code 的任務(wù)指令。
也就是說,你們不再需要每次都手動(dòng)寫“先調(diào)研、再拆解需求、再規(guī)劃執(zhí)行細(xì)節(jié)”等等,而是只要講出一個(gè)簡(jiǎn)單的功能需求,Claude 就能自動(dòng)展開所有細(xì)節(jié),寫出一整份完整計(jì)劃。以前每次都要手動(dòng)說清楚的那些內(nèi)容,現(xiàn)在都可以自動(dòng)生成了。
而且更有趣的是——它現(xiàn)在就在我們聊天的時(shí)候運(yùn)行著,這完全改變了寫代碼的方式。我們前幾周在通話時(shí)測(cè)試過這個(gè)系統(tǒng),我當(dāng)時(shí)甚至在通話中就上線了一個(gè)功能,這種邊說話邊構(gòu)建功能的“社交式編程”在以前是不可想象的。
Kieran:剛才我們?cè)诹奶斓臅r(shí)候,其實(shí) Claude 已經(jīng)完成了調(diào)研,并自動(dòng)生成了一個(gè) issue。而且我們那會(huì)兒同時(shí)跑了六七個(gè)任務(wù),因?yàn)槲覀儺?dāng)時(shí)的狀態(tài)就是“有新想法就立刻執(zhí)行”。我們一邊翻看用戶反饋、讀郵件,把能找到的信息都整理出來,一邊不斷頭腦風(fēng)暴。
這種狀態(tài)真的很有趣——你只要一有想法就能立刻啟動(dòng)一個(gè) Agent,然后等一會(huì)兒再集中審閱它們的結(jié)果。這也是我非常同意的一點(diǎn):在語音通話中協(xié)作是一種很棒的體驗(yàn),因?yàn)檫@種碰撞中常常會(huì)有“魔法時(shí)刻”。
當(dāng)然,目前仍然需要人類來做復(fù)審。我們發(fā)現(xiàn)必須檢查輸出是否合理、是否遺漏了什么,這就需要經(jīng)驗(yàn)、判斷力和直覺。比如我之前修復(fù)了一個(gè)郵件無法發(fā)送的 bug,Nityesh 也用 Claude Code 做了類似的事,但它給出的解決方案卻錯(cuò)了。我在 prompt 里特別強(qiáng)調(diào)了“查看歷史記錄”,這引導(dǎo) Claude 朝正確方向思考。而 Nityesh 沒有加那句話,它就說“看起來一切正常”。
所以,確實(shí)需要人類的判斷。這不是靠“神奇 prompt”一勞永逸的問題,而是你是否知道如何正確地使用它,把它的長(zhǎng)處發(fā)揮出來。
“我每天覺得自己什么都不會(huì)”
主持人:Nityesh,我很好奇你怎么看待這一切。畢竟 Kieran 是一個(gè)非常資深的開發(fā)者,而你在編程上的經(jīng)驗(yàn)可能還比較早期。你是怎么適應(yīng)這種全新的協(xié)作方式的?
Nityesh:對(duì)我來說,這整個(gè)過程非常震撼。我真正接觸編程是從 ChatGPT 出現(xiàn)后才開始的,那時(shí)候我覺得 AI 出現(xiàn)正好是機(jī)會(huì),于是決定自學(xué)編程,構(gòu)建我一直想做的 SaaS 應(yīng)用。后來轉(zhuǎn)到 Cursor,接著又用上 Windsurf。我一直覺得自己已經(jīng)站在最前沿了,我周圍的朋友都沒有這么用 AI 的。但直到我加入了 Every,開始和 Kieran 一起工作,才發(fā)現(xiàn)他完全是另一個(gè)層次。他在會(huì)議中從不敲代碼,基本上都是對(duì)著電腦說話。而 Claude Code 發(fā)布后,Kieran 推動(dòng)我去用它,現(xiàn)在它已經(jīng)成為我們主要的編程方式了。
過去三周里,我和 Kieran 幾乎都沒再碰 Windsurf 或 Cursor,哪怕用了也只是因?yàn)槲覀儧]裝 VS Code。本質(zhì)上,如果只是為了看代碼內(nèi)容,用哪個(gè)編輯器都無所謂了,因?yàn)樗泻诵?AI 交互都發(fā)生在 Claude Code 里。而且真的很神奇,整個(gè)編程的方式每三個(gè)月就會(huì)發(fā)生一次巨變,讓你不斷意識(shí)到“沒人真的站在最前面”。
主持人:我真的有點(diǎn)羨慕你們這些在 ChatGPT 時(shí)代開始學(xué)編程的人,我是二十年前靠看書學(xué)的……
Kieran:《PHP for Dummies》。
主持人:對(duì)對(duì),還有什么《24 小時(shí)學(xué)會(huì) Basic》那種……你剛才說以為自己已經(jīng)處在 AI 編程的前沿,結(jié)果加入 Every 跟 Kieran 一比就發(fā)現(xiàn)完全不是,這讓我想到《星球大戰(zhàn)前傳》里有一幕。他們?cè)谒卤还治镆u擊,看起來要沒命了,結(jié)果突然有個(gè)更大的怪物出來把那個(gè)怪物吃掉。主角說了一句:“總有更大的魚?!盞ieran 就是那個(gè)更大的魚。
Kieran:其實(shí)我自己也有同樣的感覺。你剛才說我很厲害,但我每天也覺得自己什么都不會(huì),還在拼命追趕。有太多東西要做,太多想法要實(shí)現(xiàn)。這就是當(dāng)下 AI 編程的真實(shí)狀態(tài):總有更多的東西,但核心還是要練習(xí)。你必須每天都練習(xí)使用 AI,持續(xù)推動(dòng)自己,否則就會(huì)錯(cuò)過很多令人興奮的東西。
主持人:像你們這種“幾乎不寫代碼、而是在更高抽象層次操作”的方式,會(huì)帶來新問題嗎?你們是如何應(yīng)對(duì)這些問題的?又發(fā)展出了哪些新的工程實(shí)踐,以保證整個(gè)過程的高效與穩(wěn)定?
Nityesh:對(duì)我來說,一個(gè)最重要的認(rèn)識(shí)來自一本老書——《高產(chǎn)出管理》,是 Intel 的 CEO 在五十年前寫的。它在第一章提到一個(gè)觀點(diǎn):所有問題都應(yīng)該在“價(jià)值最低的階段”被解決。
今天,AI 尤其是 Claude Code 已經(jīng)能幫我們完成很多任務(wù),這讓“前期階段”的質(zhì)量變得格外關(guān)鍵。比如,我們會(huì)用 AI 生成一份非常詳細(xì)的 GitHub issue 文檔,那很容易讓人想直接調(diào)用 Claude Code 去實(shí)現(xiàn)它。但如果 issue 本身的方向就偏了,Claude 就會(huì)在錯(cuò)誤的路徑上繼續(xù)推進(jìn),結(jié)果只會(huì)浪費(fèi)時(shí)間。
所以,我們現(xiàn)在的做法是:必須在人類 review 階段就盡早發(fā)現(xiàn)這些潛在偏差、提前修正,而不是等到 Claude 執(zhí)行完了再回頭返工。
主持人:這讓我想到杠桿原理:你越靠近杠桿末端,力量越大,但方向偏差帶來的后果也越嚴(yán)重。哪怕一厘米的偏差,最后結(jié)果也可能相差幾千公里。就像發(fā)射火箭時(shí)瞄準(zhǔn)月球,初始角度偏一點(diǎn),最后就完全偏離軌道。我自己其實(shí)很容易跳過計(jì)劃階段——對(duì)著一堆文檔集中精力很困難。你們是怎么處理這個(gè)問題的?
Kieran:老實(shí)說,大多數(shù)時(shí)候讀這些文檔確實(shí)挺無聊的。但我們會(huì)想辦法讓它“更有趣一點(diǎn)”。比如我會(huì)要求 Claude 給出更簡(jiǎn)潔的內(nèi)容,但這樣它又容易遺漏關(guān)鍵點(diǎn)。所以我更偏好讓它聚焦在用戶故事或問題清單上,比如:“一個(gè)優(yōu)秀的產(chǎn)品經(jīng)理會(huì)提出哪些問題?有哪些不同解法?”這種格式會(huì)更容易閱讀,也更容易引發(fā)思考。
總的來說,傳統(tǒng)的 PRD(產(chǎn)品需求文檔)太無趣了。但我們可以加入更多例子或反問,把它“變形”為一個(gè)信息更豐富、也更易于人理解的材料。這也正是我們?nèi)祟悓彶殡A段要做的事:查找潛在問題、補(bǔ)充缺漏——因?yàn)檫@一步能為后面節(jié)省大量時(shí)間。
主持人:這讓我想到我們業(yè)務(wù)中另一個(gè)項(xiàng)目。我們?cè)?Spiral 正在開發(fā)一個(gè)“寫作 Agent”,有點(diǎn)像 Claude Code,但專為寫作任務(wù)設(shè)計(jì)。我們也遇到類似問題:寫作 Agent 如果只是“生成一堆內(nèi)容”,那人類還是得花大量時(shí)間去篩選和修改。所以我們現(xiàn)在嘗試讓 Agent 主動(dòng)“進(jìn)入訪談模式”,先了解用戶是誰、想要什么,再輸出內(nèi)容,這樣更準(zhǔn)確,也省事。聽你們這么說,我感覺 Coding 這邊其實(shí)也存在類似問題。也許 Claude Code 未來可以多問一些有啟發(fā)性的問題,幫用戶厘清思路,而不是只吐出一大堆文本。
Kieran:是的,這確實(shí)是我們應(yīng)該自動(dòng)化并持續(xù)優(yōu)化的事情。Claude Code 的強(qiáng)大之處在于它可以訪問你的整個(gè)代碼庫,理解你的風(fēng)格,這非常有用。
除了在一開始就盡量做好問題定義,我認(rèn)為傳統(tǒng)的測(cè)試方式和郵件通知也非常關(guān)鍵。否則你怎么知道自己改的東西真的能用呢?當(dāng)然你可以打開控制臺(tái)手動(dòng)點(diǎn)擊測(cè)試,但完全沒必要。我們可以讓 AI 寫一個(gè)測(cè)試,比如最基本的 smoke test(冒煙測(cè)試),看看功能大致是否正常運(yùn)行,這樣 Claude 也可以根據(jù)測(cè)試結(jié)果自主修復(fù)問題。
我們還在嘗試一項(xiàng)新工作流程。我們會(huì)用 Claude Code 實(shí)現(xiàn) Figma 設(shè)計(jì),然后截取移動(dòng)端頁面截圖,與設(shè)計(jì)圖進(jìn)行對(duì)比,驗(yàn)證還原度。雖然我們還沒在生產(chǎn)環(huán)境大量使用,但非常期待它的效果。這種方式本質(zhì)上就是把原本人工執(zhí)行的驗(yàn)證流程“編進(jìn)系統(tǒng)里”。不僅僅是代碼測(cè)試,對(duì) prompt 也可以做 eval(評(píng)估),就像給代碼寫測(cè)試一樣,給 prompt 寫評(píng)估腳本。
上周我就讓 Claude Code 運(yùn)行一個(gè)郵件發(fā)送流程的 eval,讓它跑 10 次,失敗了 4 次,它告訴我失敗原因是調(diào)用了錯(cuò)誤的工具。我查看了一下提示詞,不夠具體,于是我讓它繼續(xù)嘗試,不斷優(yōu)化提示詞,直到能每次都通過測(cè)試。我中途還下樓喝了杯咖啡,回來一看,已經(jīng)搞定了。
所以說,即便是最傳統(tǒng)的測(cè)試流程,對(duì) AI 編程同樣重要——測(cè)試能告訴你提示詞是否可靠,就像傳統(tǒng)單元測(cè)試告訴你代碼是否工作一樣。乍一看枯燥,但其實(shí)非常有效。
給各編碼類 Agent 打多少分?
主持人:我想花五分鐘時(shí)間,讓 Kieran 來給各類智能編碼 Agent 做一個(gè)從 S 級(jí)到 F 級(jí)的打分。我來報(bào) Agent 的名字,你來給出評(píng)級(jí)。先從 Cursor 開始,拿最優(yōu)配置的 Cursor 來看。
Kieran:就算是傳統(tǒng)的、在最好的設(shè)定下的 Cursor,也不是最好的 Agent。我喜歡某些 Agent 的原因就是它們明確告訴你,“這就是我們最好的版本”。而 Cursor 有點(diǎn)讓人困惑。所以我會(huì)把它評(píng)為 A 級(jí),它確實(shí)很不錯(cuò),特別是在使用 Claude 的情況下。
主持人:Windsurf?
Kieran:C 級(jí)。因?yàn)樗麄冞€不支持 Claude 4,這讓我很難理解。三周前我還會(huì)給它 A 級(jí),但現(xiàn)在不行了。
主持人:Devin?
Kieran:B 級(jí)。集成度不高,搭建過程也稍微麻煩一些,代碼質(zhì)量也沒有 Cursor 或 Claude Code 那么全面。我不確定它是不是用 Claude 4,但用起來沒有其他工具順暢。
主持人:Charlie?
Kieran:Charlie 主要用于代碼審查,我們現(xiàn)在基本只在這個(gè)場(chǎng)景下用它。作為代碼 Reviewer,我會(huì)給它 A,但作為 Agent 我只能給 B。
主持人:Friday?
Kieran:我會(huì)把 Friday 排在 Cursor 之上,介于 S 和 A 之間。雖然它現(xiàn)在還沒用 Claude 4,而是用的 3.7,但依然表現(xiàn)非常優(yōu)秀。Friday 的流程非常有主見,能高效地把事情做完。你給它一個(gè) issue,它就能自動(dòng)生成計(jì)劃、等待你確認(rèn)、然后執(zhí)行、提交 PR。我見過它成功一次性還原 Figma 設(shè)計(jì),也完成過一些 Claude Code 做不到的任務(wù)。讓我真的有種“看見未來”的感覺,而且它背后的團(tuán)隊(duì)規(guī)模很小。
主持人:Codeex?
Kieran:B 級(jí)。
主持人:Copilot 呢?
Kieran:我沒怎么用過。三年前用過一次,半年前又試了一次,但不到一分鐘就關(guān)了。如果一定要打分,我只能給 D。它當(dāng)時(shí)還不具備 Agent 能力。當(dāng)然,我得承認(rèn)還沒用過它的新版本,所以也許并不完全公平。
主持人:Claude Code?
Kieran:當(dāng)然是 S 級(jí)。
主持人:Factory?
Kieran:Factory 在某些方面其實(shí)比其他工具都好。但它不是我的風(fēng)格,更適合那些偏企業(yè)級(jí)的開發(fā)者,尤其是對(duì)代碼質(zhì)量要求極高的用戶,比如做多倉庫開發(fā)的。它用起來有些繁瑣,因?yàn)槭?Web 和本地混合部署。我會(huì)給它 B,略低于 Codeex 和 Devin。
主持人:AMP 呢?
Kieran:S 級(jí),僅次于 Claude Code。它非常擅長(zhǎng)完成任務(wù),使用體驗(yàn)也很好。你能感受到 AMP 背后的團(tuán)隊(duì)是真正熱愛 Agent 工具的開發(fā)者,他們自己也在用。
我更傾向于把智能 Agent 看作招聘開發(fā)者解決特定問題的過程。比如 Friday 非常擅長(zhǎng)處理界面工作,遇到這類任務(wù)我會(huì)用 Friday;需要做調(diào)研時(shí),我會(huì)選擇 Claude;如果是代碼審查,我則用 Charlie。Agent 之間是可以協(xié)同工作的,不必局限于只用一個(gè)。
主持人:Charlie 集成在 GitHub 上,你可以直接“@Charlie”,它就會(huì)對(duì) Pull Request 進(jìn)行代碼審查。
Kieran:對(duì),我們用 GitHub、Pull Request 和常規(guī)的開發(fā)流程,這樣人類開發(fā)者也能介入。我們能“聘用”專長(zhǎng)于特定任務(wù)的 Agent 來審查代碼,而閉環(huán)代碼工具則執(zhí)行具體工作。這套體系是經(jīng)過我們幾十年經(jīng)驗(yàn)不斷優(yōu)化的,非常強(qiáng)大。也正因如此,Copilot 也許能適應(yīng)這套流程,因?yàn)樗緛砭图稍?GitHub 里。
主持人:你們最近似乎引入了一位真正的專家,并通過 Agent 化的方式協(xié)作,既達(dá)到了預(yù)期,也減輕了對(duì)方的負(fù)擔(dān)。
Kieran:是的。雖然當(dāng)時(shí)還沒有真正的“問題”要解決,但我們希望更清晰地掌握關(guān)鍵任務(wù)的交付進(jìn)度。鑒于我自己對(duì)這方面并不十分擅長(zhǎng),我們就邀請(qǐng)了專家參與。做法是這樣的:我們開了一個(gè)兩小時(shí)的電話會(huì)議,我把整個(gè)對(duì)話錄了音;會(huì)后,我把錄音內(nèi)容輸入到 Claude Code,并要求它根據(jù)對(duì)話生成兩個(gè)資源 issue。大約十分鐘后,Claude Code 給出了初稿,我再請(qǐng)專家審核。他對(duì)結(jié)果非常驚訝——他平時(shí)對(duì) AI 生成的方案往往持懷疑態(tài)度,畢竟有些任務(wù) AI 目前還沒那么擅長(zhǎng)。但這次他不僅認(rèn)可了文檔,還提出了非常有價(jià)值的改進(jìn)建議。于是我們又圍繞這些建議快速迭代。第二天,專家完成了人工復(fù)審,我再用 Claude Code 實(shí)現(xiàn)了對(duì)應(yīng)的代碼,并一起做了 Code Review。整個(gè)流程本來可能要兩周時(shí)間,現(xiàn)在幾小時(shí)就搞定了。
主持人:還有什么想說的嗎?
Kieran:我建議大家都去試試 Claude Code。哪怕你不是技術(shù)出身,也可以訂閱 Max 或 Pro 計(jì)劃,每月約 100 美元就能獲得無限使用權(quán)。我一個(gè)朋友從 Cursor 轉(zhuǎn)到 Claude Code 后,重做了所有工作流程,都覺得效率大增。大家真的應(yīng)該多嘗試,積極推動(dòng)工具的使用。
Nityesh:但務(wù)必記得在“價(jià)值最低”的階段對(duì) AI 的輸出進(jìn)行嚴(yán)格審核,確保盡早發(fā)現(xiàn)并修正問題。
https://www.youtube.com/watch?v=Lh_X32t9_po
6 月 27~28 日的 AICon 北京站將繼續(xù)聚焦 AI 技術(shù)的前沿突破與產(chǎn)業(yè)落地,圍繞 AI Agent 構(gòu)建、多模態(tài)應(yīng)用、大模型推理性能優(yōu)化、數(shù)據(jù)智能實(shí)踐、AI 產(chǎn)品創(chuàng)新等熱門議題,深入探討技術(shù)與應(yīng)用融合的最新趨勢(shì)。歡迎持續(xù)關(guān)注,和我們一起探索 AI 應(yīng)用的無限可能!
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.