第 14
エージェント型ワークフローの FrontierStack
FrontierStack を、コーディングエージェント・自律コーディネータ・人/エージェントのワークフローを支えるガード付きインフラ権限として使います。サーバ認証情報をモデルへ移す必要はありません。
第 13 章では FrontierStack 内蔵の AI 管理者を扱いました。本章では逆方向を説明します。Codex・Claude Code・Cursor・Gemini CLI・Grok 系コーディネータなど、すでに使っているエージェント型ワークフローの中へ FrontierStack を配置し、認証情報と最終権限を Mac に残したまま、実際のフリートを調査して作業を依頼できるようにします。
14.1FrontierStack の役割
エージェント型システムには通常、何をするか決めるコーディネータと、特定分野の作業方法を知るスペシャリストがあります。FrontierStack が担うのは、安定したサーバ管理者の役割です。同時に、確率的なモデル出力と本番インフラの間にある権限境界でもあります。
この区別は重要です。コーディングエージェントがデプロイを理解して再起動を提案できても、再起動を可能にする SSH 鍵まで持つべきではありません。マネージャエージェントが障害を割り当てても、そのメッセージ自体は認可ではありません。FrontierStack は依頼を受け、呼び出し元を認証し、ツールを絞り、ローカルポリシーを適用し、実行時に認証情報を解決し、必要な場合は人に承認を求め、操作・検証・監査記録を行います。
14.2ひとつの依頼が完了するまで
- コーディネータが限定された仕事を記述。たとえば「web-02 の証明書エラーを調査」または「停止している場合だけキューワーカーを再起動」です。
- FrontierStack が呼び出し元を認証。ローカルクライアントは所有者専用 Keychain ブリッジを使います。ネットワーク越しの呼び出しには、明示的に有効化し、ペアリング・署名・スコープ設定した経路が必要です。
- ツールを二段階で絞り込み。
frontierstack_find_toolsが仕事に関連するツールを探し、現在の呼び出し元スコープが許可されないものを除きます。 - 実行時にポリシーを再確認。読み取り専用の既定値、App Lock、データ破壊制限、承認カードを、選んだツールの呼び出し時にも確認します。ディスカバリだけで権限は得られません。
- 認証情報をローカルで解決。SSH 鍵、sudo パスワード、DB 認証情報、ルータログイン、クラウドトークンは Keychain または連携ボールトに残ります。モデルには値も、再利用できる認証情報入りコマンドも渡しません。
- 対象で限定操作を実行。FrontierStack がこの Mac または選択した Linux・Windows・Mac ホストで、確認済みのローカル・SSH・ヘルパー経路を使います。
- 完了を検証。重要な変更ではプロセスの終了コードだけを成功としません。アプリから観測できる事後条件を確認し、監査イベントを書き、追跡可能な結果または永続レシートを返します。
14.3エージェント型ワークフローのパターンを選ぶ
通常はコーディングエージェントからの対話型 MCP で始めます。永続タスク、イベント、モバイル監督は、ワークフローに必要な場合だけ追加します。
連携面
| チームの形 | 使用するもの | FrontierStack が提供するもの |
|---|---|---|
| コーディングエージェントやマネージャが限定されたサーバ操作を必要とする | MCP(推奨) | 呼び出し元に合わせて絞ったライブのツールとリソース。既存のローカルポリシーと承認境界を通ります。 |
| シェルスクリプト、ローカル自動化、CI ランナが安定したインターフェイスを必要とする | FrontierStack CLI | MCP と同じガード付き呼び出しと機械可読ディスカバリ。認証情報はスクリプトへコピーせず、所有者専用 Keychain ブリッジが供給します。 |
| 接続前にエージェントへフリートの地図を渡す | エージェントスキル/AGENTS.md | サーバ・役割・サービス・運用ルールを記した、認証情報を含まないポータブルな説明。 |
| コーディネータが長い作業を委任する、または障害を引き継ぐ | A2A 1.0 プレビュー | 永続タスク ID・進行・キャンセル・入力/承認待ち・成果物・最終レシート。非公開で、オンにするまで無効です。 |
| MCP クライアントが遅延作業に対応する | MCP Tasks プレビュー | 同じ永続タスクエンジンを実験的な Tasks 拡張で公開。両側の明示的な有効化が必要です。 |
| 障害対応または CI/CD システムが作業を起票する | CloudEvents プレビュー | 選択された認証済みイベントが読み取り専用調査を開始し、相関情報を運びます。イベントが変更権限を与えることはありません。 |
| Mac から離れた場所でエージェントを監督する | iOS Agent Activity | ペアリング Mac から限定された状態、ランタイム、ジョブ、継続セッションのメタデータを表示。プロンプト、トランスクリプト、ターミナル内容、認証情報は端末へコピーしません。 |
ツール一覧を小さく保つ
すべての会話に FrontierStack の完全なツールカタログを読み込ませないでください。AI ハーネスによっては 128 ツールの上限があり、無関係な長い一覧はツール選択の信頼性も下げます。そのため既定のカタログは小さな 2 つの入口を公開します。frontierstack_find_tools は現在の仕事と呼び出し元に関係するツールだけを検索し、frontierstack_call が選んだツールを実行します。完全な許可済みカタログが必要なクライアントや確認作業だけで frontierstack tools --full を使ってください。
認証情報を含まないセットアップキット
MCP ペインでエコシステムセットアップキットを書き出すか、MCP の frontierstack://ecosystem-kits、または frontierstack ecosystem-kits を使います。生成されるレシピは、OpenClaw/Hermes 型スペシャリスト、Buzz などの人/エージェントチーム、OpenAI 型マネージャとハンドオフ、Microsoft ワークフロー、LangGraph、CI/CD、Slack/Teams の承認引き継ぎ、将来向け汎用アダプタを扱います。キットに含まれるのは役割・エンドポイントのメタデータ、手順、安全なプレースホルダで、パスワード・秘密鍵・ベアラートークン・API キーは含みません。
- 使用するコーディネータに最も近いレシピを選び、FrontierStack にサーバ管理者の役割を割り当てます。
- ローカルでは localhost、別の承認済みデバイスでは FrontierStack のペアリング済み HTTPS 経路で接続します。ローカル MCP ポートを直接公開しないでください。
- 読み取り専用で開始します。変更を有効にする前に、ディスカバリ、フリート状態、ヘルプ/マニュアル検索を試します。
- 変更が必要なときは、FrontierStack 内で対象の操作を承認します。グループチャットのメッセージ、エージェントカード、プロンプト、承認したという申告は権限になりません。
- タスク表示で進行を確認し、必要ならキャンセルして、最後の検証レシートを保管します。
信頼境界は移動しない
- 認証情報はローカルに保持。サーバパスワード、SSH キー、AI キー、保管庫の値は実行時に解決し、コーディネータ、セットアップキット、リモートヘルパー、コールバック、モデルのプロンプトへ書き出しません。
- ディスカバリは権限ではない。役割プロファイル、スキル、イベント、チャット上の名前、ツール説明は、できる可能性を示すだけです。ツールを有効化したり、呼び出し元のスコープを広げたりできません。
- 変更はひとつのゲートを通る。MCP・A2A・CLI・イベントはすべて、同じ App Lock、呼び出し元別スコープ、データ破壊ガードレール、ローカル承認、監査記録を使います。
- リモートヘルパーは限定的。サーバ上のモニタ/ヘルパーは FrontierStack の決定論的な手足です。モデルを動かさず、AI プロバイダの認証情報を保存せず、ネットワークから任意の MCP 作業を受け付けません。
- 完了は検証済みを意味する。変更を行う永続タスクは、コマンドがゼロを返しただけでなく、FrontierStack が観測した事後条件を記録してから完了します。
作業内容を公開せずエージェントを観測
Mac の Agent Operations は、ワーカーホストの到達性、検出したランタイム、実行中ジョブ、継続ターミナルセッションをまとめる運用コンソールです。iPhone/iPad コンパニオンの Agent Activity は、ペアリング Mac から意図的に絞った状態だけを表示します。どのワーカーが到達可能か、どのジョブやセッションが動いているかを確認できますが、プロンプト、トランスクリプト、コマンド行、環境変数、ターミナル内容、認証情報はスマホへ送りません。
Linux などのフリートホスト上で長時間動く作業は、Servers › Host › Terminal Sessions で tmux・GNU screen・Zellij セッションを一覧できます。必要なスコープを持つ端末は直接 SSH ターミナルを開き、選択したセッションへ接続できます。セッション終了はフルコントロール権限と個別確認が必要です。
14.4MCP サーバを有効化する
FrontierStack は Mac にインストールされた一般的な AI クライアントを検出し、再利用可能な認証情報を公開せず、自身の MCP エントリを設定できます。
- MCP Server ペインを開いてサーバをオンにします。新規設定では
localhostにバインドします。 - Detected AI clients を確認します。FrontierStack は Grok・Codex CLI・Cursor・Gemini CLI・Claude Code・Claude Desktop を認識します。Set Up Detected または各クライアントの操作を使います。Claude Code には正確な
claude mcp addコマンドを表示し、その他の対応クライアントには「追加」操作があります。 - 検出したクライアントの変更時に FrontierStack 自身の
frontierstackエントリだけを修復するには、Set up detected AI clients at launch を有効にします。他の MCP サーバ設定は保持されます。 - 生成エントリは所有者専用ブリッジを起動します。ブリッジが起動時に Keychain から MCP 認証情報を取得するため、ベアラートークンをクライアント設定へ書き込みません。
- 他の stdio MCP クライアントでは FrontierStack CLI をインストールし、
frontierstack mcpが返すコマンドを使います。 - 読み取り専用で開始します。変更やスクリプトを許可する前に、
frontierstack discover、フリートヘルス一覧、ヘルプ検索を試します。
インストール済みのfrontierstack CLIも既定でステートレスMCPを使います。frontierstack discoverでプロトコルと機能を機械可読形式で確認でき、frontierstack infoは推奨するステートレス版と対応する従来版の両方を表示します。
別のMCPサーバペインでは、新旧どちらのサーバも管理できます。「自動」は最初にserver/discoverを試し、必要な場合だけ従来のinitializeへ切り替えます。HTTPサーバが対応を実証した場合だけ、一覧に緑のステートレス表示が出ます。stdioサーバは外部クライアントがプロセスとハンドシェイクを管理するため、明示的にステートレスとして設定できます。
14.5署名付きリクエストとデバイスペアリング(FS1)
コントロールサーバと MCP サーバは、ベアラートークンと TLS の上に、デバイスごとの署名付きリクエスト層 — FS1 — を追加します。各ペアリング済みデバイスは独自の Ed25519 秘密鍵を持ち、すべてのリクエストに署名します。FrontierStack は承認済みデバイスに対して署名を検証するため、トークンが漏れただけでは何も操作できません。
- デバイスごとのスコープ。各デバイスには読み取り専用〜フルコントロールのスコープを Mac で付与します。
- ワンタップ失効。デバイスを削除すれば即座に遮断され、他には影響しません。
- これは iPhone/iPad アプリのペアリングと同じ仕組みです — モバイル版マニュアルと、第 10 章の信頼モデルを参照。
14.6外部 AI ジョブ
ライブの MCP に加え、FrontierStack はサブスクの AI CLI にジョブを渡すことができます — タスクをまとめてローカルの Claude(など)にあなたのプランで処理させ、結果をアプリに戻します。これにより、重め・長時間の分析を従量課金なしで実行でき、Data Map(ロケーションごとのデータフロー図)と組み合わせてエージェントに必要な文脈を与えます。外部 AI ジョブは AI スタック(第 15 章)から管理します。
14.7MCP 経由のスキル・ノート・メモリ・Obsidian
外部ハーネスは、内蔵管理者と同じナレッジ面に、同じゲートのもとで到達します。
- スキル — 厳選したプレイブックを発見・オンデマンド読み込み。
- 共有ノート — 「AI と共有」で解除したノートのみ読み取り可能。
- 長期メモリ — 設定や恒常ルールの同じ
memory.md。 - Obsidian — Obsidian ボールトを連携していれば、SOP やランブックを検索し、文書化された手順に従えます(第 12 章)。
14.8フリートスキル — あらゆるエージェント向けのポータブルな文脈
MCP サーバはエージェントにフリートを操作させます。フリートスキルはもう半分 — エージェントが何かに触れる前にあなたの環境を教える静的な文脈です。フリートスキルペインは SKILL.md を生成します。サーバとその役割・OS・サービス・到達方法、ネットワークの場所、KVM と電源ソース、そしてあなた自身のルールと設定の自由記述 — すべてシークレットを除去した上で。これを読んだエージェントは、当て推量ではなく正しいホストを選び、正しい経路を使い、あなたの慣習を尊重します。
~/.claude/skills/fleet/SKILL.md に書き込まれ、Claude Code が自動的に検出します(フロントマターの description: が、そのスキルがいつ関連するかをモデルに伝えます)。MCP 接続エージェントは get_fleet_context ツールで同じ内容を取得でき、その慣習を読む CLI 向けに任意で ~/AGENTS.md も出力できます。自動更新をオンにすると、フリート・場所・KVM が変わってから数秒後にスキルが書き直され、実態からずれません。
地図とリモコンの違いだと考えてください。MCP はリモコン — ライブで認証済み、実行できます。スキルは地図 — セットアップ不要でポータブル、どのエージェントにも安全に渡せ、有能なツールが「正しいやり方で誤ったこと」をするのを防ぎます。
14.9どれをいつ使うか
| 使うもの | こんなとき |
|---|---|
| 内蔵 AI 管理者(第 13 章) | 承認カードやコストモニタも含めすべてを 1 つのウィンドウで完結させたく、モデル/キーを用意する、またはローカル実行で構わないとき。 |
| MCP 経由の FrontierStack(本章) | すでに Claude Code や Cursor で作業しており、コードとサーバを 1 つのエージェントで扱い、サブスクでトークン課金を避けたいとき。 |
| 外部 AI ジョブ(第 15 章) | タスクが重い・長時間で、対話的に実行するよりサブスク CLI に渡したいとき。 |
3 つとも同じガード付きツールと同じライブのアプリ状態に到達します。作業しやすい場所で選んでください。安全性の保証は変わりません。
FrontierStack ユーザマニュアル · バージョン 1.0.0 · 第 14