NESTADeveloper
全部站点
DEVELOPER GUIDE · 04

技术架构

NESTA Web、AI Gateway、流式协议、数据边界与文档站构建架构。

NESTA 的运行时由 Web PWA 与 AI Gateway 组成,权威知识与独立静态站点构成只读的产品和工程说明层。浏览器不持有模型服务密钥,模型输出也不能直接绕过产品状态机改变家庭状态。

用户通过 Web PWA 使用 NESTA,Web 经同源 API 访问 AI Gateway;Gateway 适配模型服务,知识库经独立构建器生成静态站点

Web PWA

Web 工程按以下方向组织:

app -> pages -> features -> entities
  \       \          \--> shared
   \--> application -> features/entities/shared
  • app/ 负责启动、依赖装配、错误边界、导航、浏览器历史和 PWA 生命周期。
  • pages/ 只组合公开功能接口,不承载领域模型。
  • application/ 协调跨功能状态与用例。
  • features/ 是垂直功能切片,只通过本地公共入口对外暴露能力。
  • entities/ 保存共享领域类型,shared/ 保存业务中立的 UI、传输、存储和工具基础设施。

ESLint 约束高层依赖方向。功能可以依赖实体和共享层,但不能导入其他功能的内部实现、页面或启动层。

可替换的数据边界

活动、成员、记忆、空间、服务和对话通过各功能拥有的 Repository 接口访问数据。内部构建绑定确定性的 Mock 实现;后续真实后端适配器必须通过相同契约测试,页面组件不根据数据源模式分支。

Gateway 对模型供应商暴露中立的流式接口。Mock、混合和真实运行模式共享同一内部事件协议;供应商凭据只存在于服务端,缺失凭据时真实模式必须明确失败。

流式对话与 A2UI

  • 浏览器通过同源 /api/** 请求 Gateway,并以 SSE 接收流式事件。
  • Gateway 负责请求大小、家庭边界、幂等、超时和速率限制。
  • 私聊和明确提及 NESTA 的家庭频道回复可以携带受约束的 A2UI 表面。
  • Gateway 拥有工具参数校验、可信数据和动作授权;浏览器再次校验事件和组件目录。
  • 模型不能提供任意组件、脚本、HTML、远程媒体或未登记 URL,也不能直接执行高风险家庭动作。

安全与持久化边界

  • 日志只记录请求标识、路由、状态和耗时,不记录提示词正文。
  • Markdown 渲染禁用原始 HTML;任何外部跳转由白名单或可信映射产生。
  • 浏览器可以缓存应用壳、对话历史和已完成的紧凑 A2UI 快照,但 /api/** 始终使用网络请求。
  • Service Worker 更新等待用户确认,避免正在进行的流被新版本强制刷新。

文档与网站链路

Guide、Product、Design 和 Dev 都是独立静态站点。各构建器只读取自己的 knowledge/ 来源与共享 Token,生成可重复构建的静态文件;NESTA 主站只读取站点注册表。网站实现和发布产物都不能成为规范来源。