本章作为系统的“唯一事实来源(Single Source of Truth)”的补充,旨在将散落在各章节中的数据定义、接口契约、策略模板和测试基准进行标准化归档。
主要受众与用途:
本章原则 (Rule of Thumb):
“如果一定义没有写在附录里,它就不存在。” —— 所有的枚举值、错误码、工具名称必须在此处通过 Review 才能进入代码库。
| 缩写 | 全称 | 中文 | 详细定义 | | :— | :— | :— | :— | | IVI | In-Vehicle Infotainment | 车载娱乐系统 | 运行 Android/Linux 的主控单元,承载 GUI 和语音客户端。 | | T-Box | Telematics Box | 远程通信终端 | 负责车辆与云端的 4G/5G 通信,通常也是远程车控的通道。 | | CDC | Cockpit Domain Controller | 座舱域控制器 | 统管座舱内屏幕、语音、摄像头的算力平台(如高通 8295)。 | | SOA | Service-Oriented Architecture | 面向服务的架构 | 车端软件架构风格,将“车窗控制”、“空调控制”封装为标准服务供 AI 调用。 | | DSP | Digital Signal Processor | 数字信号处理器 | 处理音频前端信号(回声消除、降噪)的专用硬件。 |
| 缩写 | 全称 | 中文 | 详细定义 | | :— | :— | :— | :— | | DMS | Driver Monitoring System | 驾驶员监控 | 监测视线(Gaze)、疲劳(Fatigue)、分心(Distraction)、打电话等。 | | OMS | Occupancy Monitoring System | 乘客监控 | 监测后排乘客数量、位置、儿童遗留(CPD)、宠物、特定手势。 | | VAD | Voice Activity Detection | 语音活动检测 | 判定当前音频帧是否为人声,是 Realtime API 断句和打断的核心依据。 | | Barge-in | Barge-in | 打断/抢话 | 用户在播报过程中说话,系统立即停止播报并响应新指令的能力。 | | ROI | Region of Interest | 感兴趣区域 | 图像传输优化策略,只裁剪出包含人脸或屏幕变化的区域上传,节省带宽。 |
| 缩写 | 全称 | 中文 | 详细定义 | | :— | :— | :— | :— | | Realtime API | OpenAI Realtime API | 实时接口 | 基于 WebSocket 的流式接口支持 Audio-to-Audio,极大降低延迟。 | | Turn-taking | Turn-taking | 轮次交替 | 决定“谁在说话”的逻辑(服务器端 VAD 或 客户端按键)。 | | ToolCall | Function Calling | 工具调用 | 模型输出结构化 JSON 指令以操作物理世界的机制。 | | Grounding | Grounding / Attribution | 溯源/依据 | 模型回答必须基于检索到的文档(RAG)或视觉证据,杜绝幻觉。 | | Guardrails | AI Safety Guardrails | 安全护栏 | 独立于 LLM 的确定性规则层,用于拦截高危指令(如高速开门)。 | | Handoff | Agent Handoff | 代理交接 | 从一个 Agent(如闲聊)切换到另一个 Agent(如车控)的过程。 |
本节定义核心数据结构的 Schema。所有 JSON 字段在实现时必须严格遵守。
用于在 session.update 或 Tool 调用前注入的上下文信息。
// Event: ContextUpdate (由客户端推送到 Realtime Session)
{
"type": "input_audio_buffer.append", // 或者是自定义的 context 事件
"context_payload": {
"vehicle_state": {
"speed_kmh": 65,
"gear": "D",
"steering_angle": -15.5,
"location": {"lat": 39.9, "lng": 116.4},
"windows": {"fl": 0, "fr": 0, "rl": 100, "rr": 100} // 0=Closed, 100=Open
},
"perception_dms": {
"driver_id": "usr_12345",
"attention_state": "focused", // distracted, drowsy
"gaze_target": "road", // cluster, center_screen, phone
"confidence": 0.98
},
"perception_oms": [
{"seat_id": "row2_left", "object": "child", "action": "sleeping"},
{"seat_id": "row2_right", "object": "empty"}
],
"screen_context": {
"current_app_package": "com.tesla.music",
"visible_widgets": ["play_button", "playlist_view"],
"ocr_summary": "Playing: Let It Be - Beatles"
}
}
}
这部分对应 Realtime API 的 tools 定义。
hvac_seat_control)zone: enum [“driver”, “passenger”, “rear_left”, “rear_right”, “all”]device: enum [“ac_temp”, “ac_fan”, “seat_heat”, “seat_vent”, “window”]action: enum [“set”, “increase”, “decrease”, “on”, “off”]value: number (可选,如温度值 22.5,或档位 1-3)status: “success” |
“failed” | “pending_confirmation” |
msg: “已将主驾温度设定为 24 度”media_manager)intent: enum [“play_music”, “play_news”, “next”, “previous”, “pause”]keyword: string (如 “周杰伦的歌”, “财经新闻”)source: enum [“apple_music”, “spotify”, “bluetooth”, “usb”] (可选)nav_commander)poi_name: stringpoi_category: string (如 “加油站”, “川菜”)action: enum [“navigate_to”, “add_waypoint”, “cancel_nav”, “overview”]GUI Agent 输出的原子指令,用于驱动 Android Accessibility 服务。
// Tool: gui_actuator
{
"action_type": "tap", // tap, scroll, input_text, back, home, screenshot
"target_element": {
"text_match": "确 认", // 模糊匹配文本
"resource_id": "com.app:id/confirm_btn",
"coordinates": {"x": 500, "y": 800} // 兜底坐标
},
"scroll_params": {
"direction": "down", // up, down, left, right
"distance": 0.5 // 屏幕高度的比例
},
"input_text": "San Francisco" // 仅用于 input_text 动作
}
content: 文本内容metadata:
source: “Manual_v2025_Q1.pdf”page: 42section: “胎压监测”applicable_models: [“ModelX”, “ModelY”]chunks: List of chunksrelevance_score: 0.0 - 1.0safety_warning: Boolean (是否涉及高危操作维修)这些 Prompt 片段需硬编码到 System Message 或 Agents SDK 的 Instructions 中。
Goal: 简洁、专业、不啰嗦(车载场景核心要求)。
ROLE: You are an advanced AI In-Car Assistant. TONE: Concise, professional, helpful, but NOT chatty. CONSTRAINT 1: Keep spoken responses under 2 sentences unless explaining a complex manual entry. CONSTRAINT 2: When executing a tool, acknowledge briefly (e.g., "Turning on seat heater") instead of asking "I will now turn on the seat heater, is that what you want?" unless it is a High-Risk action. CONSTRAINT 3: If you don't know, say "I don't know" or "I can't check that yet". Do not hallucinate vehicle features.
Goal: 防止行驶中发生危险。
SAFETY PROTOCOL: 1. CHECK [Vehicle_Speed] before granting requests. 2. BLOCK: Open Trunk, Open Door, Fold Mirrors, Watch Video, Text Input IF speed > 5 km/h. - RESPONSE: "为了安全,行驶中无法操作此功能。" (For safety, I cannot do that while driving.) 3. ALLOW: Audio, HVAC, Nav, Phone Call at any speed. 4. CONFIRM: For "Open Windows" or "Sunroof" at high speeds (>80km/h), ask: "车速较快,开窗风噪会很大,确定要打开吗?"
Goal: 区分“看到的事实”和“推测”。
VISION HANDLING: 1. When user asks "What is this?", refer to the [Camera/Screen Snapshot]. 2. If identifying a Warning Light: - Identify the icon/color explicitly. - Search RAG for the meaning. - Advise on urgency (Stop immediately vs. Check later). 3. If identifying an external object (Shop, Landmark): - State strictly what is visible. Do not guess opening hours unless calling a map tool.
用于自动化回归测试(Eval)的标准场景。
hvac_seat_control(action="increase", device="ac_temp", zone="driver", value=2)hvac_seat_control(action="on", device="seat_heat", zone="driver", level=2)gui_actuator(type="tap", element_desc="4.9分, 肯德基")ToolError: ElementNotFound (可能列表滑动了)gui_actuator(type="scroll", direction="down") -> Retry check.| 风险 ID | 风险描述 | 严重性 | 触发场景 | 技术/产品对策 (Mitigation) |
|---|---|---|---|---|
| R-01 | 误识别导致车窗开启 | High | 高速雨天,ASR 误听成“开窗”。 | 二次确认:检测到雨刮器工作或车速>80时,必须由 TTS 反问“现在下雨/车速较快,确定开窗吗?” |
| R-02 | ToolCall 死循环 | Medium | 模型反复调用同一个失败的工具(如连不上蓝牙)。 | 熔断机制:同一 Session 内相同工具连续失败 3 次,强制停止并回复“操作失败,请手动尝试”。 |
| R-03 | GUI 支付被盗刷 | Critical | 语音让 AI 点餐并直接支付。 | 支付隔离:GUI Agent 操作到“支付页”即停止,播报“请您确认金额并输入密码支付”,AI 绝不触碰密码键盘。 |
| R-04 | 隐私泄露 (OMS) | Critical | 后排情侣亲密行为被上传云端。 | 端侧处理:OMS 视频流严禁出车。仅上传结构数据(如 Occupant: Count=2, Action=Interaction)或经骨架提取后的数据。 |
| R-05 | 幻觉导致的错误维保 | High | AI 建议用户使用错误的冷却液型号。 | 引用强制:涉及维保问题,若 RAG 无 100% 匹配文档,必须回答“手册中未找到相关信息,请咨询专业人员”。 |
rtt 指标。server_vad 未开启。turn_detection: { type: "server_vad" } 已启用。本章是项目的基线(Baseline)。