mcpField
H
hume-evi

hume-evi

github.com/calesthioAgent 工作流219100 次安装15 周前更新
代码仓库

关于 hume-evi

hume-evi 是指导 Agent 设计、实现、排查和评审 Hume EVI 实时语音 Agent 的技能。它侧重实时语音交互的配置、集成与生产边界,不适用于纯离线的 TTS 工作。

主要功能

  1. 01实时语音 Agent 设计指导
  2. 02EVI 版本与模型路径选择
  3. 03配置与会话设置指导
  4. 04音频流和交互体验建议
  5. 05工具调用及边界说明

适用场景

  1. 01规划 Hume EVI 实时语音应用
  2. 02排查音频流与轮次交接问题
  3. 03选择配置、语音和模型路径

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/calesthio/generative-media-skills --skill hume-evi

安装后在 Claude Code 中输入/hume-evi确认已加载。

附带文件EVAL.md

详细介绍

Hume EVI 生产指南

当任务涉及设计、实现、排查故障或评审 Hume Empathic Voice Interface(EVI)实时语音 Agent 时,请使用此技能。除非用户明确在配置 EVI 语音或比较 EVI 与 TTS,否则不要将其用于仅限离线的 Hume Text-to-Speech/Octave 工作。

Hume 的 EVI 是一个实时语音到语音的 Agent 接口。它会流式传输用户音频、测量富有表现力的声音变化、生成语言回复,并生成富有表现力的助手语音。应将其视为实时对话系统,而不是批量转录或批量 TTS API。除非明确注明来源日期,否则以下文档事实均已于 2026-07-10 核实。

主要官方来源:

能力边界

有文档记录的事实:

请勿声称:

  • EVI 能诊断用户的内在情绪状态。Hume 自己的用例指南指出,表达标签应被视为对复杂表达行为的测量,而不是对某人感受的直接推断。来源:https://dev.hume.ai/docs/resources/use-case-guidelines
  • EVI 支持上传完整音频文件作为实时对话输入。实时 Chat 端点要求以分块方式流式传输;Hume 错误 E0723 会将完整音频文件标记为无效的传入音频模式。来源:https://dev.hume.ai/docs/resources/errors
  • 未配置用于工具调用的补充 LLM 或自定义 LLM 时,工具调用仍然有效。
  • 仅仅因为 Hume 有与 HIPAA 相关的功能,EVI Agent 就符合 HIPAA 要求。Hume 的条款要求,受保护实体或业务伙伴在提供 PHI 前必须取得明确的书面协议/BAA。来源:https://www.hume.ai/terms-of-use and https://dev.hume.ai/docs/resources/privacy

选择 EVI 版本和模型路径

截至 2026-07-10,Hume 文档列出的受支持 EVI 版本为 EVI 3 和 EVI 4-mini;EVI 1 和 EVI 2 已于 2025-08-30 终止支持。如果省略 config_id,Chat 默认使用 EVI 3。来源:https://dev.hume.ai/docs/speech-to-speech-evi/configuration/evi-version

在以下情况下使用 EVI 3:

  • Agent 应使用 Hume 的原生语音语言模型以英语运行,并且能够受益于快速响应。
  • 你希望使用原生 EVI 响应生成,而无需外部 LLM。
  • 你需要最广泛的文档支持,以实现快速、情绪响应灵敏的英语语音 Agent 行为。
  • 应用对外部 LLM 成本或第三方 LLM 数据流转较为敏感。

在以下情况下使用 EVI 4-mini:

  • Agent 必须支持 Hume 文档列出的 EVI 4-mini 语言之一:英语、日语、韩语、西班牙语、法语、葡萄牙语、意大利语、德语、俄语、印地语或阿拉伯语。
  • 你接受 EVI 4-mini 需要补充 LLM 且不支持快速响应这一点,Hume 的 EVI 版本比较文档对此有说明。
  • 你希望获得 Hume 文档所述的 EVI 4-mini 延迟改进:每次响应的模型延迟约降低 100 ms。

在以下情况下使用补充 LLM:

  • 需要使用工具/函数调用。
  • 该领域需要复杂推理、较长的系统提示词、严格的策略逻辑,或需要放在 LLM 层中的领域知识。
  • 你需要特定于提供商的功能,例如网络搜索、结构化函数调用,或已在其他场景中验证过的模型行为。

