FrontierStack ユーザマニュアル マニュアル先頭
デスクトップ版マニュアル モバイル版マニュアル English frontierstack.app ↗
13

第 13

AI 管理者

サーバを把握し、不具合を診断し、あなたの承認のもとで修正する、ツール使用アシスタント。秘密情報はモデルに渡しません。

AI 管理者 — AI ハーネス — こそが、FrontierStack を単なるコントロールパネル以上のものにしています。これはあなたの構成を正確かつライブに把握する、ツール使用アシスタントです。問題を普通の言葉で伝えると、読み取り専用の診断で原因を調べ、分かったことを説明し、実行前にあなたが承認する修正案を提示します。この Mac でも、SSH で連携したすべてのサーバでも動作し、パスワードを見ることは決してありません。本章では、その考え方、できること、安全に保つ方法を説明します。

初回起動時の AI 管理者:モデル選択、信頼コントロール、プロンプトファイアウォール、ローカルの <code>.env</code> 秘密ボールト、長期メモリ。
図 13.1. 初回起動時の AI 管理者:モデル選択、信頼コントロール、プロンプトファイアウォール、ローカルの .env 秘密ボールト、長期メモリ。

13.1モデルを選ぶ

管理者は特定のベンダーに縛られません。ペイン上部で、駆動するモデルを選びます。

  • FrontierStack AI — ゼロ保持サービスを利用できる場合の既定ハーネスエンジンです。自分の API キーは不要で、Enfour AI Cloud 経由で Qwen3 を実行します。FrontierStack AI サーバは現在ユーザに無料ですが、将来は有料サービスになる場合があります。上流キーとプロバイダ接続先は Enfour のサーバ内にあり、送信前に固定伏字化を行い、サービスはゼロ保持を証明する必要があります。最終ハーネス自体がゼロ保持のため、同じテキストを二重送信せず、別のクラウドプロンプトファイアウォール検査を省略します。ツール制限と操作承認は変わりません。
  • クラウドモデル — 難しい診断や複数ステップの作業に最も適した選択肢。API キーを用意します(ローカル保存)。OpenAI キーでは、最も難しい作業向けの GPT-6 Astra、複雑なコーディングや専門的な作業向けの GPT-6 Sol、大量の定型処理向けの GPT-6 Luna に加え、従来の GPT-5.6 ファミリー(Sol・Terra・Luna)も選択できます。
  • Perplexity — AI モデルで API キーを追加し、Sonar、Pro Search、Deep Research、Advanced Deep Research を選べます。Agent API の Web 検索、URL 読み取り、出典、通常のガード付きツールに対応します。モデルと調査の利用料は Perplexity API アカウントへ請求されます。
  • ローカルモデル — Mac 上で動く Ollama・LM Studio、または OpenAI 互換サーバ(LocalAI・Jan・llama.cpp)、さらに Apple Intelligence:Apple シリコン+macOS 26 のオンデバイス・ファウンデーションモデルで、ネイティブに、あるいは Apfel(AI モデルペインがインストール・起動し、ログイン時やアプリ起動時の自動起動も設定できるワンコマンド)経由で利用します。ローカルモデルは作業を完全オフラインに保ち — データは Mac の外に出ないため、下記の送信前検査は不要となり非表示になります。ローカルモデルの実行は第 15 章を参照。
  • MCP 経由の自前サブスクツール — すでに支払っている定額プランの Claude Code・Claude Desktop・Cursor からアプリ全体を操作。トークン課金はありません。第 14 章で扱います。
ヒント日常的な質問には高速モデルで十分です。本番の微妙な問題を追うときは最も高性能なモデルに切り替えましょう。モデルを変えても会話は保持されます。

13.2画像対応モデルにペインを確認させる

設定が FrontierStack 上に見えていても管理者のツールではそのコントロールを確認できない場合は、プロンプト上のスクリーンショットを添付…をクリックします。Qwen 専用ではなくモデルの機能で、対応する OpenAI 形式、Anthropic、ローカル Ollama の画像モデルへ適切な形式で送ります。対応状況が不明なカスタムモデルや経路にも試行できますが、接続先が画像を拒否する場合があります。

FrontierStack が画面を自動撮影することはありません。画像を 1 枚選び、送信用プレビューを先に確認します。最大 1,800 ピクセルに制限し、再描画してメタデータを除去し、macOS の文字認識をローカルで行って、保存済み資格情報、個人アカウント名、非公開フリート識別情報、秘密らしいトークンを含む行を黒く隠します。OCR は多層防御であり保証ではありません。対象ペインだけに切り取り、送信前にプレビューを確認してください。

