Skip to content
新文章近期更新

YC 開源 QM:為整家公司設計的 multiplayer agent harness

Y CombinatorQMAI Agent開源Slack企業協作

YC 開源 QM:為整家公司設計的 multiplayer agent harness

Y Combinator 把自家用了好幾代的 agent harness 以 MIT 授權丟上 GitHub。名字叫 QM,全名 quartermaster:船上負責後勤協調的人。雖然常見敘事把新 agent 產品都想成「再一個個人 coding agent」,QM 卻設計成每個員工與每個專案都能配一個、還能在 Slack 與網頁一起用的多玩家系統。

2026 年 7 月 31 日,Y Combinator 官方帳號宣布開源 QM。官網 qm.ycombinator.com 寫得很直白:這是 YC 內部在用的 agent harness,會計、法務、活動、工程(含開發 QM 自己)都有用;每位員工與每個專案可各配一個 agent。開源後數日,GitHub 星數已逾五千,fork 近六百,討論也快速出現在 Hacker News 與社群。

若把 2026 年上半年的 agent 敘事粗分兩條線:一邊是個人端、本機或託管的 coding/生活助理(OpenClaw、Hermes、Gemini Spark 等);另一邊是「公司能不能安全地同時跑一整艦隊 agent」。QM 站在第二條線,而且是開源、自架、無官方計費的那一種。

名字與起源

QM 是 quartermaster 的縮寫:船上下層艙間的協調者,負責讓東西各得其所、流程不亂。官方敘事裡,YC 自己走過幾代實驗:

  1. 早期:Ruby 寫的基本 agent loop,掛一些能讀內部資料的工具。第一天就能用,但能力天花板低。後來補了 cron、webhook trigger,仍不夠。
  2. 中期:為員工 individually 開了五十多個 Hermes 類個人助理。單點靈活,艦隊一變大就難管。
  3. 現在的 QM:目標是「像 Hermes 一樣可客製」,同時「像最初那套一樣好管」,而且要自己擁有、自己託管

也就是:個人助理的靈活度,加上組織治理與隔離,再扣掉「整隊 agent 失控」的管理地獄。

它解決的產品問題

README 開宗明義:多數 agent 是個人助理思維。硬塞進整家公司會很快變複雜。QM 的設計假設是新創與小型組織

  • 每個人有自己的隔離工作區,互不踩線
  • 又能在頻道、群組、專案裡一起跟 agent 協作
  • 同一身份與設定在 Slack 與 Web 之間延續

一句話:個人 scope 與協作 room 都是一級公民,不是事後硬加的權限補丁。

能做什麼(官方使用情境)

  • 一起搜內部筆記、email、文件、資料庫與公開網
  • 從「company brain」取資料
  • 建內部 web app、只發佈給該看的人、並維持資料更新
  • 學使用者過往寫信語氣,排程分信、貼標、起草回覆
  • 在既有 repo 裡跑測試、開 PR、盯 CI、查 log
  • 在共用頻道追專案,貼更新與 follow-up

這清單幾乎全是「工作」,看不到「寫一段 demo code」這類展示項目。

核心概念:scope

隔離單位叫 scope,主要有兩種平行存在(不是嚴格階層樹):

類型典型對應各自擁有
Person-scope個別員工記憶、檔案、keychain 視圖、權限、cron、web app、durable sandbox
Room-scopeSlack 頻道或專案空間同上,屬該協作空間

關鍵設計:

  • 同一 principal 跨 Slack 與 web 延續
  • 協作空間是自己的隔離邊界,這與掛在個人帳號底下的資料夾不同
  • Agent 以「被服務者本人」的憑證與權限行動,並全程審計

這與「一個 org 共用一個巨型 bot」或「每人一台筆電 agent、沒有組織記憶邊界」都不同。

架構速寫

官方架構可壓成三層:

  1. Headless core(TypeScript on Node、HTTP 用 Fastify):API、身份、policy、scheduler、agent loop
  2. Postgres:session、memory、queue 等需讀回的狀態
  3. Per-scope sandbox:檔案、工具、已登入服務;loop 透過固定工具面(含 execute)在 sandbox 裡跑指令

