YC 开源了团队内部在用的多人 Agent Harness:QM QM 已经在 YC 内部跑真实业务的系统:会计记账、法务、活动运营、工程协作,工具注册表从最初的约 20 个工具积...
AI 摘要
YC 开源了内部使用的多人 Agent 系统 QM,采用作用域隔离和四层架构,为多智能体协作提供可参考的实现。
推荐理由常规快讯,保留列表
原文
QM 已经在 YC 内部跑真实业务的系统:会计记账、法务、活动运营、工程协作,工具注册表从最初的约 20 个工具积累到了 350 多个。 https://github.com/yc-software/qm
QM 最重要的抽象是 scope(作用域) 每个人、每个 Slack 频道、每个项目房间,都有自己独立作用域的记忆、文件、密钥视图、权限、定时任务、Web 应用和持久沙箱。这种设计带来两个关键性质: · 个人隔离:员工各自定制"属于自己的" agent,互不干扰; · 协作共享:在频道和项目里,大家又能和同一个 agent 协同,共享上下文。
同一套身份和配置在 Slack 和 Web 之间无缝携带。这本质上是在回答"agent 时代的权限与上下文边界应该怎么划"——按人和按空间划,而不是按会话划。
QM 的架构非常克制,可以拆成四层 1. Headless Core(无头核心) 所有请求都经过一个中央核心:API、身份、策略、调度器,加上 agent 循环。核心用 TypeScript 直接跑在 Node 上,HTTP 层用 Fastify。关键在于核心是通用的——harness、会话存储、沙箱、记忆等每个底层组件都藏在接口后面,生产实现通过一个 wiring 文件注入。 2. 可替换的 harness 与模型 Pi、OpenCode、Codex、Claude Code 驱动的是同一个核心,可以随时切换。这是一个明确的反锁定立场:部署不绑定任何单一模型厂商。考虑到 YC 自己被各家模型公司"包围",这个中立设计既是技术选择也是立场声明。 3. Postgres 持久层 + 每作用域沙箱 会话历史、用户数据、队列等持久状态存在 Postgres。Agent 的工具面刻意做得很小,其中核心是一个 execute 工具——在该作用域自己的隔离沙箱里执行命令。沙箱是"持久的电脑":装过的工具一直装在那里。这个设计很符合 Koomen 的哲学——好的 AI 软件应该尽可能小,只写最少量的代码,剩下的交给模型。 4. 插件化的前端 Web UI(Vite + Lit)、管理面板、公开门户都是核心 HTTP API 之上的可选插件;Slack(Bolt 框架)是核心直接启动和监督的进程内插件。接入面是可以换的,核心才是本体。
QM 的安全思路直接沿袭本地 coding agent 的范式 agent 以它服务之人的身份、凭据和权限行事,一切行为可审计。组织选定一个安全水位,更窄的作用域只能收紧、不能放宽: · Strict:除两个无副作用的回合结束工具外,每次工具调用都需人工批准; · Auto(默认):一个分类器在外部数据和工具结果送达模型前做来源标注和筛查,且部署方可以把筛查指向自己的代理; · Dangerous:不做内容筛查、不在工具调用间暂停。
讨论
暂无评论。