在以下情况下使用自定义语言模型(CLM):

  • 应用需要在助手文本由 EVI 播报之前直接控制这些文本。
  • 法规或品牌要求需要后处理、确定性路由,或使用专有模型。
  • 你需要将语言生成账号、日志记录或策略执行保留在 Hume 管理的外部 LLM 使用范围之外。

生产环境启发式建议:对于带工具的客户支持 Agent,如果仅支持英语,可从 EVI 3 搭配快速补充 LLM 开始;如果多语言支持是硬性要求,则从 EVI 4-mini 搭配快速补充 LLM 开始。在作出决定前,使用用户的目标设备测量实际的首个令牌时间和插话行为。

配置项

持久 EVI 配置经过版本控制,可包含:

  • EVI 版本
  • 语音
  • 系统提示词
  • 语言模型
  • 用户定义的工具和内置工具
  • 快速响应,仅适用于 EVI 3
  • 轮次检测
  • 打断灵敏度
  • 事件消息
  • 超时
  • Webhook

来源:https://dev.hume.ai/docs/speech-to-speech-evi/configuration/build-a-configuration

会话设置是临时的,仅适用于当前 Chat。它们可在 Chat 初始化时提供,也可在 Chat 期间通过 session_settings 消息发送。它们可以覆盖或提供特定于会话的语音、提示词、上下文、音频格式、工具、内置工具、动态变量、第三方 LLM API 密钥以及自定义会话 ID。来源:https://dev.hume.ai/docs/speech-to-speech-evi/configuration/session-settings

使用持久配置来管理受发布流程控制的 Agent 行为:

  • 稳定的语音和角色设定
  • 经审核的系统提示词
  • 允许使用的工具
  • 语言模型选择
  • 轮流对话和打断策略
  • 超时策略
  • Webhook 订阅

使用会话设置来提供每次调用的上下文:

  • 用户姓名、地区设置、套餐等级、当前账号状态
  • 临时的“用户刚刚点击了 X”上下文
  • 特定于会话的工具启用/禁用设置
  • 为选定角色覆盖语音
  • 自定义会话关联 ID
  • 客户持有的补充 LLM API 密钥

不要仅将关键安全或合规要求放在临时会话上下文中。应将不可妥协的规则写入配置提示词,并通过工具/后端策略加以执行。

音频与实时 UX 要求

已记录的事实:

生产环境启发式建议:

  • 对于 Web 原型和生产级 Web 应用,除非有理由自行管理音频队列,否则优先使用 React SDK。
  • 尽可能将 WebSocket、麦克风采集和播放流程保留在客户端。出于安全或电话通信的需要,可能必须通过后端代理,但这会增加延迟和故障模式。
  • 收集 QA 跟踪信息,包括设备/浏览器/OS、麦克风、耳机/扬声器模式、丢包、缓冲区大小、首段音频到达时间、中断延迟和最终转录文本。
  • 将糟糕的声学回声消除视为产品缺陷,而非模型缺陷。它会造成错误的用户打断,并可能降低韵律测量的准确性。

轮流发言、中断与暂停

EVI 支持中断(插话)。用户在助手回应时说话,EVI 会检测到中断,停止生成并流式传输当前回应,然后向客户端发送 user_interruption。客户端也必须停止本地播放并清除排队的助手音频,否则用户仍会听到旧回应。来源:https://dev.hume.ai/docs/speech-to-speech-evi/features/interruptibility

Hume 文档中介绍的轮次检测参数:

  • end_of_turn_silence_ms:默认值为 800 ms,范围为 500-3000 ms。值越低,回应越快,但越容易在用户尚未说完时插话;值越高,用户停顿的空间越大。
  • speech_detection_threshold:默认值为 0.5,范围为 0.0-1.0。值越低,越容易检测到轻声说话,但也可能被噪声触发;值越高,误触发越少,但也可能漏掉轻声说话。
  • prefix_padding_ms:默认值为 300 ms,范围为 0-1000 ms。值越高,保留的起始音频越多。

来源:https://dev.hume.ai/docs/speech-to-speech-evi/configuration/turn-detection

Hume 文档中介绍的中断参数:

  • min_interruption_ms:默认值为 800 ms,范围为 50-2000 ms。值越低,EVI 越快让出话语权;值越高,越能减少因简短附和或噪声导致的误中断。

来源:https://dev.hume.ai/docs/speech-to-speech-evi/configuration/interruption

如果 EVI 已结束生成回应,但排队的音频仍在播放,导致浏览器播放中断延迟,可在 WebSocket 上使用 verbose_transcription=true。Hume 文档说明,可利用临时 user_message 事件更早停止播放,但转录逻辑必须忽略或专门处理 interim: true。来源:https://dev.hume.ai/docs/speech-to-speech-evi/guides/audio

