Protocols > Platforms — 從 Shopify 的 AI Agent 平台反思個人 AI 基礎設施

Shopify 每 8 個合併 PR 就有 1 個是 AI agent 共同作者。他們的 River/Aquifer 架構給了個人 AI 基礎設施什麼啟示?三方跨供應商 AI 分析得出結論:Protocols > Platforms。

Protocols > Platforms — 從 Shopify 的 AI Agent 平台反思個人 AI 基礎設施

Shopify 最近發了一篇工程部落格 Under the River,講他們內部的 AI agent「River」和底層平台「Aquifer」的架構。

幾個數字很驚人:30 天內 59,918 個 agent session、覆蓋 5,170 個 Slack channel、每 8 個合併的 PR 就有 1 個是 River 共同作者

但這篇文章真正有趣的不是數字,是架構哲學。

我自己也在經營一套個人 AI 基礎設施 — 7 個不同供應商的 AI agent 協作、自建記憶系統、跨機器的 Home AI Center。規模差了幾個數量級,但很多設計問題是共通的。

我把文章丟給三個不同供應商的 AI(Codex / Gemini / gemma4)做平行分析,得出一些跨越規模的洞察。以下是整理。


Shopify 做了什麼

River:Slack 原生的 AI Agent

River 只在公開的 Slack channel 運作,不接私訊。開發者 @mention River 提問,River 讀程式碼、跑查詢、貼結果,其他工程師可以隨時插嘴修正方向。整條對話變成可搜尋的組織記憶。

Aquifer:Agent 平台

River 成功後,各團隊都想要自己的 agent — PR review agent、research agent、migration agent、compliance scanner⋯⋯

Shopify 意識到他們建了一個 agent,但沒有建一個平台。於是有了 Aquifer。

Aquifer 的核心設計是三層分離

Session  — Postgres append-only event log(持久身份)
Harness  — Agent loop:讀歷史 → 呼叫 LLM → 產出 tool intentions(可丟棄)
Sandbox  — 檔案系統、shell、repo access(暫時的)

關鍵決策:Harness 在 Sandbox 外面跑。Brain 跟 Hands 分離。

這帶來三個好處:

  • 安全:agent loop 隔離於 rm -rf 等破壞性操作
  • 可替換:換模型、換 runtime 不影響 sandbox
  • 可觀測:所有決策流在單一監控點可見

Session Cell

當一個 session 被觸發,一個 ephemeral process 在某台機器上出現。Idle 就退出。下次互動時,在不同的硬體上復活,從 Postgres 讀回完整狀態。

Cattle, not pets — 但不是在 container 層,是在 session 層

Agent = Profile

River 只是 Aquifer 上的一個 Profile — 一個 config bundle:

Profile = {
  system_prompt,
  skills,
  extensions,
  sandbox_policies,
  model_defaults
}

PR review agent 是另一個 Profile。新 agent = 新 config,不是新基礎設施。


我的系統長什麼樣

我的基礎設施跟 Shopify 的方向不同,但解決類似的問題:

  • 7 個 AI agent:Claude(架構師)、Codex(工程師)、Gemini(分析師)、Perplexity Max(深度研究)、SuperGrok(即時社群情報)、gemma4(本機推論)、加上我自己(Chair)
  • 通訊:CLI + File I/O 為主(不是統一平台)
  • 記憶:自建的 memhall(Postgres-backed,append-only)
  • 協調:ACE manifest — 每個多 agent session 開一份共享文件,所有參與者共讀共寫
  • 硬體:Mac mini x2 + DGX Spark + NAS + 6 台 VPS

規模差了幾個數量級。但設計問題驚人地相似。


三方分析:哪些跨越規模,哪些不行

我把 Shopify 的文章和我自己的架構描述,分別交給 Codex(OpenAI)、Gemini(Google)、gemma4(本機 Ollama)做獨立分析。三方不互相看對方的回答。

高度共識:三個值得學的 Pattern

1. Agent as Profile

三方一致認為這是最值得學的模式。

我目前的 bot(ERIKA 正式版 / 測試版 / Telegram bot / 投資小幫手)是各自獨立部署的。每個都重複處理 prompt、tools、memory、model defaults。

Codex 建議:不需要做完整的 Aquifer 平台,但可以先做一個輕量的 Profile Registry — 同一套 runtime,載入不同的 agent config。從 ERIKA 的正式版和測試版開始試。

這個成本低,收益直接。

2. Public by Construction

River 不接私訊,所有互動都在公開 channel。這不只是為了可搜尋性 — gemma4 指出一個被忽略的面向:公開 agent 互動會訓練人類在公開場合協作,減少「shadow work」(私下用 AI 做完事,但知識不流通)。

對我來說,~/Documents/agent-council/ 目錄裡的 manifest 和 briefing 已經是半公開的。但如果要把這套推廣到部門,「預設公開」必須是架構決策,不是事後加的 feature。

3. Skills as Infrastructure

