Concierge.
에이전트를 위한 웹 애플리케이션의 안전한 동작 계층.
유형화되고 동의로 제한되는 동작을 통해, 브라우저를 넘겨주지 않고도 AI가 웹 앱을 조작할 수 있게 합니다.
세 개의 패키지, 하나의 릴리스 세트
프레임워크에 중립적인 통합을 위해 코어 런타임을 설치한 뒤 해당하는 어댑터를 추가하십시오. 모든 어댑터가 동일한 물리적 코어를 참조하도록 함께 설치하고 함께 업그레이드하십시오.
$ 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 기반의 지원되는 공개 미리 보기입니다. React와 Svelte 패키지 루트는 서버에서 안전하며, 런타임 바인딩은 /client과 /client.svelte에 있습니다. 엣지 배포는 0.2 지원 범위에 포함되지 않습니다.
페이지 표면이 아니라 동사를 게시하십시오
일반적인 브라우저 자동화는 페이지 구조, 선택자, 좌표로부터 의도를 재구성합니다. Concierge는 협조하는 애플리케이션이 지금 이 순간 AI가 사용할 수 있는 정확한 동사를 게시하게 합니다.
FSB는 협조하지 않는 사이트를 조작합니다. Concierge는 협조하는 애플리케이션을 위한 동작 계층입니다. 두 프로젝트는 에이전트 브라우징 스택의 서로 다른 부분을 담당합니다.
선언에서 구조화된 결과까지
애플리케이션이 설명, 입력 스키마, 가용성 규칙, 효과 메타데이터, 편집 정책, 핸들러를 갖춘 이름 있는 동작을 정의합니다.
Concierge가 활성 단계와 사용 가능한 동작을 인스턴스 로컬 리비전이 포함된 하나의 불변 카탈로그 스냅숏으로 확정합니다.
모델은 그 스냅숏이 허용한 도구만 받습니다.
Concierge가 실행 전에 요청된 모든 동작을 다시 검증하고, 동의 및 스케줄링 규칙을 적용하며, 오래되었거나 충돌하는 호출을 거부합니다.
애플리케이션 브리지가 승인된 인터페이스 작업을 수행하고 구조화된 결과를 반환합니다.
애플리케이션
동작 정의, 실시간 상태, 인터페이스 작업, 인증, 서버 권한 부여.
Concierge
카탈로그 허용, 검증, 동의, 스케줄링, 중복 제거, 전달, 워크플로.
모델 통합
도구 표현, 모델 호출, 도구 상관 관계, 결과 전달.
동작을 선언하십시오. 하나의 카탈로그를 확정하십시오.
각 동작을 이름 있는 상수로 정의하고 단계에 연결한 뒤, 현재 애플리케이션 상태에 대해 하나의 원자적 카탈로그 스냅숏을 확정하십시오.
- 단계, 가용성, 도구, 리비전이 함께 확정됩니다
- 리터럴 값 true만이 동작을 허용하며, 그 외에는 모두 차단됩니다
- 확정된 카탈로그는 깊게 동결되며 런타임을 넘는 권한이 되지 않습니다
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프레임워크에 중립적인 카탈로그, 전달, 동의, 워크플로, 텔레메트리, 전송 런타임.
@full-self-browsing/concierge-reactReact 컨텍스트, 브리지 수명 주기, 그리고 ConciergeActivityOverlay를 포함한 선택적 활동 시각화.
@full-self-browsing/concierge-svelteSvelte 컨텍스트, 브리지 수명 주기, 반응형 스냅숏 정규화.
하나의 인스턴스, 여러 진입점
동일한 Concierge 인스턴스와 브리지 레지스트리를 적절한 어댑터를 통해 마운트하십시오. 게터 기반 상태는 Concierge가 검증이나 동의를 위해 스냅숏을 캡처할 때까지 실시간으로 유지됩니다.
원시 onToolCall 값은 표시용 데이터일 뿐이며 애플리케이션을 작동시키지 않습니다. 서명된 브리지는 봉투를 검증하고, 재생 키를 소비하고, 실시간 브라우저 카탈로그와 비교한 뒤에야 코어 전달 단계로 들어갑니다.
런타임이 지키는 것
Dispatch outcome
completed인증 시스템이 아니라 최소 권한 경계
보안 모델
Concierge는 사용자를 인증하지 않으며, 클라이언트의 동의 기록은 서버의 권한 부여가 아닙니다. 보호된 효과를 수행하는 서버는 현재 주체를 독립적으로 인증하고, 현재 정책에 따라 정확한 동작과 페이로드를 승인하고, 재생을 거부하고, 그 효과를 멱등적이거나 트랜잭션적으로 만들어야 합니다.
서명된 AI 브리지는 특정 브라우저 배치 하나를 허용하겠다는 단기 서버 결정을 인증합니다. 모델의 출력을 신뢰할 수 있게 만들거나, XSS 취약점을 고치거나, 클라이언트 상태를 서버 권한으로 바꾸지는 않습니다.
SECURITY.md를 읽고 나서 중대한 통합을 배포하십시오.
텔레메트리
마운트된 React 및 Svelte 런타임은 기본적으로 켜진 익명 사용 추정치를 FSB의 집계 통계 파이프라인으로 전송합니다. 바닐라 통합은 브라우저 전용 /telemetry 진입점을 통해 텔레메트리를 명시적으로 마운트하며, 이 진입점은 상태 확인과 수신 거부 APIs도 제공합니다.
텔레메트리는 동작 이름, 인수, 결과, 스키마, 단계, 페이지 URLs, DOM 콘텐츠, 애플리케이션 이름, 계정 식별자를 결코 전송하지 않습니다. 브라우저 저장소를 사용할 수 없으면 전달에 영향을 주지 않고 텔레메트리가 중단됩니다.
텔레메트리 개인정보 계약에서 페이로드, 보관 기간, 삭제 방법을 확인하십시오.