如果产品需要在继续监听的同时暂缓助手回应,请使用 pause_assistant_message / resume_assistant_message。暂停期间,EVI 会继续监听并转录;恢复后,EVI 会结合暂停期间收到的用户输入作出回应。来源:https://dev.hume.ai/docs/speech-to-speech-evi/features/pause-responses

生产环境启发式建议:

  • 对于面试、辅导、类似心理咨询的反思对话和语言学习,可从更耐心的轮流发言设置开始(end_of_turn_silence_ms 约为 1500-2000 ms),并采用更稳健的中断设置(min_interruption_ms 约为 1000-1500 ms)。
  • 对于日程安排、简短问答和命令式界面,可从响应更快的轮流发言设置开始(end_of_turn_silence_ms 约为 500-800 ms),并采用更灵敏的中断设置(min_interruption_ms 约为 100-300 ms)。
  • 对于嘈杂的公共环境,可提高 speech_detection_threshold,并使用实际的背景噪声录音进行测试。
  • 应结合录制的会话和用户感受来调整,而不仅仅查看日志:“感觉被打断”“难以打断”“被抢话”和“等得太久”是不同的故障模式。

为富有同理心的语音 Agent 编写提示词

EVI 提示词应设定角色、语气、节奏、边界、升级处理方式和语音行为。Hume 的提示词指南指出,原生 SLM 可在实时对话中同时生成语言和语音,而补充使用的 LLM 通常更擅长复杂推理、长提示词和工具调用。来源:https://dev.hume.ai/docs/speech-to-speech-evi/guides/prompting

为口语交互编写提示词:

  • 使用短句。
  • 一次只问一个问题。
  • 优先使用明确的对话状态,而不是长段落。
  • 说明遇到不确定、用户 distress、中断、沉默和工具故障时应如何回应。
  • 指明何时应停止说话并让用户回应。
  • 除非集成包含屏幕,否则不要假设存在可视化 UI。

纳入情绪表达政策:

  • “将语音表达用作对话信号,而不是诊断依据。”
  • “如果用户听起来很沮丧,应给予支持,并通过口头交流确认问题;不要声称知道对方的感受。”
  • “不要根据声音推断受保护特征或心理健康状况。”

提示词片段示例:

You are an AI voice assistant for Acme Support. Speak naturally, warmly, and briefly.

Conversation style:
- Keep most replies under two spoken sentences unless the user asks for detail.
- Acknowledge frustration or uncertainty without claiming to know the user's emotions.
- Ask one clarifying question at a time.
- If interrupted, stop and adapt to the user's newest request.

Safety:
- Disclose that you are an AI assistant at the start of the call.
- Do not provide legal, medical, or financial advice. Offer to connect the user to a qualified professional where appropriate.
- Before taking an account action, summarize the action and ask for confirmation.

Tools:
- Use get_order_status only after collecting an order ID.
- If a tool fails, apologize briefly, say what can still be done, and offer human handoff.

工具和后端操作

已记录的事实:

生产环境中的工具设计:

  • 工具名称和描述应明确具体、范围狭窄。与聊天界面相比,语音 Agent 在发生意外操作后更难补救。
  • 对于有副作用的工具,应同时在提示词和后端中添加确认机制。例如,cancel_order_pending_confirmation 在后端收到明确确认前不应取消订单。
  • 返回简洁、适合朗读的工具结果。实时语音 Agent 不应朗读原始 JSON 或冗长的政策文本。
  • 使用结构化错误类别:unavailable、unauthorized、not_found、validation_needed、unsafe_request、provider_timeout。
  • 适当时附加 custom_session_id 以及内部用户 ID/会话 ID,以便审计关联。
  • 对于受监管的工作流,应在大模型之外执行政策管控;如果语音生成前必须约束文本,则使用自定义语言模型或后端后处理。

转录文本、数据产物和可观测性

有针对性地使用 Hume 数据产物:

  • chat_metadata 提供 chat_id 和 chat_group_id。只有在数据保留政策、隐私政策和产品要求允许时才存储这些信息。
  • chat_group_id 可通过 resumed_chat_group_id 在多个 WebSocket 会话间恢复上下文;禁用数据保留时,此功能不可用。
  • 在保留数据的情况下,聊天事件可用于重建转录文本、操作、设置变更、用户打断和表达预测。
  • 启用数据保留后,可通过拼接用户和助手的音频片段,重建单个过去对话的音频文件。
  • Webhook 可通知系统聊天开始、聊天结束和工具调用事件;请验证 HMAC 签名和时间戳,以防篡改和重放。