我已經有 claude-team-skill-lab(部門共用的 skill 庫),但 Shopify 的差異在於 skills 是 runtime 可載入的 context bundle,不只是文件。

Codex 的建議很具體:每個 skill 要有觸發條件、輸入、禁止事項、驗收方式 — 不要只寫成長篇知識文件。這正好是我們 skill 設計的方向,但文章提醒了「loadable context」vs「passive document」的差距。

高度共識:三個不該學的 Pattern

1. Event Sourcing 全量 session log

Shopify 用 Postgres append-only event log 記錄所有 session 事件。Gemini 分析了為什麼我們不需要這個:

在跨 vendor 聯邦中,強求統一的 event log 會造成嚴重的相容性阻力。

我的 agent 分布在 7 個不同供應商,每個的 I/O 格式不同。統一 event log 是不切實際的。我們的做法是 Snapshot + Curated Memory — ACE manifest 存當下狀態,memhall 只存經過篩選的共識。

2. 完整的 Brain/Hands 物理隔離

Shopify 的 Harness-outside-Sandbox 設計很優雅,但 Gemini 點出了一個反直覺的問題:

當目標涉及「安全邊界與執行權限」時,保護系統不受 Agent 傷害的架構(如深層隔離、Sandbox),通常會對人類工程師帶來沉重的維護與開發阻力。

對 5 人以下的團隊,物理隔離的維運成本不合理。我們用軟性邊界取代 — 安全規範 + 人類審批,而不是微服務拆分。

3. 完整的 Aquifer 平台

這個最反直覺。Shopify 的文章結論是「the substrate, not the visible agent, represents the lasting competitive advantage」。聽起來應該學,對吧?

gemma4 抓到了盲點:Shopify 有專職平台團隊維護 Aquifer。對一個人來說,過度建設 substrate 本身就違反了「保護注意力」的最高原則。 90% 時間花在 plumbing,10% 花在 intelligence — 這不是基礎設施,這是陷阱。

我稱之為 Substrate Paradox(基底悖論):基礎設施投資在某個規模以下會從「加速器」變成「注意力黑洞」。


哲學層面:兩個不同的賭注

Gemini 的分析給出了最精準的定位:

Shopify 的 bet = Substrate > Agent
只要基礎設施足夠強大、標準化且具備絕對的可觀測性,任何平庸的模型都能在其中發揮巨大價值。

我們的等價 bet = Protocols > Platforms
不賭單一平台的完美,賭文字檔(File I/O)、命令列(CLI)與標準化介面(MCP)的永續性。

這不是對錯的問題,是約束條件不同

Shopify 個人 / 小團隊
優化目標 一致性(Consistency) 生存力(Survivability)
透明度目的 給「其他人」看(社會透明) 給「下一個 Agent」看(結構透明)
記憶策略 自動複合(Data Lake) 精煉複合(Knowledge Graph)
安全策略 物理隔離(Sandbox) 軟性邊界(規範 + 審批)
Agent 架構 單一平台,多 Profile 跨 vendor 聯邦,標準化協定

企業需要一致性,因為 7000 人不可能各自為政。個人需要多樣性,因為任何一家供應商都可能明天改政策。


超越規模的三個原則

從三方分析中,我萃取出三個不受規模影響的設計原則:

1. State 不綁 Process

不管是 Shopify 的 Session Cell 還是我的 memhall,核心原則一樣:agent 的狀態必須能在 process 死掉後恢復

這不需要完整的 Event Sourcing。只要確保關鍵狀態(對話歷史、決策記錄、工作進度)有持久化的地方,不依賴於某個「一直在跑」的程序。

2. 透明度是架構決策,不是 Feature

River 不接 DM 不是功能限制,是設計決策。它從根本上消除了「agent 在暗處做決定」的可能性。

同樣的道理,我的 ACE manifest 不是「文件模板」,是協調架構 — 所有參與 agent 必須讀寫同一份文件,確保沒有人(包括我自己)能在暗處壟斷資訊。

3. Agent-friendly ≈ Human-friendly(但有例外)

Shopify 聲稱為 agent 改善的基礎設施同時改善人類體驗。這在介面層成立 — 清晰的 API、可重現的環境、統一的 CLI 對 agent 和人都好。

但在安全邊界層,兩者會衝突。保護系統不受 agent 傷害的隔離,通常會增加人類的維護負擔。小團隊必須在這裡做取捨。


一句話結論

不要模仿 Shopify 的基底,要學他們「為什麼這樣賭」的思考方式。然後用你自己的約束條件,下你自己的賭注。

Shopify 建了一座工廠。我在編織一個生態網。形狀不同,但設計問題是共通的:什麼該持久、什麼該透明、什麼該標準化。

答案取決於你有多少人、多少預算、多少注意力可以花在 plumbing 上。

對一個人來說,protocols 比 platforms 重要。因為平台會被淘汰,但文字檔和命令列會永遠在那裡。


我是江中喬,一位具有 TPM 與產品管理背景的 AI 系統建構者,目前專注於 AI 認知增強系統與多 Agent 協作架構的設計與實踐。