可選表面(surface)掛在 core HTTP API 上:

  • Slack(Bolt,進程內 plugin)
  • Web UI(Vite + Lit)
  • Admin、portal

Core 本身是通用的。公司差異(org config、自訂工具與 skill、sandbox 映像、基礎設施)放在 deployment directory,由 qm CLI 驗證與部署。Harness、session store、sandbox、memory 等 substrate 都坐在介面之後,換實作靠 wiring。

Repo 版號仍是早期的 0.1.0,runtime 要求 Node ≥ 24.15、npm ≥ 11.10。Sandbox 後端可見 local、Docker、AWS microVM、Sprites 等多路實作,顯示「隔離電腦」是一等問題,不是附屬功能。

Harness 中立:四套驅動、同一 core

QM 宣稱 Pi、OpenCode、Codex、Claude Code 都能驅動同一個 core,部署時以環境/設定選定 harness,避免綁死單一 vendor。原始碼裡可看到對應的 pi-harnessopencode-harnesscodex-harnessclaude-harness 與 router。

需要講清楚的限制:

  • 這是部署期選擇,不是執行中熱切換
  • 代價是維護多套適配與測試面
  • 中立的是 harness 介面;模型、金鑰、供應商政策仍由營運者負責

對「我只想先穩定一條 runtime」的團隊,這是可選槓桿,不是必做作業。對「不想把整家公司的 agent 平台鎖在一家模型或一家 CLI 產品」的團隊,這是架構宣言。

安全:雙層治理

第一層:組織安全姿態(可調)

組織選定一種 posture,更窄的 scope 只能收緊、不能放寬

姿態行為摘要
Strict幾乎每個 harness tool call 都要人工核准(僅少數無副作用的結束類例外)
Auto(預設)以 classifier 篩查帶來源標註的外部資料與工具結果,再進模型;部署可接自有 screening proxy
Dangerous不做內容篩查、tool call 之間不暫停

第二層:預宣告 command policy(全姿態生效)

即使選 Dangerous,預先宣告的命令政策仍在。src/policy/command-policy.ts 裡的 org 底線規則示例包括:

  • 遞迴刪除(rm -r 等)→ 需核准
  • git push --force → 需核准
  • DROP/TRUNCATE TABLE → 需核准
  • mkfs、fork bomb 形態 → 直接 deny
  • curl … | sh → 需核准

政策可 compose:org floor + scope 規則;mode 支援 denylist / allowlist。

官方自己講的限制(讀 SECURITY.md 很重要)

QM 明確說自己是早期實驗軟體,不是認證過的多租戶公有雲邊界。已知限制包括:

  • Command policy 是「減速帶」:編碼、包進腳本再執行等可繞過;不是完整 sandbox 邊界
  • Browser 內動作不重入部分 core gate
  • Sandbox 內憑證使用時為明文
  • Auto 篩查不完整、偏啟發式
  • 管理員可讀敏感內容(有審計、無逐次同意)
  • 部分 durable 資料與 artifact 生命週期仍粗
  • 預設假設是單一組織、已驗證內部使用者;訪客與公開多租戶不在主場景

這份誠實度反而提高參考價值:開源 agent 平台最容易在 marketing 裡假裝「已企業級」,QM 選擇把威脅模型攤開。

Skill 與 plugin:治理式擴充

Skill:scope 持有 → 以 grant 分享 → admin 核准後才推廣到全 org;並可從 git repo 匯入 skill pack。預設私有、明示分享、管理員升級,形成「小範圍驗證再放大」的漏斗。

Plugin:獨立套件,原則上不 import core。例外是官方 plugins/chassis:plugin 與 core 之間簽章認證、通訊管線等唯一容許的共享接線。邊界清楚:擴充走認可介面,避免每個 plugin 私自伸進核心。

部署與客製:自架,沒有官方 SaaS 帳單

定位是營運者自己的雲帳號裡跑

bash
npm exec --yes --package=@yc-software/qm@latest -- \
  qm init . --org <slug> --target <fly-or-aws>
  • 目標可選 Fly.io 或 AWS
  • 初始化可走 email-gated web onboarding:內建 auth broker 寄 magic link(Resend 或 SMTP);也可改外接 IdP
  • 官方 repo 不附生產部署 CI;初始化也不自動幫你開部署流水線
  • 無商業計費、無 GTM 定價:使用者自付雲端與 model API

需要把公司專屬設定與 core 放在同一棵樹上時,文件建議 private fork(普通 clone 鏡像成私有庫,不要用 GitHub 的 Fork 按鈕,以免無法私有化且 commit 仍可從公有側被 SHA 取回)。組織專屬內容放 deploy/layers/<org>/,core 保持與 upstream 位元組一致,再用 update-qm / upstream-pr 技能雙向同步。

貢獻文化也很「YC 內部工具」

CONTRIBUTING.md 路徑是:人類用文字寫想改什麼,放進 adrs/,由專案方實作;不收直接丟 code 的 PR 文化(至少官方敘事如此)。漏洞走私密 Security 通報。AGENTS.md 還規定:零註解風格、修 bug 要全 repo 掃同模式、任何事後要讀回的狀態必須進 durable store(Postgres),RAM 只能當 cache。Blue-green/多實例下,in-memory Map 會在部署時被抹掉。這條工程鐵律對所有自架 agent 平台都值得抄作業。

和「個人 agent」浪潮怎麼並排理解

不需要把 QM 說成誰的替代品。比較有用的座標是:

問題個人助理型 agentQM 這類組織 harness
誰的記憶與檔案多半是單一使用者person + room 雙 scope
協作弱或靠外部工具Slack/專案一級公民
治理個人設定為主org 姿態 + 不可繞過 policy
部署本機、託管 SaaS、或個人 VPS組織自架、private layer
商業訂閱、用量、開源免費都有目前:開源免費 + 自付 infra

OpenClaw/Hermes 解決的是「個人如何把 agent 用到飛起」;QM 解決的是「公司如何讓很多人同時用、又不共享成一團漿糊」。兩者可以並存於同一家公司的工具箱。

仍不清楚或需自測的點

研究日(開源後數日)仍建議保留這些問號:

  1. Auto 姿態 classifier 的誤擋率、延遲、是否可完全換成自建 proxy 而不犧牲體驗
  2. Sandbox 生命週期:每 scope 常駐的資源成本、回收、冷啟動
  3. YC 是否會出 hosted 或商業支援:目前公開管道是 labs@ycombinator.com,無官方定價路線圖
  4. 生產就緒度:SECURITY.md 的限制清單很長;適合當內部平台骨架與實驗床,不宜假設「clone 完即可合規上線」

星數與討論熱度變很快,引用時請以當日 GitHub 與文件為準。

結語

多一個能寫 code 的 bot 不算新鮮事,QM 真正的看點在於 YC 把自己內部已經在用的組織級 harness 以 MIT 開源,並把產品語言釘在:

  • Scope(人與房間的隔離)
  • Harness 中立 core
  • 雙層安全(可調姿態 + 全姿態 command policy)
  • Skill/plugin 的治理邊界
  • 自架 + private layer,無多租戶 SaaS 帳單

目標是設計公司內部的 agent 平台時,QM 的 README、SECURITY.md 與 src/policysrc/harness 值得當成一份可讀的活規格,比起個人的第二個 CLI 助理或一張 star 截圖更有參考價值。

延伸閱讀

參考資料

  1. yc-software/qm(GitHub README)
  2. QM 官網說明(qm.ycombinator.com)
  3. SECURITY.md(威脅模型與已知限制)
  4. AGENTS.md(工程規範、durable store、plugin chassis)
  5. docs/getting-started.md(部署與 onboarding)
  6. src/policy/command-policy.ts(org 底線命令規則)
  7. Y Combinator 開源公告(X)
  8. Hacker News 討論:qm – Multiplayer agent harness for work

留言討論

以 VitePress 建置