来源:https://dev.hume.ai/docs/speech-to-speech-evi/features/resume-chats、https://dev.hume.ai/docs/speech-to-speech-evi/features/chat-history、https://dev.hume.ai/docs/speech-to-speech-evi/features/audio-reconstruction、https://dev.hume.ai/docs/speech-to-speech-evi/configuration/webhooks

生产环境日志记录检查清单:

  • Hume chat_id、chat_group_id、config_id、配置版本、EVI 版本
  • 客户端平台、SDK 版本、浏览器/操作系统、音频格式、缓冲间隔
  • 所选语音 ID/提供商、语言/区域设置
  • 轮次检测和打断设置
  • 外部/补充大模型提供商和模型(如有使用)
  • 工具调用的开始/结束/错误时间戳,而不仅是最终结果
  • 用户告知和同意状态
  • 数据保留模式,以及是否存储音频/转录文本

默认情况下,不要存储原始音频、转录文本、表达预测或重建的通话内容。这些都是敏感数据产物。仅存储 QA/合规所需的最少信息,并尽可能进行脱敏;同时确保符合面向用户的隐私政策。

定价、限制与部署规划

截至 2026-07-10 核实的易变信息:

  • Hume 的定价页面将 EVI 3 和 EVI 4 mini 列入语音到语音套餐的访问权限。
  • Free 套餐:每月包含 5 分钟 EVI 使用时长,支持 1 个并发连接。
  • Starter:每月包含 40 分钟 EVI 使用时长,额外的 EVI 3 使用费用标为 $0.07/分钟,支持 5 个并发连接。
  • Creator:每月包含 200 分钟 EVI 使用时长,额外的 EVI 3 使用费用标为 $0.07/分钟,支持 5 个并发连接。
  • Pro:每月包含 1,200 分钟 EVI 使用时长,额外的 EVI 3 使用费用标为 $0.06/分钟,支持 10 个并发连接。
  • Scale:每月包含 5,000 分钟 EVI 使用时长,额外的 EVI 3 使用费用标为 $0.05/分钟,支持 20 个并发连接。
  • Business:每月包含 12,500 分钟 EVI 使用时长,额外的 EVI 3 使用费用标为 $0.04/分钟,支持 30 个并发连接。
  • Enterprise:包含用量、超额费用均为定制,并发连接数“满足您的一切需求”。

来源:https://www.hume.ai/pricing

计费信息:

  • Hume 订阅将 TTS、EVI 和 Voice 功能整合在一起,而非分别订阅各项产品。
  • 超出包含用量后,将按超额用量计费。
  • 使用 EVI 时,由 Hume 管理的外部 LLM 用量会产生额外费用,并计入 Hume 账单。
  • 如果开发者使用自己的 LLM API 密钥或自定义语言模型,Hume 不会对该 LLM 用量收费。

来源:https://dev.hume.ai/docs/resources/billing

生产环境建议:

  • 根据已连接的对话时长估算成本,而不仅仅是助手发言时长。
  • 如果套餐使用由 Hume 管理的外部 LLM,或开发者自有的 LLM 密钥,请单独预留外部 LLM 费用。
  • 上线前对并发会话进行负载测试。并发连接限制属于产品限制,不只是计费标签。
  • 设计平稳的接入控制:并发数用尽时,可采用排队、转接人工、预约回拨或文字聊天等方案。

隐私、同意、安全与权利

有据可查的事实:

  • Hume 说明,EVI API 可选用零数据保留功能,关闭聊天历史记录/文字稿或语音录音的存储;API 使用元数据仍会保留。来源:https://dev.hume.ai/docs/resources/privacy
  • Hume 说明,用户可以选择退出将匿名化的 EVI API 交互数据用于训练。来源:https://dev.hume.ai/docs/resources/privacy
  • Hume 表示其具备 HIPAA 合规功能,并指出应向 Hume 提交 BAA/DPA 申请;其《条款》要求,受 HIPAA 管辖的实体或业务伙伴须获得明确的书面协议。来源:https://dev.hume.ai/docs/resources/privacy 和 https://www.hume.ai/terms-of-use
  • Hume 的《可接受使用政策》禁止未经许可冒充他人,也禁止在未获得明确肯定同意的情况下生成模仿他人声音的语音输出。该政策还要求,在互动中使用 AI Agent 时须予以披露,并要求关键法律、财务或医疗建议经过具备资质的专业人员审核。来源:https://www.hume.ai/acceptable-use-policy
  • 根据 Hume 的《条款》,Free 和 Starter 计划不可用于商业用途;Creator 计划及更高级别的计划在遵守政策的前提下可用于商业用途。来源:https://www.hume.ai/terms-of-use
  • Hume 的语音克隆文档要求用户仅上传自己拥有必要权利或已取得同意的语音样本,并在创建克隆时确认相关法律协议。来源:https://dev.hume.ai/docs/voice/voice-cloning

