BRICKS Foundation は LLM、MLX、音声認識の推論を同じ LAN 上の BRICKS Buttress サーバーへオフロードできます。brick の generator API は変わらず、サーバー側で実行する方が速い(あるいはローカルでは動かない)場合に、デバイスは透過的に処理を委譲します。Documentation Index
Fetch the complete documentation index at: https://docs.bricks.tools/llms.txt
Use this file to discover all available pages before exploring further.
要件
- BRICKS Foundation 2.25 以降
- LAN 上で到達可能な Buttress サーバー — Buttress インストールを参照
- サーバーがデバイスと同じワークスペースにバインドされている — ワークスペースバインディングを参照
仕組み
- デバイスのワークスペースに少なくとも 1 つのバインド済み Buttress サーバーがあると、launcher はディスカバリーマネージャーを起動し、ワークスペーススコープの JWT を取得します。
- マネージャーはポート
8089で UDP アナウンスを待ち受け、serverIdがワークスペースのバインド済み一覧にあるサーバーをすべてプールします。 - 各 LLM、MLX、STT brick は Buttress (Remote Inference) グループを読み、自動でサーバーを選ぶか、手動で設定された URL を使います。
- ハードウェア能力比較によりローカル・リモート・どちらでも実行のいずれかが推奨され、brick で選んだストラテジーがその推奨をどう解釈するかを決めます。
brick でオフロードを設定
BRICKS Controller > Config Editor で任意の LLM または STT brick を開きます。Buttress (Remote Inference) プロパティグループは Connection の下に表示されます。| 項目 | デフォルト | 効果 |
|---|---|---|
| Enabled | false | この brick で Buttress を有効化 |
| Auto-discover | Auto | Auto は UDP でサーバーを検出、Manual は URL 欄を使用 |
| URL | 空 | Auto-discover が Manual のときの WebSocket URL(例:ws://buttress.lan:2080) |
| Strategy | prefer-buttress | デバイスがローカルとリモートをどう選ぶか |
| Fallback | no-op | Buttress が有効でも到達不能なときの処理 |
ストラテジー
| ストラテジー | 動作 |
|---|---|
prefer-buttress | サーバーが利用可能なら常に Buttress に送信。ローカルハードウェアは検査しません。 |
prefer-local | デバイスのメモリが足りればローカルで実行、足りなければ Buttress にフォールバック。 |
prefer-best | スコアを比較して、より高速な側で実行。 |
prefer-buttress がデフォルトなのは、Buttress を有効化する Foundation デバイスのほとんどがローカルハードウェアでは最速ではないからです。
フォールバック
| フォールバック | Buttress が有効だが到達不能なときの動作 |
|---|---|
no-op(デフォルト) | brick はローカルでは何もしません。モデルのダウンロードも completion の実行もしません |
use-local | brick は Buttress がオフだったときと同じくローカル実行にフォールバックします |
use-local、デバイスが扱えないモデルをこっそり動かしてバッテリーを消費するより明確に失敗させたいなら no-op を選んでください。
ワークスペースが変わったとき
デバイスのワークスペースが変わると(例:管理者が BRICKS Controller から再割り当て)、launcher は次の処理を行います:- 動作中の Buttress マネージャーを停止し、開いている WebSocket 接続をすべて閉じる。
- キャッシュされた access token を破棄する。
- 新しいワークスペースのバインド済みサーバー一覧と、新たに発行されたトークンでマネージャーを再起動する。
音声アップロード(STT)
音声認識の文字起こしには音声ファイルがサーバーに必要です。brick は HTTPS でPOST /buttress/upload にアップロードし、サーバーは [server] temp_file_dir で設定された一時ディレクトリ(デフォルトは <os-tmpdir>/.buttress)に保存します。文字起こし後、ファイルはセッションの他の一時ファイルとともに自動でクリーンアップされます。
トラブルシューティング
| 症状 | 原因と思われるもの | 対処 |
|---|---|---|
brick ログに no LAN provider is registered | デバイスがワークスペースに紐付いていない、またはそのワークスペースにバインド済みサーバーがない | デバイスをバインドする、または bricks buttress bind でサーバーをペアリングする |
brick ログに no '<type>' endpoint yet | UDP 検出が 10 秒以内にサーバーを返さなかった | サーバーが同じサブネットにあること、[autodiscover] ブロックが無効化されていないことを確認 |
WebSocket がコード 1008 で閉じる | デバイスのトークンがサーバーのバインド済みワークスペースと一致しない | 双方が同じワークスペースであることを確認、launcher を再起動 |
| Buttress を有効化したら brick が「動かなくなった」 | フォールバックが no-op で、到達可能なサーバーがない | フォールバックを use-local に切り替えるか、LAN 接続を修正 |
| Unknown generator id エラー | サーバーが再起動またはロード済みモデルを退避した | brick は次の呼び出しで自動的に generator を再初期化して回復します |
関連項目
Buttress 概要
Buttress とは何か、いつ使うか、システム全体の構成。
ワークスペースバインディング
サーバーとデバイスが同じワークスペースに所属する仕組み。