為什麼大公司都在打造自己的 Coding Agents
一件奇怪的事正在那些買得起市面上最佳工具的公司裡發生。Ramp 打造自己的背景 coding agent Inspect,Stripe 打造了 Minions,Block 打造並開源了 goose。這些公司都有預算,明天就能替每位工程師買一個 Cursor 席位和 Claude Code 授權。但它們反而組建團隊,在內部打造 agents。
最直覺的解讀是:「資金充裕公司的非我發明症候群。」我認為這不對。當三個嚴肅的工程組織獨立做出同一個昂貴的自建或採購選擇時,有趣的問題不是它們為何浪費錢,而是它們看見了什麼,是通用工具給不了的?
答案可以濃縮成三個詞:脈絡、整合與所有權。 其中的回報足夠真實,值得理解,因為它告訴我們 AI 工程真正的護城河正在哪裡形成。
通用 agent 無法擁有的東西:你的脈絡
Coding agent 的能力取決於它對系統知道多少。現成 agents 在通用情境中極其出色——它們讀過的開源程式碼比任何人類一生能讀的都多。但它們沒讀過你的內部 RPC framework、feature-flag service、十七年的架構決策,或那個只有三人看得懂、零人寫過文件的私有函式庫。
Stripe 把這點說得很具體。他們的 codebase 有數億行程式碼,主要是帶有 Sorbet 型別的 Ruby,充滿任何 foundation model 都沒見過的內部函式庫。此外,這些程式碼正「在 production 中處理遠超過每年一兆美元的支付金額」——這類監管與合規限制放不進 context window,也容不下看似合理的猜測。通用 agent 是冷啟動走進這個世界;Stripe 的 agent 則預先載入了脈絡。
Ramp 對同一個概念提出更有野心的說法。Inspect 的目標是成為一個「永遠不受缺少脈絡或工具限制,只受模型智能本身限制」的 agent。再讀一次——這是一種設計哲學。把所有不是原始模型能力的限制移出檯面。給 agent 整個 codebase、每項內部服務(Postgres、Redis、Temporal)、每個 observability 工具(Sentry、Datadog、LaunchDarkly)、每個開發整合(GitHub、Slack、Buildkite)——使唯一剩下的天花板,是模型究竟有多聰明。這就是 Ramp 所說的 「full-context」agent。
模型智能可以買到。你買不到關於自己系統的脈絡——必須自己把它接進去。整合就是產品,不是一項功能
這是令我意外的部分。對這三家公司而言,agent 的推理迴路相較於圍繞它的管線,幾乎只是事後才考慮的事情。
Stripe 的 agents 在 「devboxes」 上執行——預先暖機的開發機器,十秒內啟動,程式碼與服務已經載入。它們連接到一個名為 「Toolshed」 的中央 MCP server,代管橫跨內部系統與 SaaS 平台的超過 400 項 MCP tools,外加用於 code intelligence 的 Sourcegraph。agent 本身是 Block goose 的 fork。取得這個agent 是容易的部分;400 項 tools 才是護城河。
Ramp 的 Inspect 在一個 Modal sandbox 中執行,每個 session 都映照出真實工程師的 full-stack 環境——VS Code server、web terminal、帶有 Chromium 的 VNC stack,讓 agent 能用視覺驗證自己的 UI 修改。 一個 cron job 每 30 分鐘重建一次 repository snapshots,因此 session 可在數秒內開始工作,面對的程式碼最多只落後半小時。這些都不是「AI」,卻全都是讓 AI 有用的條件。
這與我在 MCP、skills 與 workflows 中反覆回到的模式相同:模型是商品,而包在它周圍的脈絡與工具層才是工程——也是差異化——真正存在的地方。這些公司不是打造 agents;它們打造 agents 要插入的整合表面,而 agent 本身是便宜、可替換的部分。
這也解釋了為何 Stripe 的指導原則如此出色:「對人類好的,對 LLM 也好。」 Minions 使用與人類工程師相同的 source control、CI 和 agent rule files。他們先前投入的 developer experience,變成了對 agent experience 的投資。建一個表面,同時服務兩者。
所有權:它在哪裡運行,又被允許做什麼
第三個理由最不吸睛,卻可能最重要:控制權。
當你的 agent 在供應商產品中執行,你就活在供應商的決定之中——程式碼在哪執行、呼叫哪個模型、哪些資料離開你的網路,以及它被允許如何整合。對一間處理一兆美元支付金額的金融科技公司,或一間保有所有人交易資料的卡片公司而言,「程式碼在別人的雲端執行」不是腳註。擁有整個 stack 意味著 agent 在你的隔離基礎設施運作,直接接觸你的內部服務,並且天生遵守你的合規邊界。
Block 將所有權推到最徹底,並以 Apache 2.0 開源 goose——基於 MCP、LLM-agnostic(你可選擇任何模型)、任何人都能擴充。CTO Dhanji Prasanna 的說法是,目標在於「減少瑣事,讓人們找回時間、成為最有創造力的自己。」 接著這個開源賭注以最有力的方式得到回報:Stripe fork 了 goose 來打造 Minions。一家公司的自有且共享工具,成為另一家公司的基礎。這正是開源飛輪按照原意運作的樣子。
我的收穫: 「自建還是採購」是錯誤的框架。真正的問題是「租用智能,擁有整合」。沒有人在訓練自己的 frontier model——大家都在呼叫別人的模型。它們拒絕租用的,是接觸專有脈絡與 production systems 的那一層。這是清楚的界線,也是一條合理的界線。
成果並不微妙
很容易把這歸類成「大公司昂貴的研發表演」。採用數字卻說了相反的話。
- Ramp: Inspect 撰寫了合併至其 frontend 和 backend repos 的所有 pull requests 中,三分之一到超過一半不等——取決於你讀到哪一篇文章與哪個時間點——而且 Inspect 自身 codebase 的超過 80% 現在也是由 Inspect 撰寫。 工具正在打造自己。
- Stripe: Minions 每週產生超過一千個已合併的 pull requests——全由 agent 撰寫,合併前都由人類審查。
- Block: goose 已在內部投入 production,現在是廣泛採用的開源專案;Stripe 的 fork 是它具備通用性的最醒目證明。
Stripe 的流程值得具體想像,因為它揭示「one-shot end-to-end」真正的意思:一次執行「由一則 Slack 訊息開始,以一份通過 CI、可供審查的 pull request 結束——中間沒有任何互動。」 你描述任務、離開,回來時看到一份可審查的 PR。工程師可以在 on-call 輪值期間平行送出多個,立刻清除一批小 issue 的 backlog。
這是 compute-budget era 特別在工程組織裡的呈現:人類停止親手輸入程式碼,開始編排一支替自己打字的 agent 艦隊,然後把判斷力花在審查與方向上。這也是 AI 開始打造自己 最字面的版本——Inspect 撰寫 Inspect 的 80%,就是你能在 PR feed 裡看見的遞迴自我改進。
若你不是 Ramp 或 Stripe,這代表什麼?
你(很可能)不會在這一季打造一台有 400 項 tools 的 MCP server。那麼教訓只是「欣賞巨人」嗎?不是——有三項可轉移、也能縮小規模使用的收穫。
1. Agent 是商品;你的脈絡才是資產。 當你採用現成工具,最高槓桿的工作不是挑工具,而是餵給它你的脈絡。好的 CLAUDE.md/rules files、一兩個指向內部文件與系統的 MCP server,以及乾淨、可發現的 tooling。那部分是你的,也是會複利的部分。
2. 投資整合表面,同時服務人類與 agents。 Stripe 的「對人類好的,對 LLM 也好」可以雙向理解。你替工程師移除的每一個痛苦手動步驟——不穩定的設定 script、未記錄的 service、緩慢的 CI loop——也是你替最終指向 codebase 的 agent 移除的一步。DX 就是 agent-readiness,而且可以提早投資。
3. 留意所有權邊界。 你不必 fork goose,但應知道 stack 的哪些部分你能接受租用、哪些不能——你的專有脈絡與 production systems 在哪裡,以及什麼被允許碰觸它們。這與 Ramp、Stripe 做的是同一個決策,只是尺度更小。
常見問題
Cursor 和 Claude Code 等工具已存在,為何公司還要打造自己的 coding agent?
有三個原因:脈絡(現成 agents 不知道你的內部 codebase、私有函式庫或合規限制)、整合(真正的工作,是把 agent 接到服務、CI、source control 與 observability——Stripe 的 agent 連接 400 多項內部工具),以及所有權(當你在 production 處理敏感資料或金錢時,讓 agent 在自己的基礎設施上運行很重要)。它們並非訓練自己的模型,而是擁有別人模型周邊的整合層。
Inspect、Minions 與 goose 是什麼?
Inspect 是 Ramp 的背景 coding agent,在能完整存取 Ramp codebase 和內部服務的 Modal sandboxes 上運行;它寫出 Ramp 三分之一到一半的已合併 PR。Minions 是 Stripe 無人看管、one-shot 的 agents,能把任務從一則 Slack 訊息帶到一份通過 CI 的 PR,中間不用互動——每週有超過一千個已合併 PR。goose 是 Block 開源、基於 MCP、LLM-agnostic 的 coding agent(Apache 2.0),Stripe fork 它來打造 Minions。
對 Stripe 的 Minions 而言,「one-shot end-to-end」是什麼意思?
它是一趟單次自主執行:從人類描述任務(通常是一則 Slack 訊息)開始,以一份通過 CI、可供審查的完成 pull request 結束——中間沒有任何人類互動。人類只在兩端參與:開始時簡短說明,結束時審查。所有 Minion 程式碼仍會在合併前經人類審查。
小型團隊應該打造自己的 coding agent 嗎?
幾乎肯定不該從零開始——巨頭獲得的價值來自龐大的整合表面(Stripe 的 400 多項 tools、Ramp 的完整環境 sandboxes),需要嚴肅投資。可轉移的作法是採用一個優秀的現成 agent,並投資真正屬於你的部分:透過 rules files 和 MCP servers 餵給它脈絡,並改善 developer experience(這同時也是 agent-readiness)。
MCP 在這一切中扮演什麼角色?
Model Context Protocol 是連接組織的組織。goose 建於 MCP,Stripe 的「Toolshed」是代管 400 多項 tools 的 MCP server,而 MCP 讓這些 agents 都能接觸內部文件、ticketing、code intelligence 與線上系統。它是可替換模型與專有脈絡對話的標準——這正是它為何成為重心。(更多內容見〈MCP、skills 與 workflows 說明〉。)
結論
表面上的頭條看起來像碎片化——每家大公司都在重新發明 coding agent。其實不是。它們都從同一小群模型實驗室租用相同的智能,並在上面打造相同三樣東西:一種把專有脈絡餵給 agent 的方法、一個將它連接到真實系統的整合表面,以及一條由自己控制的所有權邊界。模型是商品;讓它變成它們的一切,才是產品。
這對其他人來說反而很清楚。你不需要比 Stripe 做得更大,仍能理解教訓。槓桿從不在 agent 本身——而在你包裹它的脈絡和 tooling。Ramp 和 Stripe 只是證明,當你嚴肅看待這點時它可以走多遠:一個撰寫自己大多數程式碼的工具,以及一支每週合併一千份 PR 的艦隊。Agent 是容易的部分;整合才是護城河。
Sources:Ramp 談為何打造背景 agent與如何在 Modal 上打造它,Stripe 談 Minions,以及 Block 介紹 goose。若你對這個主題有興趣,也可搭配閱讀我對當 AI 打造自己、compute-budget era與MCP、skills 和 workflows的筆記。