本文へスキップ
KeuralDocs
デスクトップとデバイス

Keural Duo

お使いのコンピューターで動作する常駐型エージェントの、インストール、会話、ルーチン、Telegram、コンピューターの使用、Mate & Morphです。

Duoは、デスクトップアプリがこのコンピューター(または接続したDGX Spark)にインストールする常駐型エージェントです。隔離されたサンドボックスで動作し、サイドバーのDuoやTelegramで会話し、登録したルーチンを実行します。NVIDIA NemoClaw・OpenClawをベースにしています。

Duoはデスクトップアプリ専用です。

インストール

設定 → Duo → 実行環境でモデルを選び、実行する場所の行のインストールを押します。モデルを選んでいない場合や、ディスクの空きが足りない場合は、インストールボタンが無効になります。

実行場所と要件

実行場所要件
このデバイス(macOS)Apple シリコン、メモリ16GB以上。コンテナーランタイムはアプリが直接インストールするため、Docker Desktop、Homebrew、管理者パスワードは不要です。
このデバイス(Windows)WSL 2。最初の1回はWindowsを準備を押すと、必要なコンポーネントをインストールします。PCの再起動や管理者権限の許可を求められることがあります。仮想化がオフになっている場合は、BIOSでオンにします。
リモートデバイス(DGX Spark)Sparkを接続して、先にモデルを実行します。Sparkのファイアウォールが有効な場合は、Sparkのアカウントのパスワードを1回入力してポートを2つ開きます(パスワードは保存されません)。

ディスクは20GB以上必要で、40GB以上を推奨します。不足している場合は、インストールボタンがロックされ、「{need} GB 必要 · {free} GB 空きあり」と表示されます。

モデル

選択説明
このデバイスのモデルダウンロード済みのローカルモデルのうち、実行中のモデルを使用します。「{model} · チャットと同じモデル」と表示されます。
DGX Spark接続したSparkで実行中のモデルです。
クラウドプランに含まれるDuoのモデルです。サインインすると一覧が表示されます。
ゲートウェイ設定 → モデル → ゲートウェイで接続したサーバーのモデルを使います。そのサーバーのアドレスとAPIキーが必要です。

インストール後も、モデルの行でモデルを変更できます。同じ種類の中では「切り替える」ですぐに切り替わります。ローカル・クラウド・ゲートウェイの間で種類が変わる場合は、種類が変わると再インストールされます。再インストールしてもルーチンは維持されます。実行場所を移すには、先に削除してから、別の場所にインストールします。

インストールの手順

このデバイスの確認 → コンテナーランタイムの準備 → NemoClawのインストール → モデルの起動(クラウド・ゲートウェイの場合はモデルの利用権限の準備) → サンドボックスの作成 → Duoの設定 → 動作の確認の順に進みます。現在の段階はボタンと進行カードに表示されます。「少し時間がかかっています。アプリを開いたままにしてください。」と表示されても、アプリを閉じないでください。

インストールが止まったら、インストールできないときで画面の表示から原因を確認します。

ほかのアカウント・ワークスペースのDuo

Duoはデバイスごとに1つで、インストールしたアカウントとワークスペースに属します。別のアカウントでサインインしたり、別のワークスペースに切り替えたりすると、設定のDuoは「インストールされていません」と表示され、サイドバーのDuoとMate & Morphは非表示になります。この状態でインストールを押すと、「ほかのアカウントまたはワークスペースのDuoがあります。新しくインストールすると、そのDuoと会話・ルーチンが削除されます」という確認ウィンドウが表示されます。新しくインストールを押すと、既存のDuoを削除して新しく作成します。元のアカウント・ワークスペースに戻ると、既存のDuoが再び表示されます。

以前にインストールしたDuoが残っている場合は、整理してからインストールします。整理に失敗すると、「既存のDuoを削除できませんでした。もう一度インストールしてください。」と表示されます。

インストールできないとき

インストールが止まると、設定 → Duoにエラーメッセージが表示されます。メッセージ末尾の括弧内のコードも確認します。原因を解決したら、インストールをもう一度押します。

