2026 年 8 月 1 日创建、一周暴涨约 1.2 万 Star 的开源项目 qm,开场白就非常直接:「大多数 Agent 是个人助手的设计,qm 是为创业团队设计的。」它用 TypeScript 实现了一套多人共享的 Agent 协作框架:每个人有自己的独立工作空间沙箱、文件存储、密钥视图与权限配置,也能把 Agent 拉进 Slack 频道或项目里共享协作;底层把 Agent 循环抽象成可替换的 harness 接口,Pi、OpenCode、Codex、Claude Code 都能接入同一个 core。本教程带你从理念到实战完整落地。
先搞懂:qm 解决的是什么问题?「隔离粒度」是灵魂
个人 Agent 的痛点是「各管各的,互不相通」;但团队用 Agent 时,简单共享又会带来新问题——两个人同时让 Agent 跑任务,会不会互相覆盖?密钥该给谁看?qm 的回答是:按「隔离粒度」设计,个人空间完全独立,共享视图按需开启。
| 维度 | 个人 Agent(如 Claude Code) | qm 团队 Agent |
|---|---|---|
| 工作空间 | 单机单用户 | 每人独立沙箱,互不覆盖 |
| 密钥与权限 | 全部在本地 | 个人密钥视图 + 分级权限配置 |
| 任务调度 | 手动逐个跑 | Cron 调度 + 共享项目协作 |
| 成果发布 | 本地产出 | Web 应用发布权限统一管理 |
| 底层引擎 | 绑定单一模型/工具 | harness 可插拔,任意切换 |
Step 1:理解核心概念——scope、harness 与共享视图
开工前先把 qm 的三个核心概念弄清楚:
① Scope(工作范围/车间)
· 每个 scope 有独立的沙箱环境
· 独立的工作空间、文件存储、密钥视图
· 独立的权限配置、Cron 调度、Web 发布权限
② Harness(引擎抽象层)
· 把「Agent 循环」抽象成可替换接口
· Pi / OpenCode / Codex / Claude Code 都可接入
· 切换 harness 不影响已有配置、记忆与权限
③ 共享协作
· 在 Slack 频道或项目里拉 Agent 一起干活
· Agent 拿到的是「共享视图」
· 不会把所有人的私有上下文混在一起
持久化:Postgres 负责状态存储
Step 2:部署准备——Node 环境 + Postgres
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:创建团队工作空间与成员隔离
团队入驻后,第一步是建立「一人一 scope」的隔离格局:
操作步骤:
· 为每位成员创建独立 scope
· 每个 scope 配置独立:
- 工作空间沙箱(文件系统隔离)
- 文件存储(私有目录)
- 密钥视图(各自 API Key/Token)
- 权限配置(谁能读谁能写)
- Cron 调度(各自定时任务)
- Web 应用发布权限(各自产物)
隔离效果:
· 两人同时让 Agent 跑任务,互不覆盖
· 各自的密钥不会泄露给他人
· 各自的产物独立发布
管理习惯:
· 新人入职:开新 scope,按角色配最小权限
· 人走:回收 scope,密钥立即失效
Step 4:配置共享协作——Slack 频道与项目级视图
隔离做好后,再按需开启共享——这是 qm 区别于「简单共享一个 Agent」的关键:
共享协作方式:
· 在 Slack 频道里 @Agent 一起讨论任务
· 在项目(Project)里挂 Agent 长期值守
· 频道成员共享一个「共享视图」
共享视图的边界:
· Agent 只拿到与当前任务相关的共享上下文
· 不会把所有人的私有上下文混在一起
· 私有 scope 的内容默认不出本 scope
典型用法:
· 运维频道:Agent 处理告警并同步进展
· 产品频道:Agent 整理用户反馈周报
· 项目仓库:Agent 负责 PR 审查与构建检查
Step 5:接入不同 harness——今天 Claude Code,明天 Codex
qm 把「Agent 循环」抽象成 harness 接口,意味着底层引擎可以按团队需求随时更换:
支持的 harness(示例):
· Pi
· OpenCode
· Codex
· Claude Code
· 自定义 harness(按接口实现即可)
切换姿势:
· 在 scope 配置里切换 harness 类型
· 无需迁移:配置、记忆、权限体系保持不变
· 可混合:不同 scope 用不同 harness
选型建议:
· 成本敏感:本地/开源 harness(如 Pi、OpenCode)
· 能力优先:Claude Code / Codex
· 团队统一:按主流技术栈选一个默认,按需覆盖
Step 6:团队实战——从「个人玩具」到「组织级基础设施」
最后一步是把 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 侧重「多用户隔离 + 共享协作的组织级运行环境」 |