跳轉到主要內容

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.

Foundation launcher 不需要寫死的伺服器網址。每台 Buttress 伺服器會於區域網路上自我通告,已繫結的 launcher 會為各 generator 類型挑選最強的相符伺服器。

運作方式

每台 Buttress 伺服器於連接埠 8089 執行 UDP 傳輸:
  • ANNOUNCE — 每 5 秒廣播一次,內含伺服器的 serverInfo(能力、generator 清單、認證狀態)。
  • QUERY — launcher 可廣播查詢,伺服器以單播 RESPONSE 回應。回應延遲會隨機化,避免多台伺服器同時回覆造成風暴。
傳輸層會於 0.0.0.0:8089 綁定接收 socket 以接收進入的查詢,並為每個本機廣播介面綁定一個發送 socket,確保各子網路的廣播從正確的 NIC 送出。

通告內容

serverInfo 包含 generators[] 陣列,列出啟動時計算的各後端硬體能力:
{
  "id": "buttress-mac-studio",
  "name": "Studio LLM",
  "version": "2.25.0-beta.9",
  "authentication": {
    "required": true,
    "type": "workspace-jwt",
    "kid": "<key id>",
    "bound": true
  },
  "generators": [
    { "type": "ggml-llm", "score": 57, "hasGpu": true, "usableBytes": 21474836480 },
    { "type": "ggml-stt", "score": 57, "hasGpu": true, "usableBytes": 21474836480 }
  ]
}
Foundation launcher 會依 generator 類型(LLM、STT、MLX)篩選通告,並偏好評分最高且支援該後端的伺服器。

能力評分

評分為 0-100 數值,由以下項目組成:
項目最高分來源
GPU 可用性40hasGpu
後端變體20CUDA = 20,Metal = 15,Vulkan = 10,CPU = 5
GPU 記憶體20以 12 GB 為基準的相對值
CPU 記憶體10以 32 GB 為基準的相對值
伺服器可用性10ok 健康旗標
無 GPU 的筆記型電腦約 15-25 分;搭載 RTX 4090 的工作站可達 80-90 分。

信任模型

不論已繫結或未繫結,所有伺服器皆會通告,但 launcher 對待方式不同:
  • 未繫結伺服器authentication.required = false)會以未受信任端點呈現。手動或公開客戶端仍可使用,但已繫結的 launcher 會忽略它們。
  • 已繫結伺服器authentication.required = true)僅在其 serverId 出現於工作區繫結伺服器清單通告由工作區於繫結時登錄的對應伺服器專屬通告金鑰簽署時才被信任。

簽署過的通告

每台 Buttress 伺服器都有自己的 Ed25519 通告金鑰對,由 bricks buttress bind 產生。公鑰會登錄至 BRICKS 雲端,並透過 myWorkspaceButtress.buttressServers[].serverPublicKey 提供給 launcher;私鑰則保留於伺服器主機的 ~/.bricks-cli/buttress/state.json 已繫結伺服器送出的每個 UDP ANNOUNCERESPONSE 都會夾帶針對 { t, d, ts } 的簽章。launcher 會以登錄的公鑰驗證簽章,並套用 30 秒重放視窗 — 缺乏有效簽章的封包永遠不會進入端點池。此舉封閉了「區域網路上的對等節點重新通告已繫結 serverId、藉此取得工作區 bearer token」的偽冒攻擊面。 通訊協定版本已升級為 2.0。執行協定 1.0 與 2.0 的 launcher 與伺服器會無聲地丟棄對方的封包,因此新舊組合會互相隱形而非以未簽署的形式互信。若要升級既有的已繫結伺服器,請重新執行 bricks buttress bind(會產生新的通告金鑰對)並重新啟動 bricks-buttress

手動覆寫

當自動探索不可行時(裝置位於不同子網,或 Buttress 伺服器位於雲端),BRICKS Controller 的 Config Editor 提供將每個 LLM/STT brick 從 Auto 切換為 Manual 並直接輸入 WebSocket URL 的選項。請參閱從 Foundation 使用 Buttress

HTTP 回退

launcher 也可以直接以已知 IP 透過 HTTP 查詢:
curl http://<伺服器主>:2080/buttress/info
該端點回傳的 serverInfo 結構與 UDP ANNOUNCE 相同。Foundation launcher 在 UDP 廣播被封鎖時(部分企業 Wi-Fi 網路)會於內部使用此路徑。

疑難排解

症狀可能原因解決方式
裝置始終找不到伺服器UDP 廣播被交換器或 AP 封鎖改用有線網路、允許 udp/8089 廣播,或改用手動 URL
iOS 裝置只在行動數據下能找到伺服器,Wi-Fi 找不到廣播 socket 上的 iOS IP_BOUND_IF 行為差異launcher 已自動處理,會將主動查詢改綁至 Wi-Fi IP
伺服器有通告但裝置忽略它伺服器未繫結,或繫結至不同工作區執行 bricks buttress status,必要時重新繫結
serverInfo.generators[] 為空TOML 設定檔中未列 generator,或全部載入失敗檢視伺服器記錄中下載或硬體偵測錯誤

下一步

工作區繫結

伺服器的 kid 與繫結伺服器清單如何核發。

從 Foundation 使用

各 brick 的連線設定:Auto vs Manual、策略、回退。