画面の表示原因対処
ディスク容量が不足したため、インストールを中止しました。空き容量を {need} GB 以上確保してから再度インストールしてくださいホームフォルダーがあるディスクの空きが 20GB 未満です。20GB 以上(40GB 推奨)の空き容量を確保します。
コンテナランタイムを準備できませんでした。接続を確認して、もう一度お試しくださいインストールファイルをダウンロードできませんでした。社内のファイアウォールやプロキシが原因の場合が多いです。インターネット接続を確認します。社内ネットワークの場合は、ダウンロード先のアドレスの許可をIT担当者に依頼します。
以前の Duo を削除できませんでした。もう一度インストールしてください。この端末に残っていた以前の Duo を整理できませんでした。アプリを完全に終了してから開き直し、インストール を押します。繰り返す場合は macOS タブの同じ表示を確認します。
この端末には別のアカウントまたはワークスペースの Duo があります。インストールすると削除されます。この端末のDuoが別のアカウント・ワークスペースに属しています。新しくインストール を押すと、そのDuoを削除してインストールします。既存のDuoを使い続けるには、元のアカウント・ワークスペースに切り替えます。
このプランでは Duo でクラウドモデルを使えません。現在のワークスペースのプランにはクラウド版 Duo が含まれていません。モデルを この端末のモデル、DGX Spark、ゲートウェイのいずれかに変えるか、プランを確認します。
ログインするとクラウドモデルを使えます。サインアウトしています。サインインしてから、もう一度インストールします。
Duoのモデルが実行されていません。起動してからもう一度適用してください。この端末のモデルが停止しています。設定 → モデル でモデルを実行してから、インストールします。
通常より時間がかかっていますが、処理は続いています。アプリを開いたままにしてください。初回のインストールは、ダウンロードするファイルが多いため時間がかかります。アプリを閉じずに待ちます。ノート PC なら、スリープしないようにします。

解決しない場合は、設定 → サポート で問い合わせます。画面の表示、括弧内のコード、端末の種類(macOS・Windows・Spark)を伝えてください。

設定 → Duoの画面

領域内容
状態「{場所}で実行中」・停止中・起動中・インストールされていない・サーバーなし(Sparkの接続が切れている場合)
実行環境モデルの選択、このデバイス/リモートデバイスの行のインストール・起動・停止・削除、サンドボックスのIDとNemoClawのバージョン
チャットアプリTelegramの接続
接続GitHub、ウェブ検索
コンピューターの使用権限、読み取れるフォルダー、行動の前のルール、常に許可したアプリ、Mate & Morph
会話のメモリコンテキストの使用量、会話の圧縮、新しい会話
新機能(Windows)Windowsコンピューターの接続、共有フォルダー、アプリへのアクセス確認、最近の作業

インストール・モデルの切り替え・チャットアプリの適用・削除などの長い作業の間は、ほかの領域がロックされます。コンピューターの使用をオンにするとき、またはルールを広げるときは、OSの確認ウィンドウが表示されます。

会話

サイドバーのDuoを押します(コードモードでは表示されません)。接続が切れている間に送ったメッセージは「{n}件 送信待ち」と表示され、接続が戻ると届けられます。/newを送ると、新しい会話を始めるかどうかの確認が表示されます。

上部のDuo情報をオンにすると、横のパネルに次のカードが表示されます。

カード内容
実行中の作業休止中または進行中の作業と経過時間、使ったツール
Duoの設定が変わりましたサンドボックスの設定が前回の確認時と異なるときに表示されます。変わった領域(チャットアプリと会話できる人・ツールと権限・接続されたサービス・モデルの接続・その他)を示します。自分で変更した場合は、変更を承認を押します。
サンドボックス準備完了/エラー、モデルの応答が正常/応答なし、GPU(CUDA)の使用の有無、容量
モデルモデル名、場所(このデバイス・DGX Spark・クラウド)、コンテキストの使用量
ルーチン下のルーチンを参照
接続・Telegram接続の概要です。押すと設定に移動します。
作業ファイルDuoがサンドボックスの作業フォルダーに作ったファイル

バックグラウンドタスクボタンを押すと、Duoが実行しているサブエージェントの一覧を表示します。

会話のメモリ

設定 → Duo → 会話のメモリで、「使用中のコンテキスト」をトークン数と割合で確認します。圧縮で会話を短くするか、新規で新しい会話を開きます。現在の会話は保管されます。Duoが作業中の場合は、作業が終わった後に行えます。「会話が長くなりすぎて、モデルが処理できないため、Duoが答えられませんでした。」と表示されたら、圧縮するか新しく始めてください。

ルーチン

Duoに「毎朝9時に…してね」のように話すと、このルーチンを作りますか?カード(作業・予定・実行場所)が表示されます。ルーチンを作るを押すと登録されます。変更や削除のときも、同じカードで確認します。