セキュリティ外部モデルでは、テキスト用プロンプトファイアウォールが画像を検査できないため、画像ごとの承認が必要です。ローカルモデルなら画像はローカルに留まります。送信用コピーは現在のツールループ中だけメモリに置かれ、次のターン前に削除され、保存済み会話には書き込まれません。元のスクリーンショットはあなたのファイルのままです。

13.3会話の流れ

同僚に指示するように依頼します — 「なぜサイトが 502 を返すの?」、「shop.example.com の証明書がもうすぐ切れるか確認して」、「db-02 の Postgres を再起動して」。管理者は次のループで動きます。

  1. 足場を固める。動く前に、実際の構成(サービスカタログ、連携サーバとデバイス、現在のヘルスボード)を把握し、一般論ではなくあなたのマシンに合った回答をします。
  2. 読み取り専用で調べる。ログを読み、診断を実行し、ポートや証明書を確認し、設定ファイルを調べます。何も変更しません。
  3. 説明し、提案する。分かったことを伝え、変更が必要なら、実行したい正確なコマンドやファイル編集を提示します。
  4. あなたが承認する。システムを変更するものは、その操作を承認するまで実行されません。承認後に修正を実行し、再確認します。

ターンの終了を待つ必要はありません。作業中に次のメッセージを入力すると、アシスタントの次のステップで実行中の会話に追加されます。管理者はツールの結果と一緒に新しい指示を読み、同僚に方向転換を伝えるように、作業の途中で方針を調整します。ターンに間に合わなかったメッセージは直後に順番に送信され、停止後も保持されるため、入力した内容が失われることはありません。ツール呼び出しがハングした場合(到達できない SSH ホストや固まったサービスなど)は、進行表示の横のスキップを押してください。アシスタントは直ちに続行し、そのツールが壊れている可能性があると伝えられるため、再試行を繰り返さずに回避策を取ります。

13.4信頼モデル:既定は読み取り専用

本章で最も重要な節です。管理者は、コントロールを失わずに本番サーバを任せられるよう設計されています。

設定解除されるもの
(既定)読み取り専用。ログ・ヘルス・設定・診断などすべてを見られますが、何も変更できません。
変更を許可変更を伴う操作(サービス再起動、ファイル書き込み、証明書発行、ファイアウォールのポート開放)を許可。各操作には依然として承認カードが出ます。
スクリプトを許可汎用シェルツールと保存済みスクリプトの実行を許可。スクリプトと平易な説明が実行前に承認のため表示されます。

これらのトグルの上に、2 つの原則があります。

  • 操作ごとの承認。変更を許可していても、変更を伴うステップは必ず先に(実際のコマンドや差分が)表示され、その操作を承認するまで実行されません。場当たり的な変更に「すべて承認」モードはありません。
  • リモート操作には個別の同意が必要。連携サーバを監視ヘルパー経由で操作するには、そのサーバ自身の「アクションを許可」スイッチ(Host Monitor ペイン、第 8 章)も必要です。
  • 破損を伴うデータベース操作には高性能モデルが必要。データベースの修復・復元・再構築は取り返しがつかないため、FrontierStack はこれらのステップをフロンティアモデルにハードゲートします——小さなモデルやオンデバイスモデルでもログを読んで診断はできますが、高性能モデル(Claude Opus/Sonnet、GPT-4o/o シリーズ、Gemini Pro)に切り替えるまで、破損を伴うツールは拒否されます。
セキュリティ管理者、特権ヘルパー、すべてのリモート機能は、あなたが有効化するまでオフです。新規インストールでも質問への回答や診断はできますが、「変更を許可」、そしてシェル作業には「スクリプトを許可」を意図的にオンにするまで、何にも触れません。
セキュリティ承認しても、ユーザデータの永久削除は許可されません。MySQL の DELETE/TRUNCATE、データベース/テーブルの削除、対象を限定しない更新、ファイルの削除/上書き、ディスク消去、破壊的な保存済みスクリプト、cron ジョブ、イベントトリガは承認前に拒否されます。構造化されたファイル書き込みでは以前のファイルを退避します。vhost_remove は Apache/nginx の vhost を可逆的に無効にし、ドキュメントルートを保持します。名前付きバックアップから意図的に復元する操作だけは、別途厳しく制限されたローカル復旧フローで利用できます。

