OpenDotsは、役割を持ったAI「Dot」と、作業結果を残す文書スペースを組み合わせたオープンソースのテンプレートです。CopilotKitが公開しており、自分のインフラで動かせます。ただし、完成済みの業務サービスではなく、単一オーナー向けのアルファ版という位置づけです。
面白いのは、チャットの返答だけでなく、その先の文書編集や実行環境まで扱っているところ。導入を考えるなら、機能の数よりも「何をどこに保存し、どの権限で動かすか」を先に見ると、構成をつかみやすくなります。
会話を、編集できる文書へつなぐ
Dotには名前、役割、指示、利用を許すツールを設定します。文書を置く単位がSpaceで、Dotごとにアクセス可能なSpaceを選ぶ仕組みです。ページは階層化でき、ビジュアルエディターとMarkdownソースの両方で編集できます。会話サービスを接続する前でも、手作業での文書編集は可能です。
AIに保存前の案を見せるよう頼むと、承認カードで会話を止め、人間が承認してからページを作る流れも使えます。同じ案の保存を再試行した場合は既存ページを返し、案が変われば再度レビューが必要になります。返答を別の文書へ貼り直すだけでなく、確認と保存を一続きにしている点が特徴です。
Dotのコンピューターは、ホストの端末とは別
ブラウザー操作、ファイル、シェルは、OpenBotのサービスを使うDot専用コンテナーで扱います。ブラウザープロファイルと作業ファイルは停止・再開をまたいで残りますが、Spaceのページや会話履歴とは別のデータです。
権限はDotごとに設定し、初期状態では無効。サービスが使えないときに、代わりにホストのシェルで実行することもありません。必要なDotにだけ操作を許す設計です。
ただし、標準構成はホストのカーネルを共有するDockerコンテナーであり、外向き通信を厳しく制限する設定も含みません。権限の取り消しで完了済みの操作が元に戻るわけでもないため、隔離されていることと、何を実行しても安全であることは分けて考える必要があります。
セルフホストでも、保存先は一つではない
ページやワークスペースの設定はSQLiteに保存されます。一方、会話にはCopilotKit Intelligenceが必要で、履歴はそちらに残ります。SQLiteだけをコピーしても、会話までバックアップしたことにはなりません。
Intelligenceはホスト版、ローカル評価版、ライセンス付きのセルフホスト版から選びます。ローカル評価版にもアカウントが必要で、セットアップやライセンス更新にはインターネット接続を使います。さらに、モデルには許可されたページ内容やツール結果を含む会話コンテキストが渡ります。アプリを自宅のマシンに置くだけで、すべての処理がローカルになるわけではありません。
定期タスクは元の会話内でサーバー側が実行します。途中でワーカーが停止した場合などはInterruptedとなり、明示的な再試行を待つ仕様です。結果が返っていなくても操作済みの可能性があるので、再実行前にページや操作履歴を確認します。
Slack連携や音声通話もありますが、READMEではSlackと通話からの計算処理への委譲に、接続先を使った追加検証が必要とされています。共同編集や複数Dotのグループ会話も未搭載です。まずはSpaceでの文書編集から始め、会話の保存先を決め、必要なDotにだけ実行権限を足す。OpenDotsを試すなら、その順序が無理のない入り口になりそうです。