現在各方面的開源 Agent 太多了,用都用不過來,但是我周邊很多朋友也還在用着 Claude Code,所以開源 Agent 和 Claude Code 到底誰更好用呢?
我選了 7 個開源 Agent 來和 Claude Code 對比:
- OpenCode:開源通用 Coding Agent
- DeepSeek Harness:插件化Harness
- Pi:極簡 Harness
- Goose:通用/MCP Agent
- Cline:IDE Agent
- Aider:Git-native
- mini-SWE-agent:極簡/研究型 Agent
用同一套提示詞,同一個模型 deepseek-flash,看看誰的效果更好,誰耗 Token 更少。
01. 多 Agent 實測
case 1 經典的鵜鶘騎自行車
提示詞:用 Three.js 做一個「鵜鶘騎車」的 3D 動畫。
Claude Code:
沙漠公路、棕櫚樹和速度儀表形成了鮮明的視覺風格,畫面有故事感。缺點是主角沒手。
OpenCode:
鵜鶘、自行車、道路和樹木都齊,整體建模和動畫都沒啥大問題。
DeepSeek Harness:
粉色界面和控制項很搶眼,卻犯了核心建模錯誤:車輪橫躺;整個車是倒着走的。
Pi:
一眼就能看出鵜鶘在踩自行車。天空、山巒和道路乾淨利落,但是手部與車把沒連接好。
Goose:
頭盔、圍巾、車籃讓鵜鶘更有性格,大喉囊也很醒目,就是有穿模。
Cline:
鵜鶘、車、腳踏的關係清楚。鵜鶘扶着車把,車架和車輪比例協調,就是車輪建模多了一圈紅色的東西。
Aider:
完成了基礎 3D 模型和運動,但沒手,腳還是倒着蹬的。
mini-SWE-agent:
畫面有明顯瑕疵:輻條伸出輪胎。
本輪排名:
OpenCode> Claude Code > Pi > Goose >Cline > mini-SWE-agent> Aider > DeepSeek Harness
case 2 解讀陌生項目
給 Agent 一份已有的訂單報表項目,不告訴它計算邏輯。它要從命令行入口開始,找到數據在哪裏讀取、金額怎樣計算、報表怎樣彙總,再解釋最終結果。
orderdesk/report.py:

提示詞:我剛接手這個訂單報表項目,想弄清楚 9 月報表的計算過程。請先閱讀項目,允許運行本地命令,但不要修改已有代碼或測試,也不要安裝依賴或訪問網絡。追蹤 python -m orderdesk.cli fixtures/orders.json 2026-09 從讀取數據到輸出的過程,並在項目裏寫一份 訂單報表分析.md:列出最終完整 JSON;逐一說明哪些訂單沒有計入 net_revenue_cents 及原因;解釋當前 repeat_customers 的計算方法。如果退款訂單以後不能用於判定復購,應該改哪個函數的哪段邏輯,9 月結果又會變成多少?請標出關鍵文件和函數名。不要在原始文件上改動。
Claude Code:
資料最詳盡,但也最冗長,並明確寫了兩位客戶的復購判定都依賴退款訂單,緊接着又算出 lin 去掉退款單仍有兩單。關鍵因果判斷自相矛盾。
OpenCode:

報告簡潔,所有數值和修改建議都對。但 lin 的復購部分依賴 A-104不夠準確:退款單影響了 lin 的計數,並不影響他是否達到復購門檻。
DeepSeek Harness:

證據和行號很全,沒有核心錯誤;不過重複解釋較多,還延伸到部分退款等題外情況,讀者抓結論要花更久。
Pi:

計算過程完整,卻寫成 lin 和 zhou 都因此被判定爲復購。實際只有 zhou 的復購資格依賴退款單;報告後面的改後結果又說明 lin 仍算復購,前後表述不一致。
Goose:

篇幅適中,調用鏈、逐單原因和復購變化都講清楚了,尤其準確抓住 zhou 的第二單來自退款訂單。
Cline:

追蹤細緻,準確說明退款單是被排除,而非作爲負數衝減收入;還指出改口徑後現有測試的預期值需要更新。稍長,但沒有偏離問題。
Aider:

解釋最乾淨。明確指出 lin 去掉退款單後仍有兩筆有效訂單,只有 zhou 會失去復購資格;建議複用已有的 fulfilled 列表,改動位置也準確。
mini-SWE-agent:

完整且準確,同時給出排除取消和退款與只保留已履約兩種改法,並說明它們在當前數據下結果相同。表達略平,改動位置可以再精確到代碼行。
本輪排名:
Aider > Cline > Goose > mini-SWE-agent > DeepSeek Harness > OpenCode > Pi > Claude Code
Case 3 Bug 修復
這個 case 會看 Agent 是否先利用現有測試確認現象,修改是否集中在出錯的邏輯,以及有沒有補上邊界測試。
checkout/service.py:

提示詞:結算頁有用戶反饋:用了折扣券後,商品實付金額不足 50 元,頁面仍然免運費。規則是折扣後的商品金額達到 5000 分才免運費,否則收 600 分;全額折扣也不能免掉運費。請先運行現有測試復現問題,再定位並修復。只改必要代碼,補一條有意義的邊界迴歸測試,最後運行全部測試,告訴我根因、修改文件和測試結果。不要安裝依賴或訪問網絡,不要在原始文件上改動。
Claude Code:

用 6000 分全額折扣,並同時斷言原價、折扣、運費和總價,檢查最完整。
OpenCode:

用 6000 分全額折扣,驗證折扣、運費和總價;修復準確,沒有多餘改動。
DeepSeek Harness:

分別用 8000 分和 10000 分全額折扣,同樣能抓住原始錯誤,只是離 5000 分邊界更遠。
Pi:

分別用 8000 分和 10000 分全額折扣,同樣能抓住原始錯誤,只是離 5000 分邊界更遠。
Goose:

都價恰好 5000 分、折扣 100% 的用例,驗證折後商品金額爲 0 時運費仍是 600 分。修復和測試都很剋制。
Cline:

用 6000 分全額折扣,驗證折扣、運費和總價;修復準確,沒有多餘改動。
Aider:

原價恰好 5000 分、折扣 100% 的用例,驗證折後商品金額爲 0 時運費仍是 600 分。修復和測試都很剋制。
mini-SWE-agent:

同樣測試 5000 分邊界;它把迴歸測試放進新文件,保留了原測試文件。
本輪排名:
Goose = Aider = mini-SWE-agent > Claude Code = Cline = OpenCode = Pi = DeepSeek Harness
Case 4 代碼重構
這個 case 重構的難點在於守住原有行爲:調用方式、返回數據、金額舍入和錯誤處理都要保持一致。
csv_source.py:

json_source.py:

提示詞:ledgerimport/csv_source.py 和 ledgerimport/json_source.py 重複處理日期、金額和狀態。我想把字段規範化邏輯收斂到一個共享實現。請保持 load_csv(text) 和 load_json(text) 的簽名、返回結構,以及現有有效和無效輸入的行爲不變。不要引入第三方依賴或改變數據格式。請增加至少一個同時檢驗 CSV 和 JSON 邊界輸入的測試,運行全部測試,並說明改動爲什麼沒有改變功能,不要在原始文件上改動。
Claude Code:

共享邏輯收得乾淨,還把原始實現作爲對照,逐項比較返回值、異常類型和消息。對重構不能改行爲驗證最有說服力。
OpenCode:

代碼簡潔且測試通過,但新增驗證最薄,主要檢查幾種正常輸入、非法日期和狀態。
DeepSeek Harness:

保留了 45 條重構前行爲樣本,連異常消息也逐條覈對,驗證很充分。不過 CSV 和 JSON 入口仍各自重複組裝記錄,代碼和測試也偏繁複。
Pi:

