Skip to main content

视图扩展

视图扩展(View Extension)是插件向 Xpert 宿主界面提供可交互视图的标准协议。它定义视图出现在哪里、何时可见、能够读取哪些数据、允许执行哪些操作,以及由哪种方式完成渲染。 对于 Assistant 工作台,远程组件(Remote Component)是视图扩展的一种渲染方式。它负责 iframe 中的自定义前端 UI;视图扩展负责宿主插槽、功能激活、权限、数据和操作等完整契约。

核心概念

远程组件不是独立的插件类型,也不能脱离视图清单单独注册。完整的工作台 UI 通常由服务端视图提供器和前端远程组件共同组成。

宿主与插槽

hostType 表示宿主类型。平台可以提供 agentprojectknowledgebaseintegrationsandbox 等宿主。 Assistant 工作台使用 agent 宿主,常用插槽包括: 插件只能向宿主已经声明的插槽提供视图。插槽描述产品位置,不应包含插件业务名称。

功能激活

Assistant 工作台插槽要求视图声明 activation.requiredFeatures。功能(Feature)是连接 Agent 能力和人类工作台界面的能力令牌:
视图应依赖拥有其数据与操作的领域能力。移除对应中间件后,它提供的 Agent 工具和工作台视图应一起消失。

视图提供器

插件通过 @ViewExtensionProvider(providerKey) 注册视图提供器:
提供器中的 viewKey 是本地清单键。平台公开的完整视图键为:
例如 contract_review 提供器中的 review 视图,对外键为 contract_review__review

选择渲染方式

视图清单的 view.type 决定渲染方式: 优先选择能满足需求的声明式视图。只有在交互和布局明显超出平台表格、列表或表单能力时,才使用远程组件。

视图清单是能力白名单

视图清单不仅描述页面,还声明远程组件能够使用的宿主能力: 远程组件不能把宿主桥接当作任意远程调用通道。每项数据访问或操作都必须先在清单中声明,再由宿主和提供器执行。

打开方式与渲染方式彼此独立

视图可以由宿主枚举插槽后展示,也可以由工具结果中的 xpert.extension_view 按需打开。这只是入口不同,不会改变视图的清单、权限、数据提供器或远程组件实现。 工具结果只应携带公开视图键、初始查询和业务参数,不应包含访问令牌、API 地址、Assistant ID、租户 ID 或组织 ID。

安全边界

  • 宿主根据已认证的服务端状态解析 hostTypehostId、租户、组织和用户。
  • 清单由平台校验并按功能激活和权限过滤。
  • 远程组件不接收访问令牌、平台 API 地址或宿主内部身份字段。
  • 提供器必须重新校验业务权限,不能只信任 iframe 传入的业务 ID。
  • JSON 操作用于有界结构化数据;文件和大对象使用专用能力。

下一步