yc-software/qm
Multiplayer agent harness for work.
QM – 一个多用户 AI 代理平台
它是什么 – QM(发音为“queue-em”)是一个开源框架,让公司能够为每位员工以及共享的 Slack/Web 频道运行自己的 AI 驱动“代理”。每个用户(或“房间”)都有一个隔离的工作区,拥有自己的记忆、文件、凭据、计划任务和沙盒计算,而同一个代理可以被邀请在这些范围内协作。
为什么重要 – 大多数基于 LLM 的助手都是作为个人机器人构建的。QM 增加了缺失的组织级多租户层:个人隔离、细粒度权限控制,以及在任何您控制的云上运行相同模型无关核心的能力,使用任何 LLM 提供商(Pi、OpenCode、Claude Code 等)。这让初创公司可以将数据、密钥和合规性保留在内部,同时仍然获得 AI 副驾驶的生产力提升。
核心概念
| 概念 | 它为您提供什么 |
|---|---|
| 个人和共享范围 | 每位员工都有一个私有沙盒;频道/项目在被邀请时可以共享一个沙盒。 |
| 模型无关的框架 | 核心通过插件与任何受支持的 LLM 通信,因此您可以在不重新部署的情况下更换提供商。 |
| Slack + Web UI | 相同的身份和配置在 Slack(通过 Bolt)和 Vite/Lit Web 应用中工作。 |
| 管理员控制 | 组织级策略决定哪些模型/框架可用、安全姿态和共享规则。 |
| 技能和技能包 | 可重用的工具定义(例如,“搜索内部文档”)是有范围的、可授予的,并且可以提升为组织级。 |
| 后台工作 | Cron 作业、文件监视和入站 Webhook 在沙盒中运行,即使没有用户活跃。 |
工作原理(高级流程)
- API 核心 – 一个基于 Fastify 的 HTTP 服务,保存身份、策略、会话状态和调度器。它与一个 Loop 通信,该 Loop 调用选定的 LLM 框架(Pi、OpenCode、Claude Code 等)。
- 每个范围的沙盒 – 一个隔离的容器(或镜像),存储文件、已安装的工具和已登录的服务凭据。核心可以发出一个
execute工具调用,在该沙盒内运行命令。 - 持久化 – PostgreSQL 存储会话、记忆和持久队列。使用
DATABASE_URL和SESSION_STORE=postgres,状态在重启后仍然存在。 - 插件 – Slack(Bolt)和 Web UI 是轻量级服务,通过其 HTTP API 将用户轮次转发到核心。它们共享相同的身份模型,因此用户的偏好和权限在各个界面中保持一致。
- 部署目录 – 所有组织特定的配置(允许的模型、自定义工具、沙盒镜像、密钥)都保存在一个单独的仓库中,
qmCLI 会验证并部署该仓库。核心代码本身作为 npm 包@yc-software/qm进行版本控制。
安全模型
- 姿态 –
Strict(每次工具调用都需要人工批准)、Auto(默认,阻止私有网络访问)和Dangerous(无需批准,仅审计)。组织选择默认值;个人范围可以收紧。 - 内容筛选 – 可选的分类器(
off/observe/enforce),可以隔离标记的 LLM 输出。 - 命令策略 – 预声明的允许/拒绝规则,用于危险操作(例如,递归删除、破坏性 SQL),适用于所有姿态。
- 隔离与开放共享 – 默认情况下,范围是隔离的;“开放”姿态允许实时人工从共享房间读取选择加入的个人资产。
- 所有操作都会记录以供审计,代理使用用户自己的凭据运行,而不是共享服务账户。
典型用例
- 统一搜索 – 在单次交互中查询内部笔记、电子邮件、文档、数据库和网络。
- 内部应用构建 – 快速创建只有合适人员才能访问的自定义 Web 工具,数据保留在沙盒中。
- 电子邮件分类 – 学习用户的写作风格,自动标记传入邮件,并按计划起草回复。
- 开发人员工作流助手 – 在代理内运行测试、打开 PR、监控 CI 和检查日志。
- 项目跟踪 – 使用共享 Slack 频道获取自动状态更新和后续行动。
入门 / 部署
# 为您的组织初始化部署仓库(Fly、AWS 等)
npm exec --yes --package=@yc-software/qm@latest -- \
qm init . --org <slug> --target <fly-or-aws>
npm install
- CLI 会引导您配置身份、连接器(Slack、电子邮件、数据库)、沙盒镜像和 CI。
- 本地开发运行:
npm run dev-instance:web– Web UI + 管理面板npm run dev-instance:slack– 仅 Slack 插件npm run dev-instance:both– 两个界面一起
- 生产部署使用相同的 CLI(
plan、up、check),并依赖 PostgreSQL 存储实现持久性。
自定义和贡献
- 仅配置自定义 – 维护一个私有部署仓库,固定
@yc-software/qm包,并添加您自己的工具、技能和沙盒镜像。 - 源代码级更改 – Fork 仓库,修改核心、插件、CLI 或文档,然后发布私有 npm 包和自定义镜像。
- 贡献以设计提案(纯
.md/.txtADR 文件)的形式处理,而不是直接代码补丁;维护者实施批准的更改。
文档和资源
- 入门 –
docs/getting-started.md - CLI 参考 –
cli/README.md - 部署目录契约 –
docs/deploy-directory.md - 模型网关 –
docs/model-gateway.md - 沙盒和沙盒镜像指南 –
docs/superserve.md - 插件完整列表(Slack、Web UI、管理、门户) –
plugins/
许可证
MIT(偶尔包含第三方声明)。
底线 – QM 为初创公司提供了一种交钥匙方式,运行一个多租户、自托管的 AI 助手,尊重数据所有权,支持任何 LLM,并与 Slack 和内部 Web 工具紧密集成。
相关
- 项目
- 项目
- 项目
- 项目
- 项目