研究 @full-self-browsing

Concierge.

面向智能體就緒 Web 應用的安全動作層。

型別化、經同意把關的操作,讓 AI 執行你的網頁應用;而不必接管瀏覽器。

▽0.2.1TypeScript-firstESM only · Node >=22.12MIT
安裝

三個套件,同一發行集

先安裝用於框架無關整合的核心執行階段,再加入對應轉接器。請一併安裝與升級,讓每個轉接器都解析到同一份實體核心。

核心執行階段
$ pnpm add @full-self-browsing/concierge zod
含轉接器
$ pnpm add @full-self-browsing/concierge@^0.2 \ @full-self-browsing/concierge-react@^0.2 zod

版本 0.2.1 是執行階段合約 v2 上受支援的公開預覽。ReactSvelte 套件根在伺服器上是安全的;其執行階段繫結位於 /client/client.svelte。邊緣部署不屬於 0.2 支援矩陣。

為何選擇 Concierge

發布動詞,而不是頁面表面

通用瀏覽器自動化會從頁面結構、選擇器或座標重建意圖。Concierge 讓協作應用發布 AI 在此刻可以使用的精確動詞。

通用瀏覽器自動化
Concierge
點擊選擇器或座標
呼叫應用定義的動詞
從可見介面重建意圖
接收帶型別的模式與即時可用性
繼承寬泛的頁面權限
只看到目前動作目錄
把確認當成布林值
同意綁定到已審閱的承載與狀態快照
信任模型回呼去驅動瀏覽器
在分發前驗證已簽署且防重放的批次

FSB 操作不協作的網站。Concierge 是協作應用的動作層。這兩個專案涵蓋智能體瀏覽堆疊的不同部分。

運作方式

從宣告到結構化結果

01

應用定義具名動作,包含說明、輸入模式、可用性規則、效果中繼資料、遮罩政策與處理器。

02

Concierge 將作用中階段及其可用動作解析為一份帶實例本地修訂號的不可變目錄快照。

03

模型只收到該快照允許的工具。

04

Concierge 在執行前再次核對每個請求的動作,套用同意與排程規則,並拒絕過期或衝突的呼叫。

05

應用橋接執行已核准的介面操作並回傳結構化結果。

應用

動作定義、即時狀態、介面操作、身分驗證與伺服器授權。

Concierge

目錄准入、核對、同意、排程、去重、分發與工作流程。

模型整合

工具呈現、模型呼叫、工具關聯與結果傳遞。

快速開始

宣告一個動作。解析一份目錄。

把每個動作定義為具名常數,掛到一個階段,並為目前應用狀態解析一份原子目錄快照。

  • 階段、可用性、工具與修訂號一併解析
  • 只有字面值 true 才會放行動作;其他一律失敗關閉
  • 已解析目錄被深度凍結,絕不是跨執行階段權威
actions/open-project.ts
import { createBridge, createConcierge, defineAction, offPageResult } from "@full-self-browsing/concierge";
import { z } from "zod";

const projectBridge = createBridge<{
  actions: { openProject(id: string): void };
  snapshot: { activeProject(): string | null };
}>("project-ui");

const openProject = defineAction({
  name: "openProject",
  description: "Open one project in the application preview.",
  schema: z.object({ projectId: z.string().min(1).max(64) }).strict(),
  jsonSchema: {
    type: "object",
    properties: { projectId: { type: "string", minLength: 1, maxLength: 64 } },
    required: ["projectId"],
    additionalProperties: false,
  },
  redact: ({ projectId }) => ({ projectId }),
  effects: { readOnly: false, destructive: false, idempotent: true },
  handler: ({ args, bridge }) => {
    if (bridge === null) {
      return offPageResult("Project opening", "project interface");
    }
    bridge.actions.openProject(args.projectId);
    return { ok: true, message: `Opened project ${args.projectId}.` };
  },
});

const concierge = createConcierge({
  stages: [
    {
      id: "projects",
      match: (context) => context.pathname === "/projects",
      actions: [openProject],
      bridge: projectBridge,
    },
  ],
});

