这个项目能做什么

QM 是一个多人在线代理工具,适用于 Slack 和网页端。它不是单一的个人助理,而是专为初创公司设计:每位员工拥有独立的工作空间,人们还可以在频道、群组消息和项目中与代理协作。每个人和每个房间都有各自的作用域记忆、文件、密钥视图、权限、定时任务、网页应用和持久化沙箱。 README 中描述的主要功能: - 个人和共享作用域:人们可以为自己定制代理,同时仍能在 Slack 频道和项目中协作使用。 - Slack 和网页端:同一身份和配置可在 Slack 和网页应用之间同步。 - 管理员控制:组织级配置、安全和共享策略,以及可用的代理框架和模型。 - 网页应用:快速创建自定义内部应用并发布给相应人员。 - 共享技能:技能由作用域拥有,可通过授权共享,管理员可将其推广至整个组织,并可从 git 仓库导入技能包。 - 后台工作:定时任务、监视器和入站 webhook 可在无人关注时运行工作。 示例用途包括:综合搜索内部笔记、电子邮件、文档、数据库和网页;构建并发布内部应用;从过去的发送中学习写作风格,并按计划对收件箱进行分类,附带标签和回复草稿;在现有仓库中工作,运行测试、开启 PR、监控 CI 和检查日志;在共享频道中跟踪项目,提供更新和后续跟进。 架构:每一轮操作都通过一个中央无头核心运行,该核心可使用多种模型和代理框架(Pi、OpenCode、Codex、Claude Code)生成响应。Postgres 持久化层存储用户数据、会话历史和其他持久状态。代理具有小而固定的工具面;其中一个工具是 `execute`,它在其作用域自己的隔离沙箱中运行命令。网页 UI 和管理面板共享一个服务;门户和可选的内置认证代理共享另一个服务。核心在 Node 上运行 TypeScript,并使用 Fastify 处理 HTTP;Slack 插件使用 Bolt;网页 UI 使用 Vite 构建,并使用 Lit 渲染。公司特定配置位于部署目录中,由 `qm` CLI 验证和部署。子层(代理框架、会话存储、沙箱、记忆)位于接口之后,记忆可按作用域路由到外部提供商,同时保留内置笔记本。 安全与机密:代理以其服务对象的身份行事,使用其凭据和权限,操作会被审计。组织选择一种安全策略,较窄的作用域只能加强该策略:严格(除两个无效果的回合结束操作外,每个代理框架工具调用都暂停等待人工批准)、自动(默认;阻止私有网络访问,并在配置时使用内容筛选器)和危险(无基于策略的内容筛选或工具批准门控)。预声明的命令策略包含批准规则和硬性拒绝,适用于所有策略。共享策略独立:隔离(默认)将资源保留在其作用域内,除非明确共享;开放允许选择加入的个人文件、工件、技能和记忆在选定的共享房间内按既定限制被读取。SECURITY.md 记录了威胁模型和已知限制。 部署:创建一个组织拥有的部署仓库,依赖 `@yc-software/qm`,使用组织 slug 和目标(fly 或 aws)运行 `qm init`,然后安装并遵循生成的部署技能。每个部署在运营商自己的云账户中运行。可通过部署仓库(配置、工具、技能、服务)进行自定义,或通过保留源代码分支来更改 QM 本身。README 还涵盖了通过托管服务进行托管 Slack 安装,包括环境变量和回调契约。 贡献以人类编写的文本而非代码形式提交:在 adrs/ 目录下的 .txt 或 .md 文件中描述所需更改。漏洞应按照 SECURITY.md 私下报告。QM 在 MIT 许可下可用,除非另有说明。