インストール済みコーディングエージェントをチャットモデルとして使う
すでにコーディングエージェントを契約していて、Libre WebUI を実行しているマシン上でサインイン済みなら、別の API キーを追加せず通常のチャットからそのエージェントと対話できます。Libre WebUI はエージェントのコマンドラインインターフェイスを検出し、ほかのモデルと同じようにモデルセレクターへ表示します。
検出対象
モデル一覧へのリクエストごとに、Libre WebUI はサーバーの PATH から次のコマンドを探します。
| モデル | コマンド | 提供元 |
|---|---|---|
| Claude Code | claude | Anthropic |
| Codex | codex | OpenAI |
| OpenCode | opencode | SST |
| Pi | pi | Mario Zechner |
見つかったものは、モデルセレクターのエージェントグループに表示されます。Libre WebUI が代わりにインストールすることはなく、設定ファイルも必要ありません。サーバーのシェルでコマンドを実行できれば表示されます。
CLI だけでなくモデルを選ぶ
各 CLI は、エージェントグループに複数の項目を表示できます。
- Claude Code は、サインイン済みの既定モデルに加えて Sonnet、Opus、Haiku を提供します。
- Codex は、設定済みの既定モデルに加え、文書化された ChatGPT サインイン対応モデルファミリー、GPT-5.6 Sol、Terra、Luna、GPT-5.3 Codex Spark を提供します。
- Pi は、CLI 自体に設定されたモデルで実行します。
- OpenCode は、認証済みの全プロバイダーのモデル(
opencode modelsから取得)を一覧表示し、常に明示的な選択を求めます。CLI レベルの既定値が、Libre WebUI ホストから到達できないローカルサーバーを指している可能性があるためです。
Pi は各ターンをステートレス(--no-session)で実行し、ローカルツールを無効にして中立なシステムプロンプトを使います。そのため、返信がサーバーの OS ユーザー個人の Pi 設定に影響されたり、チャットがその設定に触れたりすることはありません。
使い方
- 管理者としてサインインします。
- チャットを開始し、モデルセレクターを開きます。
- エージェントにある項目を選びます。
- 通常どおりメッセージを送信します。返信はトークン単位でストリーミングされます。
会話はほかのチャットと同じように保存されるため、いったん離れて後から再開したり、名前を変更したり、コマンドパレットから検索したりできます。各ターンでは直近の会話記録をエージェントに送り、回答をストリーミングで返します。
利用できるユーザーと到達可能な範囲
この機能は管理者専用であり、それには重要な理由があります。エージェントは Work コンテナ内ではなく、ホスト上で Libre WebUI バックエンドと同じ OS ユーザーとして実行されます。そのため、そのユーザーのエージェント認証情報と、各エージェントが通常持つアクセス権を継承します。エージェントが必要と判断すれば、サーバー上のファイルを読んだりコマンドを実行したりする権限も含まれます。
この機能の有効化は、エージェントにマシンへのシェルアクセスを与えるのと同等だと考えてください。そのため、機能は初期状態で無効です。管理者が設定 → ユーザー管理 → エージェントで有効にする必要があります。設定は永続化され、再起動せず直ちに反映されます。
実行時の切り替えに関係なくデプロイレベルで判断を固定するには、環境変数をどちらかの値に設定します(インターフェイス上の切り替えもロックされます)。
AGENT_CLI_MODELS_ENABLED=false # or true
ファイルを操作でき、サンドボックス内に留まるモデルが必要なら、代わりに Work を使ってください。Work はツール対応モデルを、隔離ワークスペースを備えた厳重に制限されたコンテナ内で実行します。
設定
| 変数 | 既定値 | 用途 |
|---|---|---|
AGENT_CLI_MODELS_ENABLED | 未設定 | 機能を true/false に固定します。未設定なら管理者の切り替えに従います(既定ではオフ)。 |
AGENT_CLI_TIMEOUT_MS | 600000 | エージェントの 1 ターンを終了させるまで実行できる時間。 |
トラブルシューティング
エージェントグループが表示されない。 設定 → ユーザー管理 → エージェントで機能が有効になっていること(既定ではオフ)と、管理者としてサインインしていることを確認します。次に、対話シェルだけでなく、バックエンドを実行しているプロセスの PATH にコマンドがあるか確認してください。サービスマネージャー、Docker コンテナ、デスクトップランチャーは、ログイン端末よりはるかに少ない PATH で起動することがよくあります。
返信がすぐに失敗する。 サーバーユーザーとして同じコマンド(claude -p "hello" または codex exec "hello")を手動で実行してください。多くの場合、エージェントのログイン期限切れや、基盤となるサブスクリプションのレート制限が原因です。特に OpenCode は、プロバイダーのログイン期限切れを自身のログにしか表示しません。サーバーユーザーとして opencode auth login を再実行してください。
返信が途中で止まる。 長いターンが AGENT_CLI_TIMEOUT_MS に達した可能性があります。値を増やすか、依頼を小さな手順に分けてください。