个人 AI 助手已经不新鲜,但”给整个公司配一个 AI”至今没有标准答案——权限怎么隔离?记忆怎么共享?出了安全问题谁负责?7 月 29 日刚开源的 qm(github.com/yc-software/qm)试图给出系统性的解法。这个自称”工作场景多人 Agent 底座”(Multiplayer agent harness for work)的项目,上线三天就收获 1700+ Star,并以 389 分登上 Hacker News 热榜。
背景:从”个人助理”到”组织级 Agent”
qm 的出发点很直接:市面上的 Agent 大多按个人助理设计,硬要让它服务全公司,复杂度会迅速失控。qm 面向创业公司重新设计——每位员工拥有自己独立的工作区,互不干扰;同时又能在 Slack 频道、群聊和项目里与同一个 Agent 协作。每个人、每个房间都有自己独立作用域的记忆、文件、密钥串、权限、定时任务、Web 应用和持久沙箱。
项目采用 MIT 许可证,TypeScript 编写。一个突出的卖点是”harness 无关”:Pi、OpenCode、Codex、Claude Code 都可以驱动同一个核心,部署不被任何单一供应商绑定。
核心设计:双层作用域 + 可插拔核心
· 个人与共享作用域:员工可以把 Agent 调教成”自己的”,同时在频道和项目中协作使用;Slack 和 Web 端共享同一身份与配置;
· 管理控制:组织层面统一配置安全策略,决定哪些 harness 和模型可用;
· Web 应用:可以让 Agent 现场构建内部应用并发布给指定人群;
· 共享技能:技能按作用域归属、按授权共享,管理员审核后可推广到全组织,还能从 git 仓库导入技能包;
· 后台工作:cron 和 watch 机制让 Agent 在没人盯着的时候持续干活。
技术架构
架构上,qm 采用无头核心(headless core)设计:所有对话轮次都经过中央核心,由 API(身份/策略/调度)+ Agent 循环组成,Postgres 负责持久化会话、记忆和队列。Agent 的工具面刻意保持小巧,其中一个工具是 execute——在该作用域独立的持久沙箱里执行命令,装好的工具会一直保留,相当于每个作用域都有一台”自己的电脑”。Web UI、管理面板、公开门户都是核心 HTTP API 之上的可选插件;Slack 则是核心直接托管的进程内插件(基于 Bolt)。技术栈为 Node + Fastify,前端 Vite + Lit。
公司特定的部分——组织配置、自定义工具与技能、沙箱镜像、基础设施——全部放在一个 deployment 目录里,由 qm CLI 校验和部署;harness、会话存储、沙箱、记忆等每个底座都藏在接口后面,生产实现通过一个接线文件替换。
安全模型:三档姿态
qm 沿用了 OpenCode、Codex、Claude Code 等本地编码 Agent 的思路:Agent 以操作者本人的身份、凭证和权限行事,一切行为可审计。组织选定一种安全姿态后,更窄的作用域只能收紧不能放松:
· Strict:每个工具调用都暂停等待人工批准(两个无副作用的轮次结束器除外);
· Auto(默认):分类器在外部数据和工具结果送达模型前进行筛查,数据来源带来源标签,企业可将筛查指向自己的代理;
· Dangerous:不做内容筛查。
社区反响
HN 评论区最热闹的梗来自项目的贡献政策:qm 只接受”人类手写的文字”而非代码贡献——改动想法要用 .txt 或 .md 非正式地描述在 adrs/ 目录里,由维护者来实现。不少人调侃:一个由 AI 写代码的 AI 项目,却明确要求贡献者不要用 AI 扩写,颇为黑色幽默。也有读者将其与 Hermes、OpenClaw 等同类开源 Agent 底座对比,质疑其”跑在运营商自己云账号”的架构实际上更像单机/单 VM 方案,与托管型产品(Tasklet 等)各有取舍。还有人好奇”yc software”的背景——从名字看与 Y Combinator 渊源不浅。
结语
qm 的价值在于把”组织级 Agent”从口号落实为一套有清晰边界概念的工程框架:作用域隔离、管理面收紧、技能可治理地流动、安全姿态分级。它未必是终局,但它提出的问题——当 Agent 不再是个人玩具而是公司基础设施——是每个团队今年都要回答的。
原文链接:https://github.com/yc-software/qm
HN 讨论:https://news.ycombinator.com/item?id=49126604