ElevenAgents SDK
在 Web 与 React Native 应用中用 TypeScript 快速接入 ElevenLabs 多模态语音智能体。
- Star 数
- ★ 116
- 最近更新
- 今天
- License
- MIT
- 主语言
- TypeScript
- FA 评分
- 43/100 · 缺口较多
30 秒速览
- 可在哪里用
- 平台专用
- 开始前需要
- 典型场景
- 前端团队想在现有 React/Next.js 网站右下角加入语音客服,用 @elevenlabs/react 的 useConversation 在几分钟内接上已有智能体。
- 主要局限
- 核心能力依赖 ElevenLabs 托管的智能体服务与 agentId,无法脱离该平台独立运行。
这个 Agent 能做什么,适合哪些场景?
这是 ElevenLabs 官方发布的 ElevenAgents SDK 单体仓库,用 TypeScript/JavaScript 把多模态语音智能体接入 Web 与移动应用。仓库以 monorepo 形式提供五个可独立安装的 npm 包:核心客户端 @elevenlabs/client、React 版本 @elevenlabs/react、React Native 版本 @elevenlabs/react-native,以及两个网页嵌入组件 @elevenlabs/convai-widget-core 与 @elevenlabs/convai-widget-embed。执行模型是浏览器或移动端通过 WebRTC 与 ElevenLabs 托管的智能体建立实时音频会话,SDK 负责会话生命周期、事件回调、客户端工具调用与音频设备控制。开发者通过 agentId 指定智能体,产物是嵌入你自己应用中的对话界面与事件流,而不是独立运行的命令行或服务。依赖 Turbo 与 pnpm 管理构建、测试与基于 Changesets 的发版流程,代码以 MIT 协议开源。
核心包 @elevenlabs/client 建立基于 WebRTC 的实时音频通信,提供事件驱动的会话生命周期管理、客户端工具(client tools)注册、公有与私有智能体鉴权,以及输入/输出音频设备控制。@elevenlabs/react 导出 useConversation 钩子,你传入 agentId 后调用 conversation.startSession() 启动会话,并在同一次调用中通过 clientTools 对象注册可由智能体触发的异步函数,例如 logMessage。@elevenlabs/react-native 面向移动端,需要额外安装 @livekit/react-native、@livekit/react-native-webrtc 与 livekit-client,并在 iOS 的 Info.plist 与 Android 的 AndroidManifest.xml 中声明麦克风与网络权限。两个 widget 包把智能体封装成可嵌入任意网站的 Web Component。整体流程是:在 ElevenLabs 平台创建智能体并取得 agentId,在你的 React/React Native/原生 JS 应用中初始化 SDK,启动会话后浏览器与云端智能体交换音频,同时 SDK 把转录、状态变化和工具调用事件回传给你的回调。
- 前端团队想在现有 React/Next.js 网站右下角加入语音客服,用 @elevenlabs/react 的 useConversation 在几分钟内接上已有智能体。
- 移动应用开发者需要 iOS 与 Android 共用一套语音对话代码,选择 @elevenlabs/react-native 并配置 LiveKit 依赖与麦克风权限。
- 市场或运营人员不写前端框架,只想在任意网站嵌入对话入口,直接使用 @elevenlabs/convai-widget-embed 预打包组件。
- 产品团队希望语音智能体能触发页面内动作,例如记日志、跳转路由或填写表单,通过 clientTools 注册客户端函数实现。
- 需要在原生 JavaScript 项目中细粒度控制音频输入输出设备和会话事件的应用,直接使用 @elevenlabs/client 核心包。
如何安装或部署这个 Agent?
用 npm 安装所需包;React Native 还要额外安装对等依赖。
如何使用这个 Agent?
安装后在 React 组件中调用 useConversation 并传入 agentId,再调用 startSession() 启动会话;可在同一次调用中注册客户端工具:
这个 Agent 有哪些优点和局限?
- 官方维护的 monorepo,@elevenlabs/client、@elevenlabs/react、@elevenlabs/react-native 与两个 widget 包覆盖 Web、移动端和纯网页嵌入三种场景。
- 基于 WebRTC 的实时音频传输,README 明确说明其低延迟特性,适合交互式语音对话。
- 支持客户端工具(clientTools),智能体可以回调应用内函数,实现页面动作而非只有纯对话。
- React Native 包给出 iOS Info.plist 与 Android AndroidManifest.xml 的具体权限配置,移动端接入路径清晰。
- MIT 许可,可自由用于商业项目并自行审计源码。
- 核心能力依赖 ElevenLabs 托管的智能体服务与 agentId,无法脱离该平台独立运行。
- React Native 引入 @livekit/react-native 等三个对等依赖,并需修改原生配置文件,构建复杂度明显高于 Web。
- 仓库仅覆盖 JavaScript/TypeScript 生态,Python、Go、Java 等后端技术栈无官方包。
- 需要麦克风与 WebRTC 音频能力,纯服务端无头环境的适用性未在文档中说明。
- README 未给出定价、配额与失败重试策略的细节,成本与稳定性需另查官方文档。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| ElevenAgents SDK 当前 | 43 · 缺口较多 | — | ★ 116 | 今天 | TypeScript | — |
| LiveKit Agents:实时语音 AI 智能体框架 | 43 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 15k | 今天 | Python | OpenAI API · Claude API |
| Gitagent | 44 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 743 | 1 天前 | Rust | OpenAI API · Claude API |
| TanStack AI | 76 · 存在缺口 | 代码库 / SDK免费 + 模型费 | ★ 3.3k | 今天 | TypeScript | OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
README 展示了 clientTools 可让 agent 触发应用内动作,但未说明权限最小化、用户确认或数据流向;麦克风权限仅以平台配置片段出现,缺少敏感数据处理与回滚说明。依赖安全仅见 pnpm overrides 与 onlyBuiltDependencies,属薄证据。来源归属清晰(MIT、ElevenLabs 版权、README 署名),故 source_attribution 给 2。
README 与 package.json 脚本、CI 工作流(build/lint)相互一致,self_consistency 给 2;依赖可用性仅靠 npm 徽章与 peer 依赖列表,未锁定或验证,给 1;无任何失败消息或错误处理说明,failure_messages 为 0。
覆盖 client/react/react-native/widget 多场景,audience_and_scenarios 给 2;但能力边界(agent 能做什么、不能做什么)与触发精度(何时启动会话、工具调用条件)几乎未描述,各给 1;环境适配有 iOS/Android 配置与 Node 引擎约束,给 2。
信息架构清晰(包表格、分节),install_notes 完整含 peer 依赖与平台权限,naming_stability 因包名与版本徽章稳定给 2;示例仅链接外部仓库,examples_and_faq 给 1;无已知限制章节,known_limitations 为 0;LICENSE 完整给 3;Changesets 发布流程明确给 2;维护责任仅指向 Discord/邮箱,未明确 SLA 或负责人,给 1。
输出可用性有可运行代码片段,给 2;但边际价值依赖外部 ElevenLabs 服务,仓库本身仅为 SDK 封装,marginal_value 与 cost_benefit 各给 1。
声明多指向外部文档链接,仓库内可追溯证据有限,claim_traceability 给 1;跨源佐证仅 README 与 package.json 部分一致,给 1;事实与推断分离尚可但缺乏测试佐证,给 1。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- clientTools 允许 agent 触发应用内动作,但仓库未说明权限最小化与用户确认机制,集成方需自行加防护。
- 麦克风与网络权限仅以平台配置片段出现,缺少敏感音频数据处理与回滚说明。
- 无失败消息、错误处理或已知限制文档,生产集成风险需自行评估。
- 发布者身份未经 FollowAgents 验证,维护责任与更新路径不明确。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
Minor Changes - 29f9b8e: Add the entityRedaction and entityRedactionMode options to Scribe.connect() and dispatch the new redacted_transcript server message: - entityRedaction: redact entities from committed transcripts. Accepts the same values as entityDetection ("all", a category, a specific entity type, or a list), sent as repeated entity_redaction query params. Cannot be combined with transcriptEdit. …在 GitHub 查看 ↗ -
发布说明摘录
Minor Changes - 29f9b8e: Add the entityRedaction and entityRedactionMode options to Scribe.connect() and dispatch the new redacted_transcript server message: - entityRedaction: redact entities from committed transcripts. Accepts the same values as entityDetection ("all", a category, a specific entity type, or a list), sent as repeated entity_redaction query params. Cannot be combined with transcriptEdit. …在 GitHub 查看 ↗ -
发布说明摘录
Patch Changes - Updated dependencies [29f9b8e] - Updated dependencies [6dab091] - @elevenlabs/[email protected]在 GitHub 查看 ↗