用一個 normalize_record() 消除了重複代碼,邊界測試覆蓋正負金額舍入、空輸入和非法狀態;缺少直接與原版對照的驗證。
Goose:

實現簡潔,邊界測試覆蓋舍入、空輸入和錯誤狀態;另做了 1279 次新舊實現對比,結果沒有差異。覈對腳本寫死了本機路徑,移到別處不能直接複用。
Cline:

共享模塊和項目內測試做得完整,但附帶的「與原版對比」腳本把新版本路徑指向了 Goose 的文件夾,因此腳本跑通也不能證明 Cline 的結果。
Aider:
兩個入口都直接調用同一個 normalize_record(),改動利落;測試檢查了金額邊界和異常一致性。但驗證較窄。

mini-SWE-agent:

重構正確,日期、金額、狀態都有新增測試;非法金額和異常優先順序沒有單獨覆蓋。
本輪排名:
Claude Code > Goose > DeepSeek Harness > Aider > Cline > Pi > mini-SWE-agent > OpenCode。
Case 5 代碼審查
這個 case 中 Agent 需要像審查同事的 PR 一樣,判斷哪些改動可能造成實際問題。refunddesk/refunds.py:

提示詞:請幫我審查這次退款改動。需求寫在 PR_DESCRIPTION.md,本次代碼變化可以用 git diff HEAD 查看。只指出會導致實際錯誤的缺陷,不給格式或命名建議。你可以閱讀代碼和運行測試,但不要修改代碼或測試,也不要安裝依賴。請在項目裏寫一份 review-notes.md:每個問題給出文件和行號、觸發場景、後果以及建議的修復方向;沒有把握的問題不要寫,不要在原始文件上改動。
Claude Code:

逐項給出觸發場景、實際結果和修復代碼,還把併發風險說明爲原有問題,沒有混進本次 PR 的缺陷。證據最完整。
OpenCode:

報告短,但每條都有觸發條件、業務後果和具體修法;明確指出三處改動要分別修復。
DeepSeek Harness:

三處問題都找到了,但給出的修復示例把 order.refunded = True 放在網關調用之前。如果網關調用失敗,訂單可能已被標記爲退款完成。
Pi:

準確關聯了 PR 要求、三處代碼改動和三個失敗測試,修復建議也正確;內容簡略。
Goose:

問題和影響都找對了,但把 wallet.credit 標爲第 5 行,實際在第 6 行;重複退款檢查的行號也有偏差。代碼審查報告裏的定位錯誤會增加覈對成本。
Cline:

三處問題與失敗測試一一對應,位置、後果和修復方向都準確,審查意見可以直接交給開發者處理。
Aider:

三處缺陷判斷準確,尤其說清了先退款、後報錯仍會造成資金副作用。但報告沒有列出完整測試運行結果。
mini-SWE-agent:

三處缺陷和修復方向均正確,寫得簡潔;缺少測試結果或實際輸出作爲支撐。
本輪排名:
Claude Code > Cline > OpenCode > Aider > Pi > Goose > mini-SWE-agent > DeepSeek Harness
Case 6 前端頁面
這個 case 考察 Agent 如何拆解頁面任務、修改 CSS、檢查桌面和手機效果的能力,以及發現問題後是否繼續調整。
提示詞:請爲虛構獨立書店「行間」完成一個新書策展頁,面向喜歡實體書、偏愛安靜閱讀空間的城市讀者。交付本地雙擊 index.html 就能打開的頁面。使用 books.js 裏的 6 本書和 assets/ 中的封面;頁面要有品牌區、新書主視覺、書目展示和一小段書店介紹。用戶應能按分類篩選,點擊「加入書袋」後右上角數量立即更新,刷新後仍保留;篩選不能清空已加入數量。請兼顧 1440px 桌面和 390px 手機,避免橫向滾動,保證鍵盤可操作和文字可讀。只用原生 HTML、CSS、JavaScript,不用 CDN、遠程字體或圖片、組件庫,也不要安裝依賴。完成後說明設計思路,並列出你實際驗證過的交互和視口,不要在原始文件上改動。
Claude Code:

書店的安靜氣質做得很完整,桌面三列書卡、手機單列橫向書卡都整齊;書袋還能調整數量。
OpenCode:

首屏有明確的書店風格,信息層次也清楚。手機端堅持兩列書卡,文字顯得偏小;右上角書袋只顯示計數。
DeepSeek Harness:

面端的紙張底紋、主推卡片和深色頁腳有辨識度;手機端六本書逐本佔滿一列,頁面實測約 6274px 高,瀏覽效率明顯下降。
Pi:

三本疊放的封面、標題和留白形成了最清楚的首屏;手機端改成易讀的橫向書卡。書袋面板也能查看所選書目,視覺與使用體驗最均衡。
Goose:

排版穩定,桌面三列和手機單列都便於瀏覽;書袋面板有書目與合計金額。主視覺只突出一本封面,記憶點稍弱。
Cline:

桌面書卡和手機閱讀順序都處理得好,但頁面仍寫着2025 春季,與其他成品的秋季新書主題不一致;書袋只有數量展示。
Aider:

頁面乾淨,手機端書卡易讀,但主視覺只有一本封面,關於書店又排在書目之前,瀏覽新書要多滑一段。書袋按鈕點擊後會跳向書目,沒有書袋詳情。
mini-SWE-agent:

功能可用,也有書袋面板;但桌面書目排成五本一行、最後一本單獨一行,手機端兩列書卡又讓文字和按鈕偏擠,版式完成度最低。
本輪排名:
Pi > Claude Code > Goose > Cline > OpenCode > Aider > DeepSeek Harness > mini-SWE-agent
02. 實測花費
- Claude Code:¥1.18,7,904,689 Tokens
- OpenCode:¥1.60,10,479,617 Tokens
- DeepSeek Harness:¥1.92,35,950,662 Tokens
- Pi:¥0.64,3,201,291 Tokens
- Goose:¥1.08,7,762,504 Tokens
- Cline:¥1.97,11,145,123 Tokens
- Aider:¥0.40,138,921 Tokens
- mini-SWE-agent:¥2.28,19,943,150 Tokens
六個 Case 的 總花費從高到低:
mini-SWE-agent(¥2.28)>Cline(¥1.97)>DeepSeek Harness(¥1.92)>OpenCode(¥1.60)>Claude Code(¥1.18)>Goose(¥1.08)>Pi(¥0.64)>Aider(¥0.40)。
03. 挖一挖

六個 Case 跑下來,Agent 確實會影響結果。
3D 動畫和前端頁面的差距更直觀,完成任務與做出好看的成品是兩回事。
Claude Code 在重構和代碼審查中表現最好,驗證和結論都有較紮實的依據,但在訂單分析中也出現了關鍵誤判。
開源 Agent 裏,Goose 整體發揮較穩;Aider 擅長讀項目和處理小範圍修改;Pi 的前端頁面最出彩;OpenCode 在 3D 動畫中交出了亮眼結果。沒有哪個 Agent 六輪都領先。
API 賬單也得和結果放在一起看:Aider 只花了 ¥0.40,Pi 只花了 ¥0.64;mini-SWE-agent 花了 ¥2.28,卻沒有取得更高的整體排名。
如果按本輪結果選擇,我建議把 Claude Code 用於重構和代碼審查,日常使用開源 Agent 先試 Goose;重視費用可以試 Aider,做前端頁面可以試 Pi。
當 Agent 進入日常開發流程,值得比較的就不只有一次生成的效果,還有它能否持續交付正確結果,以及團隊爲此實際付出了多少成本。
原文鏈接:7 個開源 AI Agent vs Claude Code 橫評,誰更好用?