进阶 📋 6 个步骤 第 269 / 470 篇

qm 多人 Agent 协作框架:给创业团队装的「共享 Agent 车间」,沙箱隔离 + 可换 Harness

2026 年 8 月 1 日开源的 qm(一周约 1.2 万星)专为创业团队设计多人 Agent 协作:每人独立工作空间沙箱、文件存储、密钥视图与权限配置,也能拉进 Slack 共享协作;Pi、OpenCode、Codex、Claude Code 等 harness 可插拔切换。本教程从理念、部署、权限、沙箱、harness 接入讲到团队实战。

2026.08.12· 15 分钟阅读· 约 2093 字· 👥 qm

2026 年 8 月 1 日创建、一周暴涨约 1.2 万 Star 的开源项目 qm,开场白就非常直接:「大多数 Agent 是个人助手的设计,qm 是为创业团队设计的。」它用 TypeScript 实现了一套多人共享的 Agent 协作框架:每个人有自己的独立工作空间沙箱、文件存储、密钥视图与权限配置,也能把 Agent 拉进 Slack 频道或项目里共享协作;底层把 Agent 循环抽象成可替换的 harness 接口,Pi、OpenCode、Codex、Claude Code 都能接入同一个 core。本教程带你从理念到实战完整落地。

🧩 本教程适合:创业团队、小团队里想让 Agent「给全组干活」的开发者。想对比团队化 Agent 的其他形态,可看本站《CrewAI 角色化多智能体团队》与《WorkBuddy 人机双写》。

先搞懂:qm 解决的是什么问题?「隔离粒度」是灵魂

个人 Agent 的痛点是「各管各的,互不相通」;但团队用 Agent 时,简单共享又会带来新问题——两个人同时让 Agent 跑任务,会不会互相覆盖?密钥该给谁看?qm 的回答是:按「隔离粒度」设计,个人空间完全独立,共享视图按需开启。

维度个人 Agent(如 Claude Code)qm 团队 Agent
工作空间单机单用户每人独立沙箱,互不覆盖
密钥与权限全部在本地个人密钥视图 + 分级权限配置
任务调度手动逐个跑Cron 调度 + 共享项目协作
成果发布本地产出Web 应用发布权限统一管理
底层引擎绑定单一模型/工具harness 可插拔,任意切换
💡 一句话理解 qm:给每个成员发一间「独立车间」,想合租时再拉个「公共车间」——隔离是默认,共享是选择。

Step 1:理解核心概念——scope、harness 与共享视图

1 三个词读懂架构:Scope 隔离、Harness 抽象、共享协作

开工前先把 qm 的三个核心概念弄清楚:

① Scope(工作范围/车间)
· 每个 scope 有独立的沙箱环境
· 独立的工作空间、文件存储、密钥视图
· 独立的权限配置、Cron 调度、Web 发布权限

② Harness(引擎抽象层)
· 把「Agent 循环」抽象成可替换接口
· Pi / OpenCode / Codex / Claude Code 都可接入
· 切换 harness 不影响已有配置、记忆与权限

③ 共享协作
· 在 Slack 频道或项目里拉 Agent 一起干活
· Agent 拿到的是「共享视图」
· 不会把所有人的私有上下文混在一起

持久化:Postgres 负责状态存储
💡 harness 可插拔是 qm 最大的「不锁死」设计:今天用 Claude Code 觉得贵,明天换 Codex——配置、记忆、权限体系原样保留,团队不会被单一厂商绑架。

Step 2:部署准备——Node 环境 + Postgres

2 拉代码、起数据库、初始化配置

qm 是 TypeScript 项目,依赖 Postgres 做持久化,部署路径如下:

环境要求:
· Node.js 18+(建议 20+)
· PostgreSQL(建议 14+)
· 可选:Docker 一键起 Postgres

部署步骤:
git clone <qm 仓库地址>
cd qm
npm install
配置数据库连接(.env 中 DATABASE_URL)
npm run db:migrate   # 初始化表结构
npm run dev          # 本地启动

验证:
· 访问管理界面,确认数据库连接正常
· 创建第一个 scope,跑通一条简单任务

密钥安全是第一步:qm 的价值在于「按 scope 隔离密钥」,所以部署时就要养成习惯——每个 scope 配最小权限密钥,绝不把团队级密钥放进默认 scope。

Step 3:创建团队工作空间与成员隔离

3 每人都有一间独立「车间」,任务互不覆盖

团队入驻后,第一步是建立「一人一 scope」的隔离格局:

