AssemblyAI Voice Agent Hackathon 2026 · 跨境贸易询盘 → 语音口播 → 确定性引擎出单
买家从 WhatsApp 发来一条语音询盘,业务员要查产品线、把工厂价算成到岸成本(运费 · 体积重 · 关税 · MOQ · 打样与交期 · IP 授权风险),再写成英文报价单 —— 一单 20 到 40 分钟, 而且每次都要重新手算。这个项目把这段工作压成一次对话。
中文说一句:卖家是谁、要什么机型、多少量、目标价、什么时候要到。不用整理成表格。
匹配产品目录 → 工厂价 → 体积重运费 → 关税 → 到岸成本 → 与目标价的差额。全程纯函数,不经过模型。
先语音把结论和风险讲回来,屏幕上同时落一份可以直接转发给海外买家的英文报价单。
语音链路全部落在 Voice Agent API 上,没有自建 STT/TTS,也没有第二家模型供应商。
wss://agents.assemblyai.com/v1/ws —— 听、想、说共用一条连接,中间没有第三方胶水层。
wss://agents.assemblyai.com/v1/wsPOST /v1/agents 一次性写入 system prompt、音色、greeting、26 个行业 keyterm(FOB / CIF / MOQ / 体积重 / 到岸成本 / 授权链 …)和两个 JSON-Schema 工具。
POST /v1/agents · PUT /v1/agents/{id}analyze_inquiry 解析询盘并算到岸成本;generate_quotation 出报价单,也能按一句口述修正重新报价。浏览器执行,结果原路回同一条 socket。
tool.call → 本地引擎 → tool.resultGET /v1/sessions/{id} 返回 artifacts 与逐轮 timeline(含 time_to_first_audio_ms、每次 tool call 的耗时)。演示视频里的数字就是从它读出来的。
GET /v1/sessions/{id}模型只负责听、决定调什么工具、以及把结果说出来 —— 它不被允许编价格。 这不是一开始就这么设计的:第一版让模型直接写整份报价单,结果 3,924 字符的文档 被静默截断成 356 字符,而且两次运行数字会漂移。改成确定性引擎之后, 输出的每一份报价单都要先过一遍自检(不含中文、长度足够、含价格、含贸易术语、 含关键条款、结尾没被截断),不合格就自己拒绝自己。
lib/quoteDocument.ts报价单生成器 · 纯函数 + 自检
lib/products.ts16 个 SKU 的华强北真实价目(工厂价 / FOB / 体积重 / 关税)
lib/revision.ts口述改价的结构化解析(「降到 1 块,改 DDP」)
全部取自线上部署的真实会话与真实 HTTP 请求,仓库里有可复现的脚本。