multica-runtimes-and-repos について
multica-runtimes-and-reposは、Multicaのランタイム実行とリポジトリのチェックアウトを理解するエージェントスキルです。タスクの調査手順を示し、ランタイム、デーモン、リポジトリの境界を説明します。
主な機能
- 01ランタイムとデーモンを通じたタスク配送の追跡
- 02ランタイム状態とアクティビティの確認
- 03タスクスコープのコマンドライン境界の説明
- 04リポジトリのチェックアウトコンテキスト確認
- 05ワークスペースのリポジトリとプロジェクトリソースの区別
活用シーン
- 01エージェントタスクが実行されない問題の調査
- 02リポジトリのチェックアウト失敗の調査
- 03ランタイムのオンライン状態確認
- 04リポジトリコンテキストが永続化されるかの判定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ multica-ai/ multica --skill multica-runtimes-and-reposインストール後、Claude Code で/multica-runtimes-and-reposを入力して読み込まれたか確認します。
同梱ファイルreferences/runtimes-and-repos-source-map.md
詳細
Multica ランタイムとリポジトリ
クイックスタート
「エージェントが実行されなかった」または「リポジトリのチェックアウトに失敗した」という場合は、何かを変更する前にこのチェーンを確認してください:
multica agent get <agent-id> --output json
multica runtime list --output json
multica repo checkout <repo-url>
ランタイムとリポジトリのコマンドは、実行中のエージェントの実行に影響を与えます。テストのためだけにデーモンを再起動したり、ランタイムを更新したり、任意のリポジトリをチェックアウトしたりしないでください。
コアモデル
ランタイムとは、エージェントの背後にある実行ターゲットです。デーモンはローカルのランタイムプロセスを所有し、サーバーからキューに入れられたタスクをクレームします。
チェーンは次のとおりです:
- ユーザーの操作により、
agent_task_queueの行が作成または更新されます; - タスクはエージェントとランタイムを指します;
- 可能な場合、サーバーはデーモンの websocket を介してランタイムを起動します;
- デーモンがタスクをポーリングしてクレームします;
- サーバーがタスクコンテキスト、リポジトリ、プロジェクトリソース、以前のセッション/作業ディレクトリのヒント、およびタスクトークンを返します;
- デーモンが作業ディレクトリを準備し、プロバイダーの CLI を起動します;
multica repo checkoutはローカルのデーモンと通信し、GitHub と直接通信するわけではありません。
CLI
multica runtime list --output json
multica runtime usage <runtime-id> --output json
multica runtime activity <runtime-id> --output json
multica runtime update <runtime-id> --target-version <version> --output json
multica runtime delete <runtime-id>
multica repo checkout <url>
multica repo checkout <url> --ref <branch-or-sha>
runtime update と runtime delete は書き込み操作です。ランタイム更新の開始は、そのオーナーまたはワークスペースのオーナー/管理者に限定されます。元の開始者は、管理者ロールが変わった場合でも、その特定の進行中のリクエストを引き続きポーリングできます。runtime delete はランタイムの登録を削除します。アクティブなエージェントがまだバインドされている場合、ユーザーが明示的に --cascade を渡さない限り拒否されます。--cascade はそれらのエージェントをアンバインドし、ランタイムを削除する前にキューに入れられた/実行中のタスクをキャンセルします。アンバインドはエージェントと、それが所有するすべてのもの — インストラクション、スキル、チャット、ラベル、チャネルインストール、オートパイロット、タスク履歴 — を保持し、agent.runtime_id をクリアするだけです。アンバインドされたエージェントは、再びランタイムにバインドされるまで実行できず(multica agent update <id> --runtime-id <runtime-id>)、すべてのトリガーパスが agent_runtime_required でそれを拒否します。repo checkout はタスクの作業ディレクトリに専用のブランチを作成します。ほとんどのランタイムはリンクされた worktree を使用します。Linux と Windows の Codex はタスクローカルの Git メタデータを使用するため、共有の .repos キャッシュを書き込み可能にすることなく、タスクがステージングとコミットを行えます。
repo checkout には MULTICA_DAEMON_PORT と、注入されたタスクスコープの MULTICA_TOKEN の両方が必要です。これはアクティブなデーモンタスク内から、そのタスクの作業ディレクトリ(またはその子孫)から実行することを想定しています。ローカルデーモンは、トークンを自身のアクティブタスクレジストリに対して認証し、ワークスペース/タスク/エージェントの識別情報を自身で導出し、そのタスク外の呼び出し元が指定した作業ディレクトリを拒否します。どちらかの変数が存在しない場合、通常のエージェントチェックアウトパスにはいません。プロジェクトの github_repo リソースが resource_ref.ref を持つ場合、repo checkout <url> は現在のタスクに対してデフォルトでその ref を使用します。明示的な repo checkout <url> --ref <branch-or-sha> はそれを上書きします。
タスク CLI の境界
デーモンは、Multica API コマンド用にタスクスコープの mat_ 認証情報と、プライベートなタスクローカルの Multica 設定ルートを注入します。その管理されたタスクコンテキスト内では、次のようになります。
issue list、issue get、issue runsなどの API コマンドは、注入されたタスク ID を使用し、デーモンの Owner が保存した Multica プロファイルにフォールバックすることはありません。config showとconfig setは、タスクローカルの Multica 状態のみを操作します。タスク設定ルートが存在しない場合は、フェイルクローズします。auth statusはタスク ID を検証できますが、出力からはすべてのトークン関連情報を省略します。daemon statusとdaemon disk-usageは、このタスクをホストしているランタイムについて報告します。statusはデーモンが注入したヘルスポートをプローブし、disk-usageはデーモンが注入したワークスペースルートをスキャンします。どちらも--profileを拒否し、disk-usageはさらに--all-profilesと--workspaces-rootも拒否します。また、その STATUS 列は空白のままです。これを埋めると Owner の認証情報を消費してしまうためです。- 人間/ローカル向けのプロファイルおよびデーモンコマンド —
login、logout、setup、workspace switch、ローカルランタイムプロファイルのパス変更、daemon start/stop/restart、daemon logs、daemon probe-runtimesなど — は利用できません。特にdaemon stopは、このタスクを実行しているデーモンと、その上のすべての兄弟タスクを終了させてしまいます。
MULTICA_DAEMON_PORT だけでは、タスクセーフな API およびプロファイル解決のための弱い多層防御シグナルにすぎず、人間/ローカルコマンドの拒否におけるタスク ID ではありません。本物のタスクは MULTICA_AGENT_ID / MULTICA_TASK_ID、MULTICA_TASK_CONFIG_ROOT、またはデーモン管理の作業ディレクトリマーカーも持ちます。ポートが唯一のシグナルである場合、daemon status は選択されたホストプロファイルから導出されたヘルスポートを使用します。通常の API およびプロファイル解決コマンドは依然としてフェイルクローズします。ホスト運用者は MULTICA_DAEMON_PORT をエクスポートすべきではありません。デーモンは選択されたプロファイルからホストのヘルスポートを導出し、その変数を自らタスクに注入します。
デーモンは、gh、aws、kubectl、npm などのプロバイダーツールのために、実際の HOME と XDG 変数を引き続き保持します。これは CLI 解決の堅牢化であり、厳密なファイルシステムの機密性ではありません。同じ OS ユーザー下のプロセスは、明示的に既知の Owner パスを依然として開くことができます。そのより強力な分離には、専用の Unix ユーザー、コンテナ、VM、または同等の OS 境界が必要です。
実行されなかったエージェントのデバッグ
次の順序で確認してください。
- タスクは作成されるはずだったのでしょうか? issue/コメント/autopilot のコンテキストを確認してください。
- 担当者はエージェントまたはスクワッドですか? スクワッドはそのリーダーにルーティングされます。
- エージェントはアーカイブされているか、アクターが使用できないランタイムにバインドされていますか?
- ランタイムはオンラインですか?
multica runtime list --output json。 - デーモンは最近ハートビートを行いましたか? ランタイムの
last_seen_atが目に見える手がかりです。 - タスクはクレームされましたか、それとも pending/running/ローカルディレクトリ待ちのままスタックしていますか?
- リポジトリのチェックアウトが失敗した場合は、タスク/プロジェクトのコンテキストにリポジトリのコンテキストが存在したかどうかを確認したうえで分類してください。
リポジトリ
ランタイムブリーフには、このタスクで利用可能なリポジトリが一覧表示されます。ユーザーが明示的に新しいプロジェクトリソースのバインドを求めない限り、その一覧をエージェントのチェックアウトに関する権威として扱ってください。
ワークスペースリポジトリとプロジェクトリソースは同じものではありません。
- ワークスペースリポジトリのメタデータはワークスペースコンテキストに現れることがあります。
github_repoプロジェクトリソースは永続的なプロジェクトコンテキストであり、将来のタスクに影響を与える可能性があります。オプションのresource_ref.refは、そのプロジェクト内のタスクのデフォルトチェックアウト ref を固定します。local_directoryリソースは、デーモンが所有するパスを指し、ローカルマシンの前提を伴います。
repo checkout が失敗したからといって、プロジェクトリソースを追加しないでください。まず、ユーザーが永続的なプロジェクトコンテキストを求めたのか、単なるタスクのチェックアウトを求めたのかを判断してください。
ソースに基づく詳細: references/runtimes-and-repos-source-map.md。