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を指定できます。エージェントを参照してください。 codemode = trueを設定すると、エージェントがツールをまとめて呼び出すスクリプトを実行できます。スクリプトは既定で 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— コンテキストの解放待ち時間を 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_call>テキストではなく構造化されたtool_callsを返します。並列呼び出し、reasoning の往復、ストリーム途中の中止を確認済みで、これによりローカルの GGUF・MLX モデルで agent が動作します。
ローカル関数
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-sttの session が再び初期化できます。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 を共有する 2 つの generator を区別でき、completion が返す id も一覧に実在するものになります。互換エンドポイントは設定済みの models のみを受け付けます。設定を参照してください。
修正
- ダウンロードの資格情報がログやエラー出力に含まれないようになりました。
- インストールの rollback に失敗した場合もバックアップを削除せず保持するようになりました。インストールを参照してください。
ローカル関数
- ローカル関数(実験的) — 指定したディレクトリに置いた
.ts/.jsファイルが MCP tools と HTTP endpoint の両方になり、別途サービスを立てずに agent がサーバー側の処理(ffmpeg や、そのサーバー自身の LLM / STT / TTS generator)を実行できます。1 ファイル 1 関数で、MCP がそのまま受け取る JSON Schema 宣言、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 を参照してください。
修正
- セッションのアップロードには一意の保存ファイル名が付き、同一セッション内の 2 つのファイルが上書きし合わなくなりました。
- LLM、STT、ONNX backend のモデルダウンロードはサーバーのキャッシュディレクトリ内に限定されます。
- Generator の終了処理をセッションごとに認可し参照カウントするようにしたため、同じモデルを 2 回起動したセッションでも正しく解放されます。
バックエンド
- ONNX バックエンド — Generator STT・TTS のワークロードを transformers.js と ONNX Runtime 経由で BRICKS Buttress にオフロードできるようになりました。CUDA・CoreML・DirectML・CPU のハードウェア自動検出と、メモリを考慮したモデル選択に対応します。設定を参照してください。
- Parakeet エンジン — GGML STT バックエンドが Whisper と NVIDIA Parakeet の両方に対応し、対応エンジンを広告するため旧クライアントは安全にフォールバックします。
自動検出
- Web の LAN 自動検出 — 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
- バイナリペイロードのシリアライズ —
ArrayBufferペイロード(RealtimeTranscriber など)と二進数の認証トークンを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 でトークンを検証。/buttress/rpc、/oai-compat、/anthropic-messages、ファイル upload/download エンドポイントは認証必須に。詳しくはワークスペースバインディングを参照してください。
検出
- LAN 自動検出 — Launcher は複数サーバープール(90 秒 TTL、ハードウェア能力で順位付け)から選択し、ワークスペースに紐付いたサーバーのみを信頼します。詳しくは自動検出を参照してください。
- 署名付き UDP ANNOUNCE — 各サーバーが Ed25519 で署名し、LAN 上のなりすましを防止。
PROTOCOL_VERSIONを 2.0 に更新。アップグレード後はbricks buttress bindを再実行しサーバーを再起動してください。
互換エンドポイント
- TOML 設定フラグ
[openai_compat] enabledと[anthropic_messages] enabledで実験的な互換エンドポイントを有効化可能に。詳しくは設定を参照してください。