項目内容
周期1回(最大365日後まで)・毎日・平日・毎週・N分ごと(5〜1,440分)
実行場所Keuralアプリの Duoの会話、またはTelegramに配信
件数有効10件、全体50件
期限既定は7日、最大30日。過ぎると「期限切れ」
見逃しアプリが閉じていたため、予定の時刻から10分を超えて遅れた場合は実行せず、「未実行」として残ります
失敗連続で3回失敗すると、「失敗のため一時停止中」になります

Duo情報パネルのルーチンカードで、オン・オフを切り替えます。もっと見るから、今すぐ実行・削除を行えます。行ごとに、次の実行時刻と状態(送信済み・未実行・失敗・一時停止中・期限切れ)が表示されます。ルーチンの結果は、Duoの会話またはTelegramに届き、デスクトップ通知も表示されます(今すぐ実行は通知なし)。ルーチンは、アプリが開いているときに実行されます。

チャットアプリ(Telegram)

設定 → Duo → チャットアプリ → Telegram → 接続するで、案内に従います。

  1. Telegramで@BotFatherを開き、/newbotを送ってから、ボットの名前とユーザー名を決めます。
  2. BotFatherが発行したボットトークンを貼り付けて、確認を押します。トークンが漏えいすると誰でもボットを操作できてしまうため、公開しないでください。
  3. QRコードをスマートフォンで読み取ってボットを開き、開始を押します。メッセージが届かない場合は、画面のコードをボットに送ってください。
  4. 「{名前}さんだけが個人のメッセージで会話できます」と表示されたら、追加を押し、続けて適用を押します。

適用すると、Duoが再起動されます(会話とファイルはそのまま残ります)。その後、スマートフォンから送った内容は、Duoの会話に「Telegramから送信」として表示されます。接続した1人だけが、個人のメッセージで会話できます。接続を切るには、接続を解除を押してから適用を押します。Telegramを接続すると、ルーチンの承認もTelegramで受け取ります。

ボットトークンは、1つのアカウントの1台のDuo(端末)でのみ使えます。別の機器に接続するには、既存の機器で接続を解除してから、トークンを再登録します。

アプリでの作業の承認は、Telegramから始めた会話であっても、Keuralアプリのウィンドウだけで行います。

接続

設定 → Duo → 接続で設定します。

サービス方法
GitHubパーソナルアクセストークンを貼り付けて確認するか、GitHub CLI で続けるで、このコンピューターのghのサインインを使います。CLIがない場合はインストールのリンクが、サインインしていない場合はサインインのウィンドウが開きます。接続または変更すると、Duoが再起動されます。
ウェブ検索設定 → 一般 → Web検索で選んだ方法(クイック検索・Keuralの検索・自分の検索サービスのTavily・Brave・SearXNG)を、そのまま使います。コンピューターの使用がオンになっている必要があります。

コンピューターの使用

設定 → Duo → コンピューターの使用 → Duoがこのコンピューターを使うことを許可するをオンにすると、Duoがこのコンピューターのアプリを開いて使ったり、指定したフォルダーを読んだり、ルーチンを作ったりできます。オンにすると、Duoが1分ほど再起動します。

項目内容
macOSの権限アクセシビリティ(クリック・入力)と画面収録(画面を見る)。許可していない場合はシステム設定を開くを押します。
Duoが読めるフォルダーフォルダーを追加で指定したフォルダーだけを読みます。ホームフォルダー全体やシステムフォルダーは追加できません。
Duoが行動する前毎回確認する(既定)・確認せずに実行・あなたに任せる。確認せずに実行に変えるときは、もう一度確認します。
常に許可したアプリ承認ウィンドウで常に許可したアプリの一覧。行の×を押して削除します。

確認せずに実行でも、常に許可でも、送信・削除・上書き・支払い・提出・サインイン・公開・キャンセルなどの重要な操作と、Enter・Backspace・⌘Qなどのキーは、必ず先に確認します。

Duoが許可を待っている場合は、入力欄の上に「Duoが承認を待っています」と表示されます。確認を押すと承認ウィンドウが開き、拒否・今回のみ許可・常に許可から選びます。Mate & Morphにも「承認を待っています」と表示されます。承認はこのウィンドウでのみ行えます。

Duoは検索結果のリンクだけを承認なしで開きます。Duoが直接入力または変更したアドレスは、承認ウィンドウにアドレス全体を表示して確認します。

Mate & Morph

Duoのデスクトップのキャラクターです。設定 → Duo → コンピューターの使用 → Mate & Morph → デスクトップに表示をオンにして、キャラクター(Mate・Morph・両方)とサイズ(小・標準・大)を選びます。

  • Duoが実行中で、会話の準備ができているときだけ表示されます。別のアカウント・ワークスペースに切り替えたり、プランによってDuoが使えなくなったりすると、非表示になります。
  • キャラクターを1回押すと入力欄が開き、すぐに話しかけられます。すばやく2回押すと、アプリが開きます。キャラクターの横には、状態(待機中・作業中・完了・詰まり・入力が必要・承認を待っています)と、最後の回答が失敗した理由が表示されます。
  • 右クリックのメニュー:非表示・既読にする・Duoを開く・Duoの設定。メニューバー(トレイ)のメニューにも、Mate & Morphを表示/非表示があります。

Windows

WindowsのDuoは、WSLのディストリビューション内で動作し、会話・ルーチン・Telegram・承認・Mate & Morph・コンピューターの使用をmacOSと同様にサポートします。一部のアプリや、パスワード入力欄・UAC・ターミナルなどの保護されたウィンドウは、Duoが操作せず、ユーザーに引き渡します。

設定 → Duo → 新機能(Windowsコンピューター)で、Duoの接続、共有フォルダー(Duoは選択したフォルダーだけを読み取ります)、アプリへのアクセス、最近の作業を確認します。Windowsでは、ソフトウェアのインストール(正確なパッケージIDのみ)とWi‑Fi接続(保存されたプロファイル)もでき、送信・削除・上書き・インストール・ネットワークの変更は、必ず先に確認します。

削除

設定 → Duo → 実行環境で、インストールされた場所の行の削除を押し、確認ウィンドウで削除を押します。サンドボックス、会話の履歴、ルーチン、作業ファイルが削除されます。macOSでは、Duo専用のコンテナーVMも削除されます。DGX SparkのDuoは、Sparkが接続されている間だけ削除できます。

よく見る表示

表示意味
Duoが実行中ではありません設定 → Duoで開始を押します。
最新のデスクトップアプリが必要ですアプリを更新します。
モデルが実行中ではありません。モデルを起動してから、もう一度適用してください。ローカル・Sparkのモデルがオフになっています。先にモデルを実行します。
モデルの接続が切れました。サインインの状態を確認してください。クラウドモデルのDuoへのアクセス権が切れました。もう一度サインインします。
このワークスペースのプランでは、Duoを使えません。クラウドモデルのDuoを使えないプランです。ローカルモデルに切り替えるか、プランを確認します。
ほかのアカウントまたはほかのワークスペースのDuoがあります。インストールすると、そのDuoは削除されます。元のアカウント・ワークスペースに切り替えると、そのまま使えます。
既存のDuoを削除できませんでした。もう一度インストールしてください。以前にインストールしたDuoを整理できませんでした。インストールを押し直します。

IT担当者向けの詳細

要件

実行場所基準
macOSApple シリコン(arm64)、メモリ16GB以上。Duo用の仮想マシン(Colima、vz)は、CPU 4個・メモリ9GiB・ディスク40GiB(必要な分だけ使用)を使います。
WindowsWSL 2(カーネル5.15以降)、x64またはARM64。ディストリビューションのUbuntu 24.04をKeural-Duoという名前でインストールし、その中でrootless Podmanを使います。Docker Desktopは不要です。
DGX SparkDockerが動作し、残りのディスク20GB・使用可能なメモリ8GB以上
共通ホームフォルダーがあるディスクに20GB以上の空き(40GB推奨)

Windowsでは、インストールの際に%USERPROFILE%\.wslconfigの[wsl2]にnetworkingMode=natを使います。ミラーリングネットワーキング(mirrored)を使っているPCにはインストールされません。

インストールされる場所

実行場所パス
macOSのランタイム~/.keural-runtime/(Colima・Lima・Docker CLI、ログ)
macOSの自動起動~/Library/LaunchAgents/kr.mkd.keural-duo-colima.plist、kr.mkd.keural-duo-gateway.plist、kr.mkd.keural-duo-sweeper.plist
NemoClaw CLI~/.local/bin/nemoclaw
WindowsWSLのディストリビューションKeural-Duo
アプリの記録アプリデータフォルダーのkeural-duo@<サーバー>.json、keural-duo-routines@<サーバー>.json、keural-duo-rules@<サーバー>.json
ログ~/.keural/logs/、~/.keural-runtime/colima.log・gateway.log、アプリデータフォルダーのkeural-duo-install.log

ダウンロード先

ファイアウォールやプロキシで、次のアドレスを許可します。ダウンロードするファイルは固定のバージョンで、SHA-256で検証します。

アドレスダウンロードするもの
github.comColima v0.10.3、Lima v2.2.1、buildx v0.38.2(macOS)、Podmanのツール(Windows)
download.docker.comDocker CLI 29.9.3(macOS)
www.nvidia.comNemoClawのインストールスクリプト(v0.0.134)
ghcr.ioOpenClawのサンドボックスイメージ
api.telegram.orgTelegramの接続
Keuralのサーバー(api.keural.aiなど)クラウドモデル、サインイン

ウェブ検索やGitHubの接続を使う場合は、api.tavily.com、api.search.brave.com、api.github.com、api.githubcopilot.comも許可します。

ネットワークとポート

場所ポート用途
macOS127.0.0.1:8080OpenShellゲートウェイ
macOS・Windows127.0.0.1:8766このデバイスのモデルサーバー(Windowsは、WSL内の中継)。重なる場合は8768
DGX Spark18080〜18099のうち空いているポートSpark専用のゲートウェイ
DGX Spark18081サンドボックスからSparkのモデル(8000)への中継
DGX Spark22アプリのSSH接続

Sparkでufwファイアウォールがオンになっている場合は、インストールの途中でゲートウェイと中継のポートを2つ開きます。このとき、Sparkのアカウントのパスワードを1回入力します。

サンドボックスは、インターネットに直接接続しません。ウェブ検索とページの読み取りはアプリが代行し、GitHubは読み取り専用で接続します。

モデルのアドレス

モデルサンドボックスが呼び出すアドレス
このデバイスのモデルhttp://localhost:<ポート>/v1。既定のモデルqwen3-8-27b、コンテキスト262,144
DGX SparkのモデルSparkの中継を経由して、Sparkの127.0.0.1:8000/v1
クラウドモデルKeuralサーバーの/core/v1/bot/v1。Duoごとに発行されたトークンを使います。
ゲートウェイ設定 → モデル → ゲートウェイで接続したサーバーのアドレス

ゲートウェイのアドレスは、httpsであればどこでもかまいません。httpの場合は、プライベートIPや社内の名前(.local・.lan・.internal・.intranet・.home.arpa、ドットのない名前)だけを受け付けます。localhostやuser:pass@を含むアドレスは受け付けません。

Telegram

  • ボットトークンは、BotFatherの/newbotで取得します。形式は数字:英数字です。
  • 接続コードが作成されたら、10分以内にスマートフォンでボットを開き、5分以内に最初のメッセージを送ります。最初のメッセージを送ったアカウントが許可されます。
  • グループの会話には返答しません。

ルーチンの制限

項目値
確認の周期30秒ごとに、実行するルーチンを探します。
見逃し予定の時刻から10分を超えて遅れた場合は、実行せず見逃しとして残します。
一時停止3回連続で失敗すると停止します。
繰り返しの間隔5〜1,440分
1回の実行365日後まで
期限既定は7日、最大30日
件数オンにしたルーチン10件、全体50件
タイムゾーンルーチンを作成したコンピューターのタイムゾーン

フォルダー追加のルール

次のフォルダーは追加できません。

区分フォルダー
共通ディスクのルート、ホームフォルダー自体とその上位
ホームの下.ssh、.aws、.gnupg、.kube、.docker、.config、Library、.Trash、AppData
macOS/System、/Library、/usr、/bin、/sbin、/etc、/var、/private、/dev、/Volumes、/Applications、/opt、/cores
WindowsWindows、Program Files、Program Files (x86)、ProgramData

コンピューターの使用の権限

OS必要な権限
macOSシステム設定 → プライバシーとセキュリティのアクセシビリティ、画面収録
Windows別途の権限は不要です。WindowsのUI自動化を使います。

送信・削除・支払い・購入・提出・サインイン・送金・公開・キャンセルなどのボタンや、Enter・Delete・ウィンドウを閉じる・アプリを終了するなどのキーは、重要な操作として扱い、そのたびに確認します。

削除時に消えるもの

削除を押すと、サンドボックス、Duoの会話履歴、ルーチン、Telegram・GitHub・検索の接続、クラウドモデルのトークンが削除されます。この端末に別のDuoがない場合、macOSでは~/.keural-runtime/と自動起動の項目も削除されます。Mate & Morphの設定とSparkの接続履歴はデバイスの設定のため、残ります。

このページの内容