Files
story/docs/volc-hardware-agent-migration.architecture.json
Codex Local 0c2151ace9
ci / verify (push) Canceled after 0s
chore: checkpoint 第一版
2026-09-06 17:04:11 +08:00

231 lines
5.7 KiB
JSON

{
"schema_version": 1,
"diagram_type": "architecture",
"meta": {
"title": "火山硬件对话智能体迁移后目标架构",
"locale": "zh-CN",
"quality_profile": "showcase",
"viewBox": [1360, 820]
},
"components": [
{
"id": "elder",
"type": "external",
"label": "长者用户",
"sublabel": "说话、打断、挂机",
"pos": [40, 230],
"size": [130, 72]
},
{
"id": "device",
"type": "frontend",
"label": "陪伴硬件",
"sublabel": "麦克风、扬声器、本地队列",
"pos": [230, 230],
"size": [180, 72]
},
{
"id": "hardwareSdk",
"type": "frontend",
"label": "火山硬件智能体 SDK",
"sublabel": "高质量 UDP/RTC 主链",
"pos": [490, 230],
"size": [200, 72]
},
{
"id": "volcAgent",
"type": "external",
"label": "火山硬件对话智能体",
"sublabel": "Bot、ASR/LLM/TTS、会话",
"pos": [770, 230],
"size": [220, 72]
},
{
"id": "deviceRegistry",
"type": "external",
"label": "火山产品与设备管理",
"sublabel": "Product、Device、License、Bot 绑定",
"pos": [770, 50],
"size": [220, 72]
},
{
"id": "platformApi",
"type": "backend",
"label": "平台会话控制面",
"sublabel": "授权、冻结快照、心跳、停止",
"pos": [490, 470],
"size": [200, 76]
},
{
"id": "toolGateway",
"type": "security",
"label": "工具与记忆网关",
"sublabel": "MCP/Function Calling、短期会话令牌",
"pos": [1070, 230],
"size": [220, 76]
},
{
"id": "dataStore",
"type": "database",
"label": "业务主数据",
"sublabel": "PostgreSQL、pgvector、Redis",
"pos": [770, 470],
"size": [220, 76]
},
{
"id": "asyncPipeline",
"type": "backend",
"label": "异步内容与运营流水线",
"sublabel": "字幕、摘要、故事、费用、审计",
"pos": [1070, 470],
"size": [220, 76]
},
{
"id": "objectStorage",
"type": "database",
"label": "私有对象存储",
"sublabel": "可选双轨录音与导出",
"pos": [230, 650],
"size": [180, 72]
},
{
"id": "webApps",
"type": "frontend",
"label": "家庭端与运营端",
"sublabel": "设备、通话、隐私、配置、诊断",
"pos": [490, 650],
"size": [200, 72]
}
],
"boundaries": [
{
"kind": "region",
"label": "设备侧",
"wraps": ["device", "hardwareSdk"],
"pad": 22
},
{
"kind": "region",
"label": "火山引擎托管域",
"wraps": ["volcAgent", "deviceRegistry"],
"pad": 22
},
{
"kind": "security-group",
"label": "自有平台可信域(业务事实唯一主库)",
"wraps": ["platformApi", "toolGateway", "dataStore", "asyncPipeline", "objectStorage", "webApps"],
"pad": 24
}
],
"connections": [
{
"id": "humanVoice",
"from": "elder",
"to": "device",
"label": "双向语音",
"variant": "emphasis"
},
{
"id": "audioFrames",
"from": "device",
"to": "hardwareSdk",
"label": "PCM/设备事件",
"variant": "emphasis"
},
{
"id": "agentLink",
"from": "hardwareSdk",
"to": "volcAgent",
"label": "SDK 直连会话",
"variant": "emphasis",
"labelAt": [730, 316]
},
{
"id": "provisioning",
"from": "deviceRegistry",
"to": "hardwareSdk",
"label": "设备凭证与 Bot 绑定",
"variant": "security"
},
{
"id": "prepareSession",
"from": "device",
"to": "platformApi",
"label": "HTTPS 会话控制、字幕与状态",
"variant": "security"
},
{
"id": "toolCalls",
"from": "volcAgent",
"to": "toolGateway",
"label": "MCP / FC",
"variant": "security"
},
{
"id": "toolData",
"from": "toolGateway",
"to": "dataStore",
"label": "租户与长者范围查询",
"variant": "security"
},
{
"id": "conversationFacts",
"from": "platformApi",
"to": "dataStore",
"label": "会话/授权快照",
"variant": "emphasis"
},
{
"id": "asyncJobs",
"from": "dataStore",
"to": "asyncPipeline",
"label": "Outbox 可靠任务",
"variant": "dashed",
"labelAt": [1030, 560]
},
{
"id": "mediaUpload",
"from": "device",
"to": "objectStorage",
"label": "可选加密录音直传",
"variant": "dashed",
"fromSide": "bottom",
"toSide": "top",
"labelAt": [320, 316]
},
{
"id": "webControl",
"from": "webApps",
"to": "platformApi",
"label": "HTTPS/OIDC",
"variant": "security"
}
],
"cards": [
{
"dot": "emerald",
"title": "保留不动",
"items": [
"平台继续掌握设备、授权、通话、记忆、费用和审计主数据",
"字幕后的摘要、故事、人工确认记忆和隐私删除链路继续复用"
]
},
{
"dot": "amber",
"title": "替换范围",
"items": [
"设备不再领取平台 RTC Token,也不再等待云端 StartVoiceChat",
"火山硬件 SDK 直接建立会话,旧 RTC 房间与 Agent Task 仅保留兼容期"
]
},
{
"dot": "rose",
"title": "上线硬门槛",
"items": [
"必须验证服务端强制停话、设备凭证吊销、字幕/用量回传和近远端录音能力",
"任何一项无法闭环时,先限定为试点能力,不替换现网主链"
]
}
]
}