Generators
ggml-llm— llama.cpp 執行環境更新至 b11385。ggml-decision— 新增支援 Generator Typed Decision (GGML) 的後端。本機函式可呼叫context.buttress.decide()。請參閱函式。ggml-tts— 模型檔案會並行下載,載入期間被釋放的模型會在載入完成後釋放。OuteTTS 模型會正確朗讀所有縮寫與刪節號,包含$的文字不再改變提示。
Agents
- MCP 伺服器支援
exposure/tool_exposure(direct或hidden)與timeout。請參閱 agent。 - 設定
codemode = true即可讓 agent 執行批次呼叫其工具的指令碼。指令碼預設 5 分鐘後停止,最長 30 分鐘。
Generators
ggml-llm多 GPU 分配 —split_mode可選擇模型在多個 GPU 上的分配方式(none、layer、row,以及實驗性的tensor),tensor_split則設定各 GPU 的比例,可寫成[3, 1]或"3,1"。兩者皆可在[runtime]設定或針對個別模型覆寫,目前僅能在 BRICKS Buttress 中設定。張量平行處理仍為實驗性功能,需要相容的後端與模型。請參閱設定。ggml-stt— 在相容的 Qualcomm Linux arm64 硬體上,Whisper 支援snapdragon加速後端。請參閱設定。
修正
ggml-llm— 共用 session 快取的 Generator 不再覆寫彼此的紀錄,已儲存的 session 在重新啟動後仍會保留。ggml-llm/ggml-stt— 將 context 釋放延遲設為 0 時會立即生效;載入期間被釋放的 LLM 模型,也會在載入完成後釋放。
Agents
- Agents(實驗性) — 伺服器設定中的
[[agents]]表格可定義在伺服器內執行的 LLM agent,使用已設定的ggml或mlxgenerator(model = "buttress/<repo_id>"),或 Anthropic、OpenAI、Google 模型。每個 agent 可帶有 system prompt、作為工具的 local functions、選用的 MCP servers、回合與 token 上限,以及可恢復或分支的磁碟 session。Local functions 與 daemons 以context.agents.run(name, { prompt, sessionId, fork })呼叫;HTTP 則提供GET /agents、POST /agents/:name/run(?stream=1為 SSE,會先送出 session id,中斷的第一回合仍可接續),以及 session 列表與中止路由。bricks-buttress agent <name>會在終端機開啟全螢幕聊天:markdown 回答、串流 thinking、工具呼叫列、/new、/exit,Ctrl+C 中止回合,--plain供管線使用,並支援--sessions、--session <id>與--fork <id>。請參閱設定。 ggml-llm與mlx-llm後端支援 tool calling:OpenAI 相容與 Anthropic Messages 端點回傳結構化的tool_calls,不再是原始的<tool_call>文字。平行呼叫、reasoning 往返與串流中中止皆已驗證,agent 因此能在本機 GGUF 與 MLX 模型上運作。
本機函式
- 在
bricks buttress bank-key儲存憑證後,local function 可透過context.bank.list、get、update與remove讀寫綁定 workspace 的 Data Bank。請參閱本機函式。 - Daemon local functions —
meta.daemon = true的 function 檔案會以長駐背景 function 執行,沒有期限。它可使用context.setInterval、透過單一自動重連連線接收 Data Bank 變更通知的context.bank.subscribe(propertyIds, onChange),以及供 function 對 daemon 傳訊的context.onEvent與context.daemons.emit。Daemon 無法作為 MCP 工具或透過 HTTP 呼叫,檔案編輯時會重新啟動,並在/status顯示即時表格。 - 在派送前 client 已斷線的 local function 呼叫會被略過,不再一路執行副作用直到自己逾時。
修正
- CORS 依路徑一次決定:瀏覽器帶 JSON body 的
POST /functions/<name>可通過 preflight,/anthropic-messages保留x-api-key與anthropic-version標頭,各介面的cors_allowed_origins也確實生效。不再需要關閉[autodiscover] http.cors作為權宜之計。 - 伺服器不再因遲到的原生回呼而結束,包括 client 在串流中途中止 completion 或轉錄(
ggml-llm、mlx-llm、onnx-stt),或失敗、剛完成的onnx-tts與onnx-stt模型載入仍回報下載進度時。 - 無法解析的
agents_options.session_max_age會讓啟動失敗,不再無聲地改以 30 天清理 session。 - Standalone 版本:
onnx-tts與onnx-sttsession 可再次初始化。自 v2.25.5 推論 runtime 更新後,它們會以「A boolean was expected」失敗。已在 Snapdragon 主機驗證 Chatterbox Multilingual。
本機函式
- 打包後的發行版可以正常提供檔案下載 — v2.25.1 中
/functions/files/*與/buttress/download會回應 HTTP 200 與[object Object]。詳見本機函式。 - Raw-prompt completion 會回傳實際產生的文字,不再是空字串。
Models
GET /v1/models會列出指定檔案的 generator 其正式 model id,共用同一個 repository 的兩個 generator 因此可以區分,completion 回應的 id 也確實存在於清單中;相容性端點僅接受已設定的 models。詳見設定。
修正
- 下載憑證不會出現在 log 與錯誤輸出中。
- 安裝 rollback 失敗時會保留備份,不再將其刪除。詳見安裝。
本機函式
- 本機函式(實驗性) — 放在指定目錄下的
.ts/.js檔案會同時成為 MCP tools 與 HTTP endpoints,讓 agent 不必另外架設服務就能執行伺服器端工作 — 例如 ffmpeg,或該伺服器自身的 LLM / STT / TTS generator。一個檔案即一個函式,以 JSON Schema 宣告(MCP 會原樣接收),並支援 SSE 進度串流、每次呼叫專屬的暫存目錄(含檔案上傳與下載)、可自訂驗證、可選用 hot reload、可直接複製使用的範例,以及狀態頁上的本機函式活動卡片。 - 函式也可以用
GET /functions/<name>以查詢字串為輸入呼叫,讓瀏覽器、EventSource、webhook 或單純的 curl 都能直接使用。 - 新增
simple-rag函式範例,所需的向量搜尋支援也一併打包進發行版本。 bricks buttress mcp-config可寫入 agent 所需的.mcp.json設定。詳見 BRICKS CLI。
安裝
- 獨立發行版本 —
bricks-buttress現在提供自帶執行環境的執行檔。安裝程式會偵測主機的 ggml 加速器(CUDA、Vulkan、Snapdragon 或預設),只下載該版本需要的原生套件,並安裝到與 BRICKS CLI 共用的~/.bricks-cli/bin;bricks-buttress update則可就地更新。詳見安裝。
Generator
- Generator Vector Store — GGML embedding model 與 tokenizer 現在可交由 BRICKS Buttress 執行,裝置不需下載任何一個 GGUF 也能建立索引與搜尋文件。詳見 BRICKS Foundation。
修正
- Session 上傳會取得唯一的儲存檔名,同一 session 內上傳的兩個檔案不會互相覆蓋。
- LLM、STT 與 ONNX 後端的模型下載會限制在伺服器的快取目錄內。
- Generator 結束流程改為依 session 授權並正確計數,同一 session 啟動同一個模型兩次時能完整釋放。
後端
- ONNX 後端 — Generator STT 與 TTS 的工作負載現在可經由 transformers.js 與 ONNX Runtime 交由 BRICKS Buttress 執行,並支援 CUDA、CoreML、DirectML 與 CPU 的自動硬體偵測,以及依記憶體狀況挑選模型。詳見設定。
- Parakeet 引擎 — GGML STT 後端現在同時支援 Whisper 與 NVIDIA Parakeet,並會宣告自身支援的引擎,讓舊版用戶端能安全回退。
自動探索
- Web 區域網路自動探索 — Web 與虛擬裝置可透過帶簽章的 HTTP 探測,找到區域網路上的 BRICKS Buttress 並將推論轉移過去,由新的裝置層級 Local Network Access 設定控制。詳見自動探索。
Generators
- Generator STT (GGML) — Buttress 載入時會正確套用 GPU/flash-attention/thread 設定。
- Generator LLM (MLX) — Buttress 會在有設定時轉送 tokenizer 與 model config overrides。
WebSocket RPC
- 二進位 payload 序列化 —
ArrayBuffer型別 payload(如來自 RealtimeTranscriber)與二進位驗證 token 改以Uint8Array/Buffer正確序列化與反序列化,解決先前transcribeData等二進位呼叫的Invalid params錯誤。 - 正確的 Error 物件 — JSON-RPC 錯誤回應改以帶有伺服器
code/message的Error實例呈現給呼叫端,修正先前Transcription error: [object Object]之類的通知。
CLI
buttress-server --version會顯示獨立 CLI 的封裝版本。
Generator
- Generator LLM (GGML) — 升級
llama.cpp至 b9254,並新增 MTP(multi-token prediction)推測解碼參數。
認證
- 工作區範圍 JWT 認證 — 每台 Buttress 伺服器皆透過
bricks buttress bind綁定至工作區,並以 EdDSA 驗證 token;/buttress/rpc、/oai-compat、/anthropic-messages與檔案上傳/下載端點現在都需要驗證。詳見工作區綁定。
探索
- LAN 自動探索 — Launcher 從多伺服器池(90 秒 TTL,依硬體規格排序)中挑選,且只信任工作區綁定列表中的伺服器。詳見自動探索。
- 簽署 UDP ANNOUNCE — 每台伺服器以 Ed25519 簽署,防止 LAN 上的 spoof 攻擊;
PROTOCOL_VERSION升至 2.0,升級後請重新執行bricks buttress bind並重新啟動伺服器。
相容端點
- 新增 TOML 設定旗標
[openai_compat] enabled與[anthropic_messages] enabled以啟用實驗性相容端點。詳見組態。