现在的 AI 工具几乎都是「单人模式」:一个人对着一个 AI 聊。但企业不是一个人工作,而是多人协作。2026 年 8 月,YC 开源了一个企业级 Agent Harness——QM,它的核心解法叫 Scope:一个引擎、无数个隔离房间。同一个 Agent 进不同的房间(个人私聊、团队频道、项目群)会自动切换不同的记忆、权限和配置。本教程手把手教你把 QM 跑起来,让团队共用一个 AI 却不互相串味。
先搞懂:QM 的 Scope 到底是什么?
用一句话理解:Scope 就是「同一个 AI 进不同的房间,自动戴不同的帽子」。它解决了企业 AI 里最头疼的协作与隔离问题:
| Scope 类型 | 记忆/权限 | 典型场景 |
|---|---|---|
| 个人 DM | 只属于你自己的配置与记忆 | 私人助理、个人待办 |
| 团队频道 | 频道级共享记忆 + 成员可见 | 项目群里的协作 Agent |
| 项目空间 | 项目级文件/密钥/定时任务 | 跨部门的专项工作区 |
核心价值:每人有独立工作区(沙箱、记忆、文件、密钥、定时任务、Web 应用),又能和同事在 Slack/群聊里和「同一个 Agent」协作——既共享能力,又互不干扰。
Step 1:准备并启动 QM
QM 以容器方式分发,自带 Web 界面和 Slack 桥:
git clone https://github.com/qm-agent/qm.git
cd qm
cp .env.example .env # 填入模型 Key 与管理员账号
docker compose up -d
# 启动后
open http://localhost:3000 # Web 管理界面
open http://localhost:3000/slack # Slack 应用配置页
Step 2:配置组织级策略
QM 的管理控制台可以设组织级配置、安全策略和可选模型白名单:
# admin/config.yaml 示例
org:
allowed_models: [deepseek-v4-flash, glm-5, qwen-max]
harness_whitelist: [web_app, cron, skill_share]
security:
per_scope_keys: true # 每个 Scope 独立密钥,互不泄露
audit_log: true # 所有 Agent 动作留痕
安全必开:per_scope_keys 和 audit_log 强烈建议打开。企业里「谁让 AI 干了什么」必须可审计,这是 QM 相比单人工具最大的合规优势。
Step 3:给每个成员开独立工作区
在 Web 控制台邀请成员,每个人自动获得独立工作区:
1. 控制台 → Members → Invite
2. 成员登录后,各自拥有:
- 独立沙箱(运行环境)
- 独立记忆(不与他人混)
- 独立文件与密钥
- 可建定时任务(cron / watch)
Step 4:在 Slack 里创建团队频道 Scope
把 QM 的 Slack 应用加到团队频道,这个频道就成了一个共享 Scope:
1. Slack → 添加 QM 应用 → 选目标频道(如 #growth-team)
2. 在该频道 @qm 提问,它会用「频道级共享记忆」回答
3. 频道里任何人都能看到它的产出,且记忆持续累积
示例:
@qm 把本周增长数据整理成周报,发到 #weekly
→ QM 在 #growth-team 的 Scope 里积累上下文后执行
Step 5:用 Scope 切换让同一 Agent 戴不同帽子
QM 的精髓是:你不用手动切换账号,Agent 根据「当前 Scope」自动加载对应配置:
· 在私聊里问它 → 加载「你的个人记忆 + 个人权限」
· 在 #growth-team 问 → 加载「频道共享记忆 + 频道权限」
· 在 #legal-review 问 → 加载「法务 Scope 的只读权限 + 合规记忆」
它不会把 A 频道的机密带到 B 频道。
这就是企业 AI 的雏形:AI 从「个人效率工具」变成了「有组织架构、有边界、可协作的基础设施」。
Step 6:发布内部工具与共享技能
QM 支持在 Scope 级别发布 Web 应用、共享技能:
1. 某人写好一个「竞品监控」技能
2. 在 Scope 设置里点「共享 → 授权给 #growth-team」
3. 频道成员即可 @qm 直接用这个技能
4. 技能可从 Git 导入,支持 scope 级授权打包
Step 7:配置定时任务,让 Agent 自动巡检
最后给团队 Scope 加几个自动任务:
# 每天 9 点把昨日数据发到频道
qm cron add --scope #growth-team \
--at "0 9 * * *" \
--task "汇总昨日增长数据并 @channel"
# 监控某个看板,变化就提醒
qm watch add --scope #sales --on "deals.closed > 100k" --notify
常见问题速查
| 现象 | 原因 & 解决 |
|---|---|
| 频道里 AI 答非所问 | 它加载的是该 Scope 的记忆,先确认你在该频道下「喂过」足够上下文 |
| 成员间记忆串了 | 检查 per_scope_keys 是否 true,并确认没误用全局 Scope |
| 定时任务没触发 | 容器时区问题,在 .env 设 TZ=Asia/Shanghai 后重启 |
| Slack 收不到消息 | 重新走一遍 Slack OAuth 授权,确认应用有发消息权限 |