生产环境要求:

  • 在通话/聊天开始时披露 AI Agent 身份。
  • 在法律或产品政策要求的情况下,录制、存储、分析、重构或重复使用语音数据前须取得同意。
  • 对于语音克隆,须取得明确授权,并留存同意及获准用途的证明。
  • 对于敏感、高风险或用户处于困扰状态的情形,提供转接人工的途径。
  • 避免根据推断出的情绪操纵用户。使用情绪表达信号来提升清晰度并提供支持,而非利用用户的脆弱状态。
  • 不要从语音推断受保护属性、健康状况或精神状态。
  • 上线前,审查当地有关通话录音、生物识别、隐私、电话营销和无障碍服务的规定。

生产环境 QA

完善的 EVI QA 计划不应只测试“它能不能回答”。还应包括:

  • 对话流程:首次问候、信息披露、预期任务完成、澄清、拒绝、交接、结束。
  • 轮流发言:说到一半时停顿、语速快的说话者、长时间停顿、重叠说话、附和语(“嗯嗯”),以及助手播放音频时用户打断。
  • 音频:笔记本电脑麦克风、手机麦克风、耳塞式耳机、带回声的扬声器、嘈杂房间、低音量、浏览器权限被拒、麦克风拔出或权限被撤销。
  • 延迟:从用户停止说话到助手开始播放首段音频的时间、工具返回结果后助手开始说话的时间、从打断到静音的延迟。
  • 工具使用:成功、超时、参数无效、不安全操作、用户未获授权、确认副作用。
  • 隐私模式:是否开启保留、是否选择退出训练、零保留模式下无法恢复会话、聊天记录和音频重建行为。
  • 安全性:AI 披露、不诊断情绪、未经专业人员审核不得提供高风险建议、不得在未经同意的情况下模仿他人声音。
  • 成本与规模:包含的分钟数、超额费用、外部 LLM 成本、并发限制、呼叫准入行为。
  • 本地化:如果使用 EVI 4-mini,请让母语人士使用每种目标语言进行测试,并验证符合当地文化的对话规范。

将故障作为系统问题来排查:

  • 如果 EVI 打断得太早,请调整轮次检测和客户端播放;不要只改写提示词。
  • 如果用户无法打断,请在本地处理 user_interruption 和 user_message,并清空音频队列。
  • 如果工具生成的口头回复过长,请缩短工具结果,并提示 LLM 进行总结。
  • 如果使用外部 LLM 时延迟飙升,请比较各提供商和模型的 TTFT,并减少提示词和工具调用开销。
  • 如果某些群体的表达信号似乎不准确,请收集特定部署的验证数据,避免对情绪标签妄下结论。

示例:使用账户工具的英语客服 Agent

此示例适用于 Web 客服 Agent,用户会询问订单状态和退货政策。它使用 EVI 3,因为部署仅支持英语,并且需要快速、自然的客服回复;由于需要调用工具,因此还使用了补充 LLM。

配置选择:

{
  "evi_version": "3",
  "name": "acme-support-agent",
  "voice": {
    "id": "VOICE_LIBRARY_OR_CUSTOM_VOICE_ID",
    "provider": "HUME_AI"
  },
  "turn_detection": {
    "end_of_turn_silence_ms": 800,
    "speech_detection_threshold": 0.5,
    "prefix_padding_ms": 300
  },
  "interruption": {
    "min_interruption_ms": 250
  },
  "timeouts": {
    "inactivity_timeout": 120,
    "max_duration_timeout": 1800
  }
}

系统提示词:

You are Acme's AI voice support assistant. At the start, say you are an AI assistant.
Speak warmly and briefly. Use one or two short sentences unless the user asks for detail.

Use vocal tone to show attentiveness, but never claim to know the user's feelings.
If the user sounds upset or frustrated, say: "I'm sorry this has been frustrating. Let's work through it."

Before using order_status, ask for the order ID if missing.
Before taking any account-changing action, summarize it and ask for confirmation.
If a tool fails, explain the problem in plain language and offer human handoff.
Do not provide legal, medical, or financial advice.

客户端要求:

  • 在浏览器中使用 React SDK 或 TypeScript SDK。
  • 开始录音前先打开 WebSocket。
  • 使用 MediaRecorder,并将 Web 端数据块间隔设为 100 ms。
  • 将 audio_output 播放加入队列。
  • 收到 user_interruption 或最终版/中间版 user_message 时,停止当前播放并清空排队等待播放的助手音频。
  • 如果排队音频播放期间感觉打断响应延迟,请使用 verbose_transcription=true。

预期结果:

  • 助手能够快速发言、接受打断,并且只在需要时使用订单工具;不会对情绪做出缺乏依据的断言。

常见故障:

  • 嘈杂房间里误触发插话检测:提高 speech_detection_threshold 或 min_interruption_ms。
  • 工具调用后响应缓慢:缩短工具结果载荷,并选择 TTFT 更低的补充 LLM。
  • 用户打断后仍听到旧音频:修复客户端队列清理逻辑;此时服务端已停止生成。

示例:多语言旅行礼宾服务

此示例适用于 Web/移动端旅行礼宾服务,必须支持西班牙语、法语、德语和日语。由于这些目标语言均在 Hume 记录的 EVI 4-mini 语言列表中,因此使用 EVI 4-mini;由于 EVI 4-mini 需要 LLM,因此还需要补充 LLM。

配置选择:

{
  "evi_version": "4-mini",
  "name": "multilingual-travel-concierge",
  "voice": {
    "id": "CUSTOM_OR_LIBRARY_VOICE_ID",
    "provider": "CUSTOM_VOICE"
  },
  "turn_detection": {
    "end_of_turn_silence_ms": 1000,
    "speech_detection_threshold": 0.5
  },
  "interruption": {
    "min_interruption_ms": 400
  }
}

提示词片段:

You are an AI travel concierge. Begin by disclosing that you are an AI assistant.
Reply in the user's language unless they ask to switch languages.
Ask one question at a time and keep replies concise enough for speech.
Never invent booking confirmations. Use tools for availability and booking-state checks.
If the user sounds stressed, slow down and confirm the next step without claiming to know their emotion.

会话设置示例:

{
  "type": "session_settings",
  "variables": {
    "traveler_name": "Mina",
    "preferred_currency": "EUR"
  },
  "context": {
    "type": "persistent",
    "text": "The traveler is comparing flight options for September and wants refundable fares only."
  },
  "custom_session_id": "user-742-session-2026-07-10"
}

预期结果:

  • 助手保持所选语言,采用简洁的口头表达,并依靠预订工具获取准确的库存信息。

常见故障:

  • 外部 LLM 回复过长:添加更严格的口头回复长度要求,并总结工具结果。
  • 不同语言的语音不匹配:为每种目标语言创建或选择经过提示和测试的语音。
  • 文化差异导致不适配:在每个发布市场都让母语人士参与测试。

示例:通过电话服务提供商拨打电话

此示例适用于使用公共电话网络的来电者联系支持团队的场景。Hume 记录了 EVI 的 Twilio 集成,其音频指南提醒,电话系统的 mulaw 音频不受 EVI 直接支持,必须先进行转换。

架构:

Phone caller
  -> telephony media stream
  -> server bridge: auth, disclosure state, audio conversion, logging policy
  -> Hume EVI WebSocket
  -> server bridge converts/routes assistant audio
  -> caller

设计选择:

  • 使用 EVI 事件消息,在首轮对话中披露 AI 身份,并在用户无响应时主动确认。
  • 将电话音频转换为受支持的格式后再发送给 EVI。
  • 确保 max_duration_timeout 符合产品和套餐要求。
  • 使用 Hume webhook 监控聊天开始/结束和工具调用,并验证 webhook HMAC 签名和时间戳。
  • 如果要录音或留存通话记录,务必明确遵守知情同意法律,并与产品隐私声明保持一致。

预期结果:

  • 来电者会听到 AI 身份披露,Agent 可以被打断,支持日志也能将通话事件与内部案例 ID 关联起来。

可能出现的问题:

  • 音频失真或加速:采样率或编码不匹配。
  • 线路噪声导致频繁打断:提高打断持续时间和语音检测阈值。
  • 在零留存模式下缺少审计记录:这是预期情况;请谨慎选择留存模式并进行披露。

评论

支持 Markdown