13.5秘密情報のボールト

実運用には資格情報(DB パスワード、SSH の sudo パスワード、Cloudflare トークン)が必要です。FrontierStack はこれらをローカルの .env ボールトに保管し、モデルには決して見せません。

管理者の スクリプト秘密情報(.env) バーで名前付きの秘密を追加します — 例:DB_PASSWORD、CF_TOKEN、SSH_SUDO_PASS。アシスタントが必要なスクリプトを書くとき、参照するのは値ではなく名前です。

mysql -u root -p"$DB_PASSWORD" -e "SHOW DATABASES;"

実行時にアプリが実際の値を環境変数として注入します — ローカル、または対象サーバ上で SSH 経由で — しかもスクリプトが実際に参照する名前だけを注入します。モデルには(正しいスクリプトを書けるよう)秘密の名前は伝わりますが、値は決して渡らず、コマンド出力は送信前に秘密情報が伏せられます。

  • シェル:$NAME / "$NAME"
  • PHP:getenv('NAME')
  • Python:os.environ['NAME']
メモボールトは名前のフラットな集合なので、同種の秘密を複数保持できます — PROD_DB_PASSWORD、STAGING_DB_PASSWORD、サーバごとの BALTHAZAR_MYSQL_PW など。アシスタントは対象に合う名前を選び、対応が曖昧なら推測せず尋ねます。

13.6リポジトリからのインポートと frontierstack run

エージェント用にネットワーク設定をリポジトリで管理する開発者もいます — SSH 設定、Ansible インベントリ、API キーだらけの .env ファイルなどです。FrontierStack は認証情報をリポジトリへ書き出さない方針です。リポジトリはクローン、CI、エージェントのサンドボックスすべてにコピーされ、ファイルを消しても履歴に秘密が残るためです。既存のリポジトリのインポートには対応しています。

セットアップを移行 ▸ サーバ ▸ リポジトリからインポート…を開きます(スクリプトシークレットバーにもあります)。フォルダを選ぶか、git アドレスを貼り付けます。クローンは一時フォルダに作られ、ウインドウを閉じると削除されます。

リポジトリ内の内容インポート先
SSH 設定:Host、HostName、User、Port、IdentityFileフリートのサーバ。リポジトリ内の鍵は ~/.ssh/frontierstack にコピー
Ansible インベントリ(INI/YAML、group_vars/host_vars 含む)環境(本番、ステージングなど)付きのサーバ。become パスワードはサーバの sudo パスワードに
.env、.env.*、.envrcスクリプトシークレット。CLOUDFLARE_API_TOKEN などの定番名はサービス専用の保存先にも
SOPS、Ansible Vault、age、git-crypt のファイルご自身のツールと鍵で復号(メモリ内のみ)
それ以外(routers.yml、Terraform 変数など)FrontierStack AI で解釈

AI の処理には常に FrontierStack AI のメインモデルを使い、AI が値を見ることはありません。シークレットらしい値はすべて ‹V7› のようなプレースホルダに置き換えられ、モデルはプレースホルダで答えます。実際の値はインポートをクリックしたときに Mac 上でだけ埋め込まれます。AI に送る内容を表示…で送信テキストをそのまま確認できます。

インポート後は、リポジトリの git 履歴に含まれるファイルを示し、API で新しいキーを発行できるサービスにはキーを置き換えを提示します。名前だけを書いた .env.frontierstack 参照ファイル(コミットしても安全)も保存できます:

DB_PASSWORD=fs://DB_PASSWORD
CLOUDFLARE_API_TOKEN=fs://CLOUDFLARE_API_TOKEN

スクリプトシークレットバーで frontierstack run にこれらのシークレットの使用を許可をオンにすると、エージェントは値を持たずにコマンドを実行できます:

frontierstack run -- ./deploy.sh
frontierstack run --secret API=CLOUDFLARE_API_TOKEN -- terraform plan

値はそのコマンドだけに環境変数として渡され、出力では伏せ字になります(対話型プログラムには --no-masking)。アプリを閉じていても動作し、アプリロックに従い、セキュリティキーで暗号化したシークレットは開けません。実行ごとに(名前のみ)変更ログへ記録されます。

13.7プロンプトファイアウォール

プロンプトファイアウォールは、FrontierStack の常時オンの固定伏字化に加える任意の意味検査です。Ollama または対応するローカル OpenAI 互換モデルを使うこの Mac 上か、明示的に Enfour AI Cloud を選びます。検出時は、警告して確認、自動伏字化、送信ブロックのいずれかを行えます。

オンデバイス検査はすべてこの Mac 内で完結します。Enfour AI Cloud に渡るのは、既知の認証情報・ユーザ名・プライベートアドレス・秘密らしいパターンを FrontierStack が除去した後のテキストだけです。現在はユーザに無料です。クラウドサービスは毎回ゼロ保持を証明する必要があり、証明またはサービスが失われた場合は未検証となり、ブロックモードでは送信を停止します。上流プロバイダのキーと接続先はアプリへ渡らないため、Enfour は新しいキーを配布したりアプリに任意の接続先を指定したりせず、将来プロバイダを変更できます。

セキュリティクラウドのプロンプトファイアウォールは第三者サービスです。伏字化済みでもテキストは Mac の外へ出ます。この境界を受け入れる場合だけ選択してください。既定のクラウド検査は Enfour AI Cloud 経由の GPT モデルを使用し、プロンプトと生成テキストを永続保存しない構成です。提供と不正利用防止に必要なトークン数メタデータは記録される場合があります。

13.8管理者にできること:ツール

アシスタントは監査済みの固定されたツールを通じてのみ動作します。各ツールはガード付きで、読み取り専用ツールは常に動作し、変更ツールは上記トグルと承認を要します。役割別に示します。

領域代表的なツール
把握・足場固めapp_capabilities(管理対象)、search_app_help(FrontierStackの設定・コントロールに関する現在のヘルプ)、list_targets(サーバとデバイス)、get_server_health、get_location、get_sidebar_state
診断(読み取り専用)diagnose(ping・dig・curl・netstat・df・ps…)、read_logs/tail_log(Wi-Fi イベントログを含む)、get_location(ライブ Wi-Fi 電波詳細付き)、security_audit、port_check、cert_expiry_check、whois_lookup、ip_analysis、metrics_snapshot、php_test/python_test
サービス制御service_action(Homebrew サービス)、repair_service、reload_webserver、restart_app、monitor_action(サーバのヘルパー経由)、reboot_host
Web とデータベースlist_sites/read_site_file/write_site_file、vhost_create/vhost_remove、list_databases/run_sql、db_dump/backup_now/restore、issue_certificate
ネットワークと境界firewall_rule、flush_dns、dns_record(Cloudflare)、router_info(状態・ヘルス・セキュリティ兆候)、reboot_router、open_web_ui、discover_devices/pin_device、internet_speed
メールセキュリティemail_auth_dns(SPF/DMARC/DKIM)、harden_mail_postfix、test_open_relay、generate_dkim_key、install_mail_cert
セキュリティテストstrix_status(Strix の導入状況・スキャン履歴・所見を読む)、strix_scan(許可済みのペネトレーションテストを実行)、strix_control(停止・再実行・再起動・消音)— 操作系の 2 つはローカル専用
ファイルとシェルread_remote_file/write_remote_file/upload_file、そして run_script — この Mac または任意の連携サーバ上の汎用シェル
スクリプトとスケジュールlist_scripts/run_saved_script/save_script、schedule_cron、schedule_app_action、list_sample_scripts
メッセージングget_messaging_channels、send_notification、get_alert_errors
ナレッジlist_skills/load_skill、list_notes/read_note、obsidian_search/obsidian_read_note、remember/list_memory/forget
アプリ自体open_pane、set_pane_visible、manage_palette、set_services_visible — アシスタントがサイドバーを案内・再構成できます

汎用の run_script ツールはアシスタントのシェルです。固定ツールでカバーされないことは、小さく読みやすいスクリプトを書いてあなたに承認を求めて実行します。リモートサーバでは 2 段階で動きます — まず読み取り専用のテストスクリプトで問題を特定し、次に最小限の修正、そして再テストで確認します。

13.9スキル・ノート・メモリ

3 つの機能により、管理者は一般的な既定値ではなくあなた自身の知識から作業します。

13.12.1スキル

スキルは厳選された複数ステップのプレイブックです — フリートのセキュリティ監査、Web スタックの再起動手順など。AI Skill Manager で管理します。アシスタントは(名前だけで)安価に一覧し、必要なときにそのフル手順を読み込むため、即興ではなくあなたが承認した手順に沿って作業します。

13.12.2AI と共有したノート

ノートペイン(第 3 章)には資格情報・ランブック・手順を保管し、各ノートには既定でオフのロックが付きます。アシスタントが読めるのは、AI と共有で明示的にロック解除したノートだけです。存在を知るためにタイトルは見え、本文は作業に必要なときだけ読みます。

13.12.3長期メモリ

「LINE が私の優先チャネルだと覚えて」や「週末はメッセージを送らないで」と伝えると、ルールを永続的な memory.md に保存し、今後のセッションでも守ります。メモリはいつでも一覧・削除できます。

13.12.4ナレッジフォルダ、Obsidian、Perplexity Brain

ナレッジフォルダペインでは任意のローカル Markdown フォルダを選べます。管理するインベントリ、インシデント、変更、SOP、ランブック、プロンプト、レシピは FrontierStack/ サブフォルダに保存されます。Obsidian は任意のエディタで、インストール済みボールトはショートカットとして表示されます。

外部モデルはローカルフォルダ全体を読めません。Perplexity Project/Brain には、Perplexity フォルダを準備で別の伏字済み書き出しを作ります。既定では伏字済みインベントリと機能一覧だけを含み、住所、MAC アドレス、アカウント名、認証情報、プライベートノート、ジャーナルを除外します。手順やジャーナルの共有には個別の同意が必要です。

セキュリティBrain はクラウド上の Research Preview であり、文書化された外部ノート保存 API ではありません。ローカルのナレッジフォルダが正本です。伏字化は安全対策ですが、クラウドへ接続する前に必ず内容を確認してください。
セキュリティロックされたノートは決して読めず、共有していないノートは拒否を返します — だからアシスタントは、あなたが渡すと決めていない資格情報に到達できません。秘密をチャットに貼らず、ボールトか共有ノートに追加してください。

13.10この Mac とフリート

ほぼすべてのツールはターゲットを取ります。省略するとこの Mac で実行され、連携サーバ名を指定すると、同じ診断・ログ読み取り・スクリプト・修正がそのサーバで SSH 経由で実行されます(読み取り専用ツールは読み取り専用のまま)。だから 1 つの会話が 「この Mac のディスクを確認」から 「同じことを web-01 と edge-03 でも」へ滑らかに移れます。サーバ連携とホスト監視ヘルパーは第 8 章で扱います。

特権作業の前に、ハーネスは選択したターゲットの秘密を含まないアクセス状態を読みます。連携サーバでは SSH/root/sudo パスワードが FrontierStack のキーチェーンに保存済みかを示します。モデルに届くのは利用可否だけで、値は決して届きません。この Mac では、承認済み特権ヘルパーが使えるか、または対応する操作で通常の macOS 管理者パスワード入力が表示されるかを示します。アクセス可能なら、アシスタントは説明だけで止まらず、あなたの承認後に限定ツールを試します。自由記述の AI スクリプトには、サーバの保存済みパスワードは自動で渡されません。

13.11カスタム指示と履歴

カスタム指示エディタ(第 17 章)で、アシスタントの恒常的な振る舞い(文体、要約の仕方、常に望む既定)を整えられます。過去の会話は履歴メニューに残るので、調査に戻ることができ、アシスタントは中断したところから再開できます。

13.12実例

全体像をつかむため、典型的なやり取りを示します — 「ショップが 502 で落ちている。」

アシスタントは get_server_health を呼び、web-01 で Apache は稼働、PHP-FPM が停止していると分かります。read_logs(ターゲット web-01)で PHP-FPM のログを読み、設定編集後にプールが起動していないことを突き止めます。問題の行を示し、write_remote_file で www.conf への 1 行修正を提案し、— あなたの承認後 — reload_webserver でリロードし、ループバックでサイトを再確認。復旧。希望すれば send_notification でチームに復旧の一報を送ります。

その間、パスワードはモデルに届かず、すべての変更はあなたの承認を待ち、全体があなたが手作業でできること — ただより速い — でした。

ヒント支出は AI コストモニタ(第 15 章)で把握しましょう:今月の合計を予算と対比し、プロバイダとサブスクリプション別に内訳表示します。MCP 経由で自分のサブスクからアプリを操作すれば、トークン課金は一切ありません — 第 14 章参照。

FrontierStack ユーザマニュアル · バージョン 1.0.0 · 第 13