操作步骤:
· 为每位成员创建独立 scope
· 每个 scope 配置独立:
- 工作空间沙箱(文件系统隔离)
- 文件存储(私有目录)
- 密钥视图(各自 API Key/Token)
- 权限配置(谁能读谁能写)
- Cron 调度(各自定时任务)
- Web 应用发布权限(各自产物)

隔离效果:
· 两人同时让 Agent 跑任务,互不覆盖
· 各自的密钥不会泄露给他人
· 各自的产物独立发布

管理习惯:
· 新人入职:开新 scope,按角色配最小权限
· 人走:回收 scope,密钥立即失效
💡 隔离不是「麻烦」,而是「安全默认值」:团队越大,越要先把隔离做扎实,再谈共享——顺序反了后面全是坑。

Step 4:配置共享协作——Slack 频道与项目级视图

4 把 Agent 拉进频道,拿到的是「共享视图」而非全部私密上下文

隔离做好后,再按需开启共享——这是 qm 区别于「简单共享一个 Agent」的关键:

共享协作方式:
· 在 Slack 频道里 @Agent 一起讨论任务
· 在项目(Project)里挂 Agent 长期值守
· 频道成员共享一个「共享视图」

共享视图的边界:
· Agent 只拿到与当前任务相关的共享上下文
· 不会把所有人的私有上下文混在一起
· 私有 scope 的内容默认不出本 scope

典型用法:
· 运维频道:Agent 处理告警并同步进展
· 产品频道:Agent 整理用户反馈周报
· 项目仓库:Agent 负责 PR 审查与构建检查
🚀 团队协作的正确姿势是「人机混编」:Agent 在共享频道里当「透明同事」,说了什么做了什么全程可见可追溯——而不是黑箱里悄悄干活。

Step 5:接入不同 harness——今天 Claude Code,明天 Codex

5 切换引擎不影响配置、记忆与权限

qm 把「Agent 循环」抽象成 harness 接口,意味着底层引擎可以按团队需求随时更换:

支持的 harness(示例):
· Pi
· OpenCode
· Codex
· Claude Code
· 自定义 harness(按接口实现即可)

切换姿势:
· 在 scope 配置里切换 harness 类型
· 无需迁移:配置、记忆、权限体系保持不变
· 可混合:不同 scope 用不同 harness

选型建议:
· 成本敏感:本地/开源 harness(如 Pi、OpenCode)
· 能力优先:Claude Code / Codex
· 团队统一:按主流技术栈选一个默认,按需覆盖
💡 把「模型选择」和「团队资产」解耦,是 qm 比「直接全员用某款 CLI Agent」更值得的理由——资产(配置/记忆/权限)沉淀在 qm 里,模型只是可换的引擎。

Step 6:团队实战——从「个人玩具」到「组织级基础设施」

6 建制度:权限分级、Cron 调度、审计可追溯

最后一步是把 qm 从「工具」变成「基础设施」——团队用 Agent 需要配套制度:

落地清单:
① 权限分级
· 管理员:管理 scope 与全局配置
· 成员:使用自己的 scope + 参与共享项目
· 只读:查看共享视图,不可执行
② 定时任务
· 每日站会摘要、周报生成、数据巡检
· 用 Cron 调度让 Agent 到点干活
③ 审计可追溯
· Agent 在共享视图里的行为全程留痕
· 谁让 Agent 做了什么、结果如何都可查
④ 发布管控
· Web 应用发布走统一权限
· 生产环境产物需人工确认

常见坑:
· 别把生产密钥放进共享 scope
· 别让 Agent 无限制跑长任务(配预算/超时)
· 共享频道别贴敏感信息

组织级 Agent ≠ 更多 Agent,而是更有序的 Agent:隔离、权限、审计三件套缺一不可。qm 这类框架给了基础设施,但「怎么用」的制度要靠团队自己立。

常见问题速查

你的疑问参考答案
qm 是免费开源的吗?是,开源项目(TypeScript),以仓库许可证为准;创建于 2026-08-01,周增约 1.2 万 Star
必须用 Postgres 吗?持久化基于 Postgres,自部署需要自己准备数据库
能换底层模型吗?能,harness 接口可插拔:Pi、OpenCode、Codex、Claude Code 均可接入切换
和个人用 Claude Code 冲突吗?不冲突——qm 是团队级调度层,Claude Code 可以作为它的 harness 之一
适合个人用吗?核心是团队协作与隔离,个人用「个人 Agent」更轻;但如果想统一管理多任务也可用
和 CrewAI 什么区别?CrewAI 侧重「多角色编排完成任务」;qm 侧重「多用户隔离 + 共享协作的组织级运行环境」
← 返回教程中心