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 アプリ、権限、耐久サンドボックスを持ちます。モデルやハーネスを交換しても、セッションと組織設定を保持したまま運用できます。

出典: yc-software/qm README.md

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 を確認
AWSECS / RDS / CloudFrontlease、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 で実環境とのドリフトを調べる。

参照: docs/getting-started.md / cli/README.md