yc-software/qm

Multiplayer agent harness for work.

QM – マルチユーザー AI エージェントプラットフォーム

概要 – QM(「キューエム」と発音)は、企業が従業員全員と共有 Slack/Web チャネル向けに、自社で AI を活用した「エージェント」を実行できるようにするオープンソースフレームワークです。各ユーザー(または「ルーム」)には、独自のメモリ、ファイル、資格情報、スケジュールされたジョブ、サンドボックス化されたコンピューティングを備えた分離されたワークスペースが与えられ、同じエージェントをこれらのスコープ間でコラボレーションに招待できます。

重要性 – ほとんどの LLM ベースのアシスタントは、個人用ボットとして構築されています。QM は、組織全体のテナントという欠けていたレイヤーを追加します。個人ごとの分離、きめ細かい権限制御、そして管理する任意のクラウド上で同じモデル非依存のコアを実行し、任意の LLM プロバイダー(Pi、OpenCode、Claude Code など)を使用する機能です。これにより、スタートアップはデータ、キー、コンプライアンスを社内に保持しながら、AI コパイロットの生産性向上のメリットを得られます。


中核概念

概念 提供されるもの
個人および共有スコープ 各従業員にはプライベートサンドボックスがあります。チャネル/プロジェクトは、招待されたときにサンドボックスを共有できます。
モデル非依存ハーネス コアはプラグインを介してサポートされている任意の LLM と通信するため、再デプロイせずにプロバイダーを切り替えられます。
Slack + Web UI 同じ ID と構成が Slack(Bolt 経由)と Vite/Lit Web アプリで機能します。
管理者制御 組織レベルのポリシーが、利用可能なモデル/ハーネス、セキュリティポスチャ、共有ルールを決定します。
スキルとスキルパック 再利用可能なツール定義(例:「内部ドキュメントを検索」)はスコープが設定され、付与可能で、組織全体に昇格できます。
バックグラウンド作業 Cron ジョブ、ファイルウォッチ、インバウンド Webhook は、ユーザーがアクティブでなくてもサンドボックス内で実行されます。

仕組み(高レベルフロー)

  1. API コア – Fastify ベースの HTTP サービスが、ID、ポリシー、セッション状態、スケジューラを保持します。選択された LLM ハーネス(Pi、OpenCode、Claude Code など)を呼び出す Loop と通信します。
  2. スコープごとのサンドボックス – ファイル、インストールされたツール、ログイン済みサービス資格情報を保存する分離されたコンテナ(またはイメージ)。コアは、このサンドボックス内でコマンドを実行する execute ツール呼び出しを発行できます。
  3. 永続化 – PostgreSQL がセッション、メモリ、永続キューを保存します。DATABASE_URL と SESSION_STORE=postgres を使用すると、状態は再起動後も維持されます。
  4. プラグイン – Slack(Bolt)と Web UI は、HTTP API を介してユーザーのターンをコアに転送する軽量サービスです。同じ ID モデルを共有するため、ユーザーの好みと権限はすべてのサーフェスで一貫しています。
  5. デプロイディレクトリ – すべての組織固有の構成(許可されたモデル、カスタムツール、サンドボックスイメージ、シークレット)は、qm CLI が検証してデプロイする別のリポジトリに保存されます。コアコード自体は npm パッケージ @yc-software/qm としてバージョン管理されます。

セキュリティモデル

  • ポスチャ – Strict(すべてのツール呼び出しに人間の承認が必要)、Auto(デフォルト、プライベートネットワークアクセスをブロック)、Dangerous(承認なし、監査のみ)。組織がデフォルトを選択します。個々のスコープはそれを厳格化できます。
  • コンテンツスクリーニング – オプションの分類子(off/observe/enforce)で、フラグが付けられた LLM 出力を隔離できます。
  • コマンドポリシー – 危険な操作(例:再帰的削除、破壊的な SQL)に対する事前宣言された許可/拒否ルールが、すべてのポスチャに適用されます。
  • 分離とオープン共有 – デフォルトではスコープは分離されています。「オープン」ポスチャでは、ライブの人間が共有ルームからオプトインした個人資産を読み取ることができます。
  • すべてのアクションは監査用にログ記録され、エージェントは共有サービスアカウントではなく、ユーザー自身の資格情報で実行されます。

典型的なユースケース

  • 統合検索 – 内部メモ、メール、ドキュメント、データベース、Web を 1 回のターンでクエリします。
  • 内部アプリ構築 – 適切な人だけがアクセスできるカスタム Web ツールを迅速に作成し、データはサンドボックスに保持します。
  • メールトリアージ – ユーザーの書き方を学習し、受信メールを自動ラベル付けし、スケジュールに従って返信を下書きします。
  • 開発者ワークフローアシスタント – エージェント内からテストを実行し、PR を開き、CI を監視し、ログを検査します。
  • プロジェクト追跡 – 共有 Slack チャネルを使用して、自動ステータス更新とフォローアップを取得します。

はじめに / デプロイ

# 組織のデプロイリポジトリを初期化(Fly、AWS など)
npm exec --yes --package=@yc-software/qm@latest -- \
  qm init . --org <slug> --target <fly-or-aws>
npm install
  • CLI が、ID、コネクタ(Slack、メール、DB)、サンドボックスイメージ、CI の構成を案内します。
  • ローカル開発用に実行:
    • npm run dev-instance:web – Web UI + 管理パネル
    • npm run dev-instance:slack – Slack プラグインのみ
    • npm run dev-instance:both – 両方のサーフェスを一緒に
  • 本番デプロイは同じ CLI(plan、up、check)を使用し、永続性のために PostgreSQL ストアに依存します。

カスタマイズと貢献

  • 設定のみのカスタマイズ – @yc-software/qm パッケージを固定し、独自のツール、スキル、サンドボックスイメージを追加するプライベートデプロイリポジトリを維持します。
  • ソースレベルの変更 – リポジトリをフォークし、コア、プラグイン、CLI、またはドキュメントを変更してから、プライベート npm パッケージとカスタムイメージを公開します。
  • 貢献は、直接のコードパッチではなく設計提案(プレーンな .md/.txt ADR ファイル)として処理されます。メンテナーが承認された変更を実装します。

ドキュメントとリソース

  • はじめに – docs/getting-started.md
  • CLI リファレンス – cli/README.md
  • デプロイディレクトリ契約 – docs/deploy-directory.md
  • モデルゲートウェイ – docs/model-gateway.md
  • サンドボックスとサンドボックスイメージガイド – docs/superserve.md
  • プラグインの完全なリスト(Slack、Web UI、管理、ポータル) – plugins/

ライセンス

MIT(時折サードパーティの通知を含む)。


結論 – QM は、スタートアップに、データ所有権を尊重し、任意の LLM をサポートし、Slack と内部 Web ツールに緊密に統合された、マルチテナントのセルフホスト型 AI アシスタントを実行するためのターンキーな方法を提供します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト