DisPatch 3.0:ファミリープロファイル、セットアップウィザード、そして事前に確認を求めるエージェント
- カテゴリ
- AIとローカルLLM
- 公開日
- 2026年10月19日
- 著者
- Jacob Lloyd — プロジェクト完了後、AIの支援を受けて執筆
- 読了時間
- 約24分で読めます
かんたんに言うと: DisPatchは、ご自宅用に作られたプライベートなチャットアプリで、ご自身のコンピュータ上で動作し、背後にはAIアシスタントも搭載されています。バージョン3.0では、各ユーザーごとに専用のプロフィールが用意されています。大人の方は完全な機能や通常のチャットを利用でき、子供の方には優しい動物キャラクターが描かれたシンプルな画面、1日あたりの利用時間制限、そしてご希望の「静かな時間帯」も設定可能です。セットアップウィザードにより最初の5分間の設定手順を案内してくれますし、チャット内容は暗号化された形でバックアップすることもできます。
DisPatch 3.0は、私がこのプロジェクトを始めてから最大の変更点です。これまでのアクセスモデルでは、単一のPINコードのみが使われていました。つまり、そのPINを持っていれば全機能が利用可能で、持っていなければセーフモードにしか入れませんでした。私個人には問題ありませんでしたが、大人・ティーンエイジャー・小さな子供が同じアカウントを共有する家庭ではうまく機能しませんでした。バージョン3.0ではこの仕組みが廃止され、それぞれに独自のログイン情報と制限が設定できるプロファイル機能が導入されました。またサーバー側で各リクエストが必要な権限を有しているかどうかもチェックされるようになります。さらにセットアップウィザード、暗号化されたバックアップ機能、エージェントタスクなども新たに追加されました。
以下のスクリーンショットはすべて、架空の人物(エイダ、ジョー、マックス、ミア)や架空の会話を設定した状態で、DisPatchに標準搭載されているキャラクターを使って新規インストールした際のものです。まだDisPatchをご覧になったことがない方は、DisPatchの紹介記事にてその概要や返信がどのようにスマートフォンに届くかをご確認いただけます。このページでは新機能について詳しく説明します。
要約
- プロファイル:オーナー1名、管理者・メンバー・制限付きプロファイルは任意数設定可能。子供用には「制限付き」プロファイルが用意されており、子供向けに用意されたキャラクターのみ利用でき、1日あたりの利用時間制限や静寂時間帯の設定、設定変更も不可となっています。
- セットアップ:6ステップからなるウィザードによりオーナーを作成し、AIを接続した後家族メンバーを追加し、誰がアプリにアクセスできるかを指定します。新規インストール時にはオーナーが存在するまでネットワーク接続が許可されません。
- AI:各モデルサーバーごとに1つの接続のみ可能で、APIキーは設定ファイル内に保存されません。「テスト」ボタンも用意されており、デフォルトキャラクターとして「アトラス」が設定されています。
- その他新機能:子供向けの「アニマルフレンズ」や大人向けの「アシスタント」といったスターターパック、メンバー向けの音声機能、全設定を一度に検索できるページ、暗号化されたバックアップ機能、予算や承認機能付きのエージェントタスクなどがあります。
- アップグレード:3.0版では起動時に2.x版のデータを自動的に移行します。その前にバックアップも作成され、従来のPINコードも引き続き利用可能です。また、1つのコマンドで元に戻すことも可能です。私自身でもこの流れを実際に試しました。
- 現状:2026年10月19日現在、3.0版は公開リポジトリの
mainブランチにあり、私の家庭でも実際に利用しています。現時点では正式なリリース版やZIPファイルはまだ提供されていません。ライセンスはMITで完全無料です。

利用者の皆様にとっての変更点
- それぞれのユーザーが自分専用のプロフィールを持てるようになりました。 ロック画面で自分の名前をタップし、PINまたはパスワードを入力してください。各ユーザーの利用制限はデバイスやWi-Fiアドレスではなく、その人自身に紐付きます。
- お子様用に安全な環境が用意されました。 制限付きプロフィールを利用すると、ご家族がお子様向けに作成したキャラクターのみが表示され、何も変更できず、設定した時間帯以外は機能しなくなります。
- 最初の5分間はガイダンス付きです。 ウィザードが順番に、所有者アカウント、AI、家族情報、ネットワーク情報を尋ねます。
- AIの接続方法はファイル編集ではなくフォーム入力となりました。 プロバイダーを選択し、キーを貼り付けて「テスト」ボタンを押してください。
- すぐに使えるキャラクターも用意されています。 2種類のスターターパックがワンクリックでインストールできます。
- 家族全員で音声機能を利用可能です。 音声アドオンを使うと、メンバー(および制限付きプロフィールのユーザーも自分専用のキャラクターで)がキーボード入力ではなく話してコミュニケーションできるようになります。
- 他の場所にもバックアップを保存できます。 ボタンを押すだけで、チャット内容やキャラクター、設定情報、キーなどが暗号化された状態で保存されます。
- エージェントは事前に確認を求めます。 どのチャットからでもエージェントに作業を依頼でき、その動作を確認した上で危険な操作を承認したり、利用可能な予算額を設定したりできます。
- Dockerにも対応しています。 クローン環境で
docker compose up -dと入力すれば、LinuxやPi、Windows上でも動作します。Dockerに関する記事に詳しい手順が記載されています。
家族全員用のプロフィール
合計4種類の役割があります。簡単に言うと以下の通りです。
| 役割 | 該当者 | できること |
|---|---|---|
| オーナー | あなた。1人だけ。 | ホストの制御、バックアップ、マシンのAPIキーを含め、すべてを行えます。 |
| 管理者 | 信頼できる大人 | オーナーができることはすべて可能ですが、オーナー自身のプロフィールを変更したりインストール用PINを変更したりはできません。そうすれば誰もオーナーを閉め出せなくなります。パスワードでログインします。 |
| メンバー | 大人またはティーンエイジャー | チャット、音声通話、画像、有効化したツールの利用、通知の受信、会話内容の整理などが可能です。設定変更やエージェントの利用は許可されません(許可すれば利用可能)。PINでログインします。 |
| 制限付き | 子供またはゲスト | 対象となるキャラクターとのみチャットや音声通話ができます。ツールやエージェント、設定変更、ファイルの利用は一切不可です。1日あたりの利用時間や静寂時間も設定可能です。 |

オーナーはまた、特定の人物に追加の権限を付与したり取り消したりすることも可能です。例えば、あるメンバーにエージェントを実行する権限を与えたり、特定のプロフィールで音声機能を無効にしたりできます。制限付きプロフィールには管理権限は一切付与できず、またメンバーにもホスト制御権限は渡せません。
子供向けの制限
各プロフィールには1日あたりの利用時間、送信可能なメッセージ数、新規チャット数、評価回数、アップロード可能なデータ量、さらに静寂時間が設定できます。ここではMiaの静寂時間は20時から翌7時までで、1日あたり45分間と100件のメッセージが利用可能です。実際に利用した時間のみがカウントされるため、一晩中タブを開きっぱなしにしてもその分は消費されません。

以下がMiaに表示される内容です。彼女の画面には「Animal Friends」と「Atlas」のみが表示されています。これはAtlasの対象年齢設定がデフォルトで「全員」となっているためです(変更も可能)。画面上部のバナーにはオーナーが見られる情報、つまりチャット数やアップロード量が示されますが、内容そのものは表示されません。

画面をロックしても制限は回避できません。制限付きプロフィールが、まだ誰にも紐付けられていないデバイスで初めてログインすると、そのデバイスはそのプロフィールに紐付けられます。したがってMiaが画面をロックしたりセッションがタイムアウトしても、再びMia用の環境として起動し、同じ静寂時間やその日に既に使った利用時間が引き継がれます。この仕様は2026年10月19日に実装されました。それ以前は画面ロックで子供が新たなゲスト用枠を得られる仕組みでした。誰もログインしていない状態の未紐付けデバイスでは、デフォルトの制限付きプロフィールとしてゲスト扱いとなりますが、anonymous_access: noneを設定すればログイン画面さえも非表示になります。
利用にあたって知っておくべき点として、現バージョンでは会話内容は家族全員で共有される領域となっています。役割によって使えるキャラクターやアクションが決まりますが、誰がどのスレッドを読めるかは制御されません。私のテストでは、メンバーのMaxがオーナーのAdaが開始したディナー用チャットを開くことができました。二人の大人がそれぞれプライベートなスレッドを持ちたい場合でも、3.0ではそれは実現できません。
PINを忘れた場合
DisPatchはオーナーのPINが設定されると、データフォルダ内の RECOVERY-CODE.txt に復旧用コードを記録します。一人用の環境では、ロック画面でそのコードを入力するとPINが解除されます。他の人々もプロフィールを持つ場合は、新しいPINの入力を求められ古いPINと置き換わるため、家族全員がオーナーとして利用できなくなる事態は起こりません。パスワードを持つオーナーは常にそのパスワードでログイン可能です。
セットアップウィザード
新規インストール時には6ステップからなるウィザードが起動します。内容は、アカウント設定、モデルの選択、音声設定(任意)、家族情報の登録(任意)、ネットワーク設定、完了となります。「後で設定する」を選べばこのウィザードを後回しにでき、「完了」ボタンを押せば完全に終了します。

セキュリティ上重要な処理は、実際に画面で確認できる前に行われます。新規インストール時にはオーナーアカウントが存在しない限りネットワークへの接続が許可されません。DisPatchが動作しているコンピュータからは何も尋ねられませんが、他のデバイスからはサーバーのログに記録される一回限り有効なセットアップトークンが求められます(Docker環境では docker compose logs app で確認可能)。2.x系では最初にインストールしたユーザーがPINコードを設定してオーナーになれましたが、現在はそうはなりません。

ネットワーク設定のステップでは、DisPatchをこのコンピュータのみから利用可能にするか、自宅のネットワーク全体から利用可能にするかを指定します。また、それに合わせてサーバーを起動する方法も案内されます。サーバーが listen するアドレスは起動方法によって決まるため、両者が一致しない場合にはウィザードから警告が出ます。スマートフォンからのインストールやホーム画面への設定、プッシュ通知、マイク機能を利用するにはHTTPSが必須です。リポジトリ内の docs/remote-access.md にはリバースプロキシやTailscale Serveの利用法も記載されています。
AIの接続方法
ウィザードの第2ステップでは、同じコンピューター上にStudioForge、LM Studio、Ollamaが存在するかを確認します。何も見つからない場合は、手動でタイプ、アドレス、キー、モデル名を入力する必要があります。利用可能なタイプとしては、OpenAI互換、StudioForge、LM Studio、Ollama、OpenAI、Anthropic、DeepSeek、OpenRouterなどがあります。テストして保存を選ぶと接続の確認が行われ、その設定がデフォルトとなり、Atlasもそれを利用するようになります。「設定」→「接続」画面には13種類のタイプが表示され、その中にはMiniMaxやxAIも含まれます。この画面で私はMiniMaxの接続設定を追加したのです。

現在では、各サーバー情報は1つのレコードとして管理され、各キャラクターごとに繰り返し入力する必要はありません。キー情報はオペレーティングシステムのキーリングや、ユーザーのみが読み取り可能なファイルに保存されるため、どの画面やAPIからも再表示されることはありません。また、環境変数を指定することでキー情報を読み込むことも可能です。サーバーを探す機能では、StudioForge、LM Studio、Ollama、OpenAI形式のサーバーが利用しているポートを自動的にスキャンします。クラウドメタデータやリンクローカルアドレスは調査対象外なので、誤ったアドレスで内部サービスにアクセスすることもありません。
StudioForge 2.xをご利用の場合、他のマシンやコンテナからDisPatchが接続しようとする際にはAPIキーが必須となります。StudioForgeの「ユーザー&キー」ページで推論用キーを作成し、接続設定に貼り付けてください。サーバーを探す機能では、キー保護が有効なStudioForgeサーバーを検出し、キーの入力が必要であることを示します。
スターターパック

Animal Friendsは制限付きプロフィール向けの6体の優しいキャラクターです。個人情報を尋ねることはなく、不安な子供に大人の助けを紹介してくれます。また、外部サービスへの問い合わせや即時アクション機能も備えていません。Assistantsは会員向けの4体の補助キャラクターで、説明・執筆・コーディング・計画立案を手伝ってくれます。各キャラクターには対象ユーザー(全員/会員/制限付き)や、閲覧を許可するプロフィールのリストも設定可能です。このルールはサイドバーだけでなく、すべてのリストやライブ更新にも適用されます。
メンバー向けの音声機能
音声チャット機能は依然として別途追加されるアドオン、DisPatch Voiceとなっています。現在公開されているバージョン1.5.0は3.0系と互換性があり、ここに掲載しているスクリーンショットもそのバージョンを使用しています。これらのテストでは、GPUサーバーを使わず、同じマシンのCPU上で音声モデルが実行されました。2026年10月19日にDisPatch側で加えられた変更点としては、メンバーの方々も通話画面を開き、「設定」→「音声」から音声リストやサンプルを閲覧できるようになったことです。ただし、音声のクローン作成機能やGPUベースの音声サーバー、およびオン/オフ切り替え機能は引き続きオーナーと管理者のみが利用可能です。

制限付きプロフィールでも独自の音声データを用いて音声機能を利用できます。音声接続時にもテキストと同様のルールが適用され、通話開始時および通話中にも静粛時間帯のチェックが行われ、通話時間も子供の1日あたりの利用制限時間にカウントされます。すべての音声設定を1つの設定ページにまとめる機能を持つ「Voice 1.6」は、アドオンのメインブランチ上には存在しますが、まだ正式リリースされていません。
あらゆる設定が一箇所に集約

現在では、各設定項目についてその種類・デフォルト値・許容範囲・再起動が必要かどうか、そしてどの環境変数で上書き可能かといった情報が一度だけ記述されています。『すべての設定』ページはこの記述情報に基づいて生成され、リポジトリ内の docs/settings.md も同じソースから作成されています。まだ移行されていない項目については、従来のタブも引き続き利用可能です。アップグレード時には、DisPatchが認識できない設定項目も削除されることなくそのまま保持・一覧表示されます。
暗号化されたバックアップ

『今すぐバックアップ』を選ぶと、新しいコンピュータでも必要なすべての情報が含まれた暗号化ファイルが作成されます。データベース、キャラクターや設定内容、アバター、接続キーに加え、チェックボックスをオンにすれば画像やファイルも含まれます。この暗号化にはAES-256-GCMが用いられており、鍵は入力したパスフレーズから生成されます。パスフレーズを入力しなかった場合は、DisPatchが復元用キーを作成して一度だけ表示します。私は試しにアーカイブを作成し、検証機能を実行したところ問題ありませんでした。
ただし注意点として、パスフレーズはインストール時点で保存されるため、定期的なバックアップが自動的に実行されます。つまりこの暗号化機能は、コンピュータ本体ではなく別の場所に移したバックアップデータを保護するためのものです。データフォルダーおよび鍵の保管場所を手に入れた者はすでに復号用キーも所有していることになります。そのため、復元用キーやパスフレーズはパスワードマネージャーや紙など、別の場所に保存しておくべきです。そうでなければ他の場所にコピーしたアーカイブも役に立ちません。また定期バックアップ機能は初期状態では無効になっており(デフォルトでは24時間ごとに最新7件まで保存されます)、復元処理は現在の状態を一旦別に保存した上で、次回起動時にアーカイブ内容を適用します。
新機能として、バグ報告用のサポートバンドルも追加されました。これにより鍵やトークン、PINコード、パスワードなどが除去され、会話内容は含まれません。また個人プロフィールデータをエクスポートしたり完全に消去したりすることも可能です。
エージェントとタスク
エージェントとは、設定済みのワーカーのことです。つまりバックエンドやモデル、指示内容、利用可能なツール、予算、承認ポリシーなどが含まれます。タスクとは、ユーザーが割り当てる個別の作業のことで、タスクページから、任意のチャット内にあるタスクを割り当てるボタンから、あるいは @agent という記述を使って指定できます。各タスクにはリアルタイムのタイムラインや、起動されたサブエージェント、関連ファイル、推定コスト、現在の状態などが表示されます。オーナーおよび管理者はすべてのタスクを閲覧できます。メンバーは、自分に公開されているエージェントと自身が作成したタスクのみを見ることができ、それも許可を与えた場合に限ります。制限付きプロフィールを持つユーザーには一切表示されません。

バックエンドは2種類あります。OpenClawは同じマシン上で動作し、独自のツールポリシーを保持します。一方のClaude Agentは、Anthropic APIキー、またはAmazon Bedrock、Google Cloud、Microsoft Foundryの認証情報を使ってClaude Agent SDK上で実行されます。Claudeのサブスクリプションによるログイン機能はサポートされておらず、オプションの追加パッケージ (uv sync --extra agents-claude) が必要です。Claude Agentでは、破壊的な操作を行う際には毎回確認を求められ、「一度だけ許可する」という選択肢のみが提供されます。例えばシェルコマンドの実行やファイルの書き込み、送信・投稿・削除・作成処理などです。その際には内容なしのプッシュ通知やチャット内のメッセージ、サイドバー上のバッジが表示されます。予算設定により、ドル額や発言回数、分単位の使用時間、トークン数を基準にタスクを停止させたり、各エージェントや個人ごとに1日あたりの利用上限を設けることも可能です。
これらの制限は実際に適用されるものであり、下記の「既知の制限事項」セクションに一覧が記載されています。簡単に言えば、開発段階ではAPIキーがなかったため、Claude Agentは記録済みまたはスクリプト化されたストリームに対してのみ実行してみただけです。また、承認済みのシェルコマンドもサンドボックス化されていません。agents.unified_dispatch を使って通常のOpenClawチャットをタスクモデル経由で処理する機能はデフォルトで無効になっているため、タスクページを開かなければこれまで通りの動作が維持されます。
3.0のインストール方法
簡単にインストールしたい場合は、Dockerをご利用ください。Dockerに関する記事にはスクリーンショット付きで手順が説明されており、リポジトリのREADMEにもWindowsやLinux、さらにはRaspberry Pi 4/5向けのインストール手順が記載されています。Dockerを使わない場合でも、通常の uv プロジェクトとしてインストール可能です。
git clone https://github.com/LaserLloyd/DisPatch_Chat.git
cd DisPatch_Chat/backend
uv sync
uv run uvicorn app.main:app --port 8765
同じマシン上で http://localhost:8765 にアクセスすると、ウィザードが起動し、トークンの入力は不要です。他のデバイスからもアクセスさせたい場合のみ --host 0.0.0.0 を追加してください。その際には、該当するターミナルからセットアップ用トークンを確認することになります。READMEによると、Dockerイメージのサイズは約840MBですが、音声機能が含まれるバージョンでは約1.7GBになります。バックエンドはWindows上でもネイティブに動作しますが、完全なテストスイートはLinux上でのみ実行されるため、Windows上での利用は実験的な扱いとなります。
2.xからのアップグレード方法
3.0への移行は、2.xの時と同じ手順で行います。何かを提供する前に、データフォルダーが自動的に移行されます:
- まずは確認してみてください。
backend/ディレクトリからuv run python -m app.migrate --dry-run --data-dir <your data folder>を実行すると、各処理内容が表示されますが実際には何も書き込まれません。 - 3.0を起動します。 移行すべき内容がある場合、まず
chats.db、config.yaml、security.yaml、trusted-devices.yamlが<data>/backups/3.0.0-<time>/にコピーされ、最新の5つだけが保持されます。 - ご使用のPINが「オーナー」になります。 PIN自体は変更されず、これまで通りログイン可能です。登録済みのデバイスもそのまま記憶されています。「オーナー」にはまだパスワードがありません。DisPatchでは、管理者作成などパスワードが必要な操作を行う際に初めて設定を求められます。
- ご使用のボットが「キャラクター」になります。 各ボットの属性は従来のフラグに基づき決定されます:
safeかつhide_unlockedの場合は「制限付き」、safeのみの場合は「全員」、その他は「メンバー」となります。APIキーもconfig.yamlからシークレットストアへ移動し、DisPatchは各キーを読み取り後に削除します。 - 元に戻す方法: サーバーを停止した後、
uv run python -m app.migrate --restore <data>/backups/3.0.0-<time>を実行し、再び2.x版を起動します。
私はテスト用の空フォルダーで上記手順を試してみました。まずDisPatch 2.2.0を起動し、PINを設定した上でメッセージを投稿しました。その後同じフォルダーで3.0を起動したところ、バックアップが作成され移行処理も行われました。以前のPINで「オーナー」としてログインでき、パスワード設定も求められました。その後復元処理を行った結果、2.2.0が正常に起動することを確認しました。
アップグレード後に問題となる可能性がある点は3つあります:
- リバースプロキシでは
Hostヘッダーを維持する必要があります。 現在クッキーはSameSite=Strictとなっており、変更処理を行うリクエストはDisPatch自身のオリジンから送信されなければなりません。CaddyやTailscale ServeではデフォルトでHostが維持されますが、これを書き換えるプロキシでは処理が拒否されます。 machine_loopback_trustが有効な場合、同一マシン上のスクリプトはキーなしでも動作します。 これはアップグレード後デフォルトで有効になっています。必要に応じてcronジョブにAPIキーを設定した後、この設定を無効化してください。- キーが移動した後に2.xへ戻る場合はバックアップの復元が必要です。 2.x版ではシークレットストア内のキーを読み取ることができません。
3.0マージ以降で修正された点
私は自宅で3.0を利用しており、実際に使ってみたところ、テストスイートでは見つからなかった問題がいくつか見つかりました。これらはすべて main ブランチ上にあります。
- OpenClaw 2026.10のストリームからの応答が再び正常に受信できるようになりました。 あのリリースでは、最初のチャンク以降の新しいテキストのみが送信されます。DisPatchでは以前はメッセージ全体を毎回読み込んでいたため、応答が最初の数語だけ表示された後フリーズし、その後に全内容が一気に表示される現象がありました。
- 負荷がかかった状況でもメッセージ送信が失敗しなくなりました。 複数のデバイスから同時に送信が行われ、かつバックグラウンド処理でデータベースへの書き込みも実行されている環境では、「データベースがロックされている」というエラーで送信に失敗するケースがありました。修正前は24回中7回が失敗していましたが、修正後は48回中0回となりました。
- 何日も接続を維持しているタブレットでも新しい制限設定が適用されるようになりました。 設定した静寂時間や無効化したプロファイルの内容も、次回の操作時に確立されている接続経由で反映されるようになっています。
- 管理者には完全な権限が付与され、メンバーにも音声使用権限が与えられ、子供用の制限設定がリセットされることもなくなりました(これらは上記ですでに述べた内容です)。
- 家庭内インストール時には、復旧コードによって新しいPINの入力が求められるようになりました。これにより、唯一のオーナー認証情報が削除される事態はなくなります。
既知の制限事項
- 会話内容は家庭内全体で共有されます。役割設定によってキャラクターやアクションが制御されるだけで、個別のスレッド単位での管理はできません。
Hostを書き換えるTLSプロキシの背後では、あらゆる変更が拒否されます。そのプロキシを修正してください。- Claudeエージェントはこれまで記録済みまたはスクリプト化されたストリーム上でのみ動作してきたため、初めて実際の環境で実行した際には、模擬データでは再現できない事象に遭遇する可能性があります。Claudeセッションのホスティング機能や汎用的なCLIエージェントもまだ実装されていません。タスクを定期的に実行することも現時点では不可能です。承認済みのシェルコマンドもサンドボックス化されていません。
- 3.0.0版のリリースやダウンロード用ZIPファイルはまだ存在しません。
mainからインストールしてください。 - ネイティブなWindows環境への対応は実験段階です。その場合はDocker Desktopをご利用ください。
関連情報: DisPatch:ローカルで動作するAIエージェント用チャットアプリ · Docker内で動作するすべてのモジュール · StudioForge · OpenClaw上で構築した私のローカルAIエージェントスタック