const catalog = concierge.resolveCatalog({ pathname: "/projects" });

// → catalog.stage · catalog.revision · catalog.tools   one snapshot
套件

核心執行階段加框架繫結

公開套件組成固定發行集,並共享執行階段合約 v2。

核心@full-self-browsing/concierge

框架無關的目錄、分發、同意、工作流程、遙測與傳輸執行階段。

React@full-self-browsing/concierge-react

React 上下文、橋接生命週期,以及包含 ConciergeActivityOverlay 的可選活動視覺。

Svelte@full-self-browsing/concierge-svelte

Svelte 上下文、橋接生命週期與回應式快照正規化。

Node.js>=22.12.0
Module formatESM only
React · React DOM^18.2.0 || ^19.0.0
Svelte^5.0.0
AI SDK core^6.0.0 || ^7.0.0
Runtime contractv2 throughout 0.2.x
整合

一個實例,多個入口

透過對應轉接器掛載同一 Concierge 實例與橋接登錄。以 getter 為基礎的狀態保持即時,直到 Concierge 為核對或同意擷取快照。

整合
執行階段入口
指引
框架無關
@full-self-browsing/concierge
使用核心執行階段並直接登錄應用橋接。
React
/concierge-react/client
提供核心實例、登錄橋接,並可選擇渲染活動疊加層。
Svelte
/concierge-svelte/client.svelte
用 Svelte 快照正規化器提供核心實例,並在初始化時登錄橋接。
AI SDK 6 & 7
/concierge/ai-sdk
把已解析目錄轉成模型工具,並關聯已完成的呼叫。
已簽署的伺服器橋接
/ai-sdk/server · /ai-sdk/browser
簽發、驗證並分發綁定到目錄摘要的短時瀏覽器批次。

原始 onToolCall 值只是顯示資料。它們從不驅動應用。已簽署橋接會驗證信封、消耗重放鍵、與即時瀏覽器目錄比較,然後才進入核心分發。

執行階段保證

執行階段堅守的邊界

Dispatch outcome

completed
nameopenProject
callIdcall_7f2c · index 0
catalogRevisionstage projects · fresh
consentbound · consumed once
dedupesession · response · callId
onDispatchredacted lifecycle
動作輸入會在執行前再次核對,有副作用的動作會經過可取消的提交視窗。
完全相同的重試共用一個 Promise,去重視窗內不能執行兩次;動作、輸入、回合或修訂號一變就回傳 identity_conflict
批次依 outputIndex 順序執行,並回傳明確的已完成或終止結果。
複合動作使用核心自有的子分發、清理、延遲與有界譜系——每條根工作流程最多 16 層巢狀、256 步。
混用 0.10.2 的安裝會在橋接登錄或分發之前失敗。
安全性與隱私

最小權限邊界,而不是身分驗證系統

安全模型

Concierge 不驗證使用者,用戶端同意紀錄也不是伺服器授權。執行受保護效果的伺服器必須獨立驗證目前主體,依現行政策授權精確動作與承載,拒絕重放,並使效果冪等或交易化。

已簽署的 AI 橋接會驗證一項短時伺服器決定,以放行一個特定瀏覽器批次。它不會讓模型輸出變得可信,不會修復 XSS 弱點,也不會把用戶端狀態變成伺服器權威。

在上線有後果的整合之前,請閱讀 SECURITY.md

遙測

已掛載的 ReactSvelte 執行階段預設會向 FSB 的彙總統計管線傳送匿名用量估計。原生整合透過僅瀏覽器的 /telemetry 入口明確掛載遙測,該入口也提供狀態與退出 APIs

遙測從不傳送動作名、參數、結果、模式、階段、頁面 URLsDOM 內容、應用名或帳戶識別。若瀏覽器儲存不可用,遙測會停止且不影響分發。

閱讀遙測隱私合約以了解承載、保留與刪除。

AI 行動,而不交出瀏覽器

TypeScript 優先、僅 ESMMIT 授權。發布在 @full-self-browsingnpm 範圍下。