QM / yc-software
組織向けマルチプレイヤー・エージェント基盤
QM は、個人とルームごとに状態を分離しながら、Slack と Web の両方から同じエージェントへ接続する TypeScript 製のヘッドレス・コアです。
identity → policy → agent loop → durable sandbox
1 — 概要
1 coreHTTP / identity / policy
N scopes人・ルーム・プロジェクト
4 harnessesPi / OpenCode / Codex / Claude Code
3 targetsDocker / Fly / AWS
ユーザーやルームは、それぞれメモリ、ファイル、キー、cron、Web アプリ、権限、耐久サンドボックスを持ちます。モデルやハーネスを交換しても、セッションと組織設定を保持したまま運用できます。
2 — 実行時の構成
入力面
SlackWeb UIAdminPortal任意のプラグインが同じ HTTP API と identity を共有します。
→
Headless core
FastifyACLpolicyschedulerリクエストをスコープへ解決し、ハーネスを介してエージェントのターンを実行します。
↔
永続・実行面
Postgressandboxtoolsskills履歴・メモリ・キューを保存し、スコープごとの隔離されたコンピューターでコマンドを実行します。
1 ターンの境界
surface → identity / scope → policy → harness → sandbox → persisted resultコアは小さな固定ツール面をエージェントへ公開します。代表的な execute は、対象スコープのサンドボックス内で動きます。
3 — スコープと共有
| 境界 | 保持するもの | 共有・継承の扱い |
|---|---|---|
| 個人 | ファイル、メモリ、キー、cron | 本人の作業環境として分離 |
| ルーム / チャンネル | 会話、共有メモリ、プロジェクト状態 | 参加者が同じエージェントと協働 |
| 組織 | モデル、ハーネス、セキュリティ姿勢、管理設定 | 下位スコープは設定を狭められる |
| スキル | スコープ所有の手順とテキスト資産 | grant と管理者承認で共有・昇格 |
設計上の要点: 共有は「全員が同じ作業ディレクトリを使う」ことではありません。identity と scope が、データ・資格情報・実行環境の境界を先に決めます。
4 — デプロイ契約
組織固有の設定はソース本体ではなく、qm init が生成する deployment directory に置きます。CLI はそのディレクトリを検証し、選んだ基盤へデプロイします。
| 対象 | 役割 | 特徴 |
|---|---|---|
| Docker | ローカル / 自前環境 | Postgres とサンドボックスを手元で起動 |
| Fly | 運用向けクラウド | イメージを公開し、ライブ状態と health endpoint を確認 |
| AWS | ECS / RDS / CloudFront | lease、RDS snapshot、digest pin、drift 検査で更新を管理 |
推奨ゲート順
qm check → qm doctor → sandbox publish / infra build-image → qm plan → qm up --yes → qm check --live設定値と secret value は分離されます。check は静的契約、doctor は外部資源の読み取り確認、plan は変更なしの描画、up が適用を担います。
5 — 安全境界
3 つのセキュリティ姿勢
| 姿勢 | エージェントへの制約 |
|---|---|
| Strict | ハーネスのツール呼び出しごとに承認。一部のターン終了操作を除く。 |
| Auto | 外部データとツール結果を provenance 付きで分類し、モデルへ渡す前にスクリーニング。 |
| Dangerous | コンテンツ検査やツール間の待機を省略。ただし破壊的コマンドの固定ポリシーは残る。 |
注意: QM は認証情報をエージェント本人として扱い、操作を監査します。サンドボックスの egress 宣言は v1 では検証対象であり、実行時 enforcement を意味しません。
6 — 導入の入口
運用者の組織リポジトリから依存する形で初期化します。QM 本体のソースチェックアウトは不要です。
npm exec --yes --package=@yc-software/qm@latest -- \
qm init . --org <slug> --target <fly-or-aws>
npm install- 生成された deployment skill の案内でインフラ、サインイン、コネクターを設定する。
qm checkとqm doctorで契約と外部資源を確認する。- デプロイ後に
qm check --liveで実環境とのドリフトを調べる。