大模型应用
在 ElevenLabs 平台上构建对话式语音 AI…
当需要基于 ElevenLabs 搭建语音/电话 AI 助手、配置 Agent 工具与知识库、集成 SDK 并测试部署时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
在 ElevenLabs 平台上构建对话特定
解决思路
- 安装正确的包:`npm install @elevenlabs/react`(React SDK)、`@elevenlabs/client`(浏览器+服务端 JS SDK)、`@elevenlabs/react-native`(React Native SDK)、`@elevenlabs/elevenlabs-js`(完整 API,仅服务端)、`npm install -g @elevenlabs/agents-cli`(CLI,Agents as Code)。卸载已废弃的 `@11labs/react`、`@11labs/client`。注意 `@elevenlabs/elevenlabs-js` 使用 Node.js `child_process`,不能在浏览器运行;浏览器环境用 `@elevenlabs/client` 或自建代理服务器。
- 通过 Dashboard(https://elevenlabs.io/app/conversational-ai -> Create Agent)或 CLI 创建 Agent:`elevenlabs agents init`、`elevenlabs agents add "Support Bot" --template customer-service`、编辑 `agent_configs/support-bot.json`、`elevenlabs agents push --env dev`。可用模板:`default`、`minimal`、`voice-only`、`text-only`、`customer-service`、`assistant`。配置 Voice(5000+ 音色或克隆)、LLM(GPT/Claude/Gemini/自定义)、System prompt、First message。
- 用 6 组件框架编写 System Prompt:1) Personality(身份、角色、公司、经验、特质);2) Environment(沟通渠道 phone/chat/video、环境因素、上下文适配);3) Tone(语气、正式度、使用缩写、避免术语、回复控制在 2-3 句、一次只问一个问题);4) Goal(主要目标与成功标准);5) Guardrails(禁止事项如医疗/法律/财务建议、必须事项如身份验证、升级条件);6) Tools(可用函数及使用时机,调用工具前先说明)。
- 添加客户端工具(浏览器内运行):用 `useConversation` 的 `clientTools` 定义,每个工具含 `description`、`parameters`(zod schema)、`handler` 异步函数,例如 `updateCart`(add/remove 购物车)和 `navigate`(跳转页面)。
- 添加服务端工具(webhook):JSON 配置含 `name`、`description`、`url`、`method`、`parameters`(JSON Schema)、`headers`。API key 用 `{{secret__key_name}}` 占位,绝不硬编码。
- MCP 工具兼容性关键点:ElevenLabs 标注为 "Streamable HTTP" 但不支持 MCP 2025-03-26 规范(SSE 响应)。必须返回纯 JSON(`application/json`)而非 SSE(`text/event-stream`),协议版本必须为 `2024-11-05` 而非 `2025-03-26`。不可用:官方 MCP SDK 的 `createMcpHandler`、Cloudflare Agents SDK 的 `McpServer.serve()`、任何返回 `text/event-stream` 的服务器。可用模式:用 Hono 手写 JSON-RPC 处理 `initialize`/`tools/list`/`tools/call`,返回纯 JSON,并启用 CORS。
- 添加知识库(RAG):上传 PDF、文本文件、网页 URL;通过 Dashboard(Agent -> Knowledge Base -> Upload)或 API `POST /v1/convai/knowledge-base/upload`(multipart/form-data)配置;Agent 会在对话中自动检索。
- 集成 SDK:React 用 `useConversation`(传 `agentId`、`signedUrl`、`clientTools`、`dynamicVariables`、`onEvent`),System prompt 中用 `{{user_name}}` 引用动态变量;React Native、Widget 嵌入、Swift 参考对应 boilerplate 文件。
- 测试:CLI 用 `elevenlabs agents test "Support Agent"`、`elevenlabs tests add "Refund Request" --template basic-llm`;测试配置含 `scenario`、`user_input`、`success_criteria`、`evaluation_type`;工具调用测试含 `expected_tool_call`(`tool_name`、`parameters`);API 模拟用 `client.agents.simulate({ agent_id, scenario, user_messages, success_criteria })`。
- CI/CD 集成:GitHub Actions 中 `npm install -g @elevenlabs/cli`、`elevenlabs tests push`、`elevenlabs agents test "Support Agent"`,通过 `ELEVENLABS_API_KEY` 环境变量传密钥。
- 部署:先 `elevenlabs agents push --env prod --dry-run` 干跑,再 `elevenlabs agents push --env prod`。多环境流程:dev -> staging -> 测试 -> prod。
- 安全:绝不在客户端暴露 API key。用服务端端点调用 `https://api.elevenlabs.io/v1/convai/conversation/get-signed-url`(带 `xi-api-key` 头和 `agent_id` body),返回 `signed_url` 给客户端。
- Agent 版本管理与 A/B 测试:Dashboard -> Agent -> Versions -> Create Branch,比较指标后推广胜出版本。
- 配置 Post-Call Webhook:类型 `post_call_transcription`,含 `conversation_id`、`transcript`、`duration_seconds`、`analysis`(sentiment、resolution)。用 HMAC SHA-256 验证签名(`crypto.createHmac('sha256', WEBHOOK_SECRET).update(JSON.stringify(request.body)).digest('hex')`),不匹配则拒绝。
- 成本优化:模型阵容和价格变化快,选型前查 Dashboard(Agent -> LLM 下拉)或文档,不要硬编码未验证的 model id;持久策略是大多数 Agent 用当前便宜快速模型、质量要求高才升级、知识库大时用长上下文模型。关键节省:启用 LLM 缓存(重复 prompt 最多省 90%)、精简 prompt(150 token 优于 500 token)、用 RAG 而非塞满 system prompt、设置 `max_duration_seconds` 防止失控对话、用 "patient" turn mode 减少 LLM 调用。
- CLI 常用命令:`elevenlabs auth login`、`agents init`、`agents add "Name" --template default`、`agents push --env dev`、`agents push --env prod --dry-run`、`agents push --env prod`、`agents pull`、`agents test "Name"`、`agents list`、`agents status`、`agents widget "Name"`、`tools add-webhook "Name" --config-path tool.json`、`tests add "Name" --template basic-llm`。CI/CD 用 `ELEVENLABS_API_KEY`。
- 按需查阅参考:`references/api-reference.md`(完整 REST API)、`references/compliance-guide.md`(GDPR、HIPAA、PCI DSS、数据驻留)、`references/workflow-examples.md`(多 Agent 路由、升级、多语言)。使用资产模板:`assets/react-sdk-boilerplate.tsx`、`assets/react-native-boilerplate.tsx`、`assets/swift-sdk-boilerplate.swift`、`assets/javascript-sdk-boilerplate.js`、`assets/widget-embed-template.html`、`assets/system-prompt-template.md`、`assets/agent-config-schema.json`、`assets/ci-cd-example.yml`。
适用边界 · 注意事项
- 不使用 ElevenLabs 平台或不需要语音对话 Agent 时
- 无法使用 ElevenLabs 付费账号或 API key 时
- 仅需纯文本 LLM 对话、不涉及语音/电话场景时