ElevenLabs
Squid agent を頭脳として使用する ElevenLabs voice agent で電話に応答します
ElevenLabs connector の機能
ElevenLabs connector により、ElevenLabs Agents が agent の電話をホストします。
- ElevenLabs voices。
eleven_v3_conversationalmodel を使用し、cloned および designed voice を含む、ElevenLabs account のすべての voice。 - LLM としての Squid agent。 ElevenLabs が会話を実行し、各 turn を Squid agent に送信します。Squid agent は knowledge base、connector、AI function を使用して応答します。
- 多言語通話。 通話は回線の言語で開始され、発信者が話した場合は、許可した言語または ElevenLabs が対応する任意の言語に切り替えられます。
- 組み込みの通話マナー。 応答に少し時間がかかる場合の filler phrase、20 秒間の無音後の通話終了、発信者が別れの挨拶をした際の通話終了、outbound call における voicemail 検出。
- ElevenLabs 経由で agent の番号から発信する outbound calls。
agent の電話回線が ElevenLabs engine を選択すると、Squid は ElevenLabs 側のすべてをプロビジョニングします。これには、ElevenLabs agent、import された Twilio number、および ElevenLabs agent が Squid に接続するために使用する credential が含まれます。
開始前に必要なもの
- Agents platform にアクセスできる ElevenLabs account。
- agent、phone number、workspace secret、voice を管理できる権限を持つ ElevenLabs API key。
- agent 用の番号を持つ Twilio connector。ElevenLabs は connector の Twilio credential を使用してこの番号を自身の account に import するため、その番号はそこにすでに import 済みであってはなりません。
Squid application への ElevenLabs connector の追加
-
Squid Console で Connectors tab に移動します。
-
Available Connectors をクリックします。
-
ElevenLabs connector を見つけ、Add Connector を選択します。
-
次の設定詳細を指定します。
Connector ID: elevenlabs など、コード内で connector を一意に識別する文字列。
API Key: ElevenLabs API key。secret として保存されます。
Default Voice ID: 任意。voice を選択しない phone line に使用する voice です。指定しない場合、ElevenLabs の default voice が使用されます。
Public Base URL: 任意。proxy、tunnel、custom domain の背後にある場合にのみ必要な、ElevenLabs がこの application に到達するための public base URL です。デフォルトは application の backend URL です。
API Base URL: Advanced。ElevenLabs の API base URL です。デフォルトは https://api.elevenlabs.io です。
connector は agent ごとの設定を行いません。どの agent がどの voice や言語でこれを使用して応答するかは、各 agent の phone line で決定されます。
phone line での ElevenLabs の使用
-
Agent Studio で agent に Twilio ability を追加するか開き、Phone number を選択します。
-
Voice engine を ElevenLabs に設定し、使用する ElevenLabs connector を選択します。
-
account の voice から Voice を選択するか、デフォルトのままにします。
-
通話を開始する Language を設定し、Languages で、発信者が選択した言語または任意の言語に切り替えられるかを設定します。
-
Greeting を記述し、必要に応じて Filler message と、それが再生されるまでの待機秒数を設定します(デフォルトは 4)。
-
保存します。status line に、この番号が ElevenLabs agent 経由でこの agent を呼び出すことが表示されます。
オプションの完全な一覧は、Twilio connector の phone line settings にあります。
Squid が ElevenLabs で作成するもの
line を保存すると、ElevenLabs account に以下がプロビジョニングされます。
Squid <agentId>という名前の agent。Greeting を最初の message、voice、言語、切り替え可能な言語として設定し、phone manners のみを含む system prompt で構成されます。agent が知るすべての情報は Squid agent にあります。- Squid agent 用の Squid OpenAI-compatible endpoint、
https://[APP_ID].[REGION].squid.cloud/ai/openai/agents/<agentId>/v1に設定された agent の LLM。application API key を保持する workspace secret で認証されます。 - Twilio から import され、ElevenLabs agent に割り当てられる phone number。これにより ElevenLabs がその番号への通話に応答します。
- system tool の
end_call、voicemail_detection(voicemail に通話言語で短い message を残して切断します)、および発信者が言語を切り替えられる場合のlanguage_detection。
line を変更すると、ElevenLabs agent はその場で更新されます。ability を切断するか、line を別の engine に切り替えると、ElevenLabs agent は削除され、番号が解放されて Twilio の管理に戻ります。作成されたリソースの id は、line の provisioning.elevenLabs にあります。
言語
通話は ElevenLabs が話せる任意の言語で開始できます。発信者が通話中に切り替えられる言語は、ElevenLabs が agent preset として対応する以下の言語に限定されます。en、ja、zh、de、hi、fr、ko、pt、pt-br、it、es、id、nl、tr、fil、tl、pl、sv、bg、ro、ar、cs、el、fi、hr、ms、sk、da、ta、uk、ru、hu、no、vi。別の言語への切り替えを許可する line を保存すると、「ElevenLabs cannot switch a call to …」というエラーで失敗します。その言語は通話を開始する言語としてのみ使用できます。切り替えは意図的に行われます。名前、単語 1 つ、または番号では言語は変更されず、許可された言語での文全体によって変更されます。
Outbound calls
Twilio connector の placeCall と agent の placeTwilioCall function は、agent の line が ElevenLabs engine を使用している場合、ElevenLabs 経由で通話を発信します。ElevenLabs agent が応答者に挨拶し、会話を実行します。voicemail には短い message が残されます。この engine では通話ごとの instructions はサポートされません。agent に達成させる内容は、代わりに agent 自身の instructions に記述してください。
ElevenLabs connector 自体を agent の ability として接続すると、prompt(「Call +1 555 010 0100」)から同じ処理を行う AI function placeElevenLabsCall が 1 つ追加されます。
制限事項
ElevenLabs が通話をホストするため、Twilio engine および OpenAI engine が提供する機能の一部は利用できません。
- Squid に transcript や call record はありません。 transcript と recording は ElevenLabs dashboard にあります。Squid の
twilio_callscollection には、Squid から発信された outbound call のみが保存され、結果は保存されません。 - その番号での SMS は利用できません。 Squid は番号の messaging webhook を接続しないため、受信 text は agent に配信されません。texting には、Twilio engine または OpenAI engine で実行される番号を使用してください。
- agent が作成する opening line は利用できません。 最初の message は常に記述された Greeting です。
- transfer および AI function 内の call context は利用できません。 ElevenLabs agent は自身の tool で通話を終了します。
transferTwilioCallとendTwilioCallはこの engine では何もしません。また、agent の function はtwilioCallSidを受け取りません。 - この engine を介した browser calls は利用できません。
コードから ElevenLabs connector を使用する
npm install @squidcloud/elevenlabs-client
import { SquidElevenLabsClient } from '@squidcloud/elevenlabs-client';
const elevenLabs = new SquidElevenLabsClient(this.squid, 'elevenlabs'); // your connector id
// The account's voices, cloned and designed ones included: what the Twilio ability lists.
const { voices } = await elevenLabs.listVoices();
| Method | Executable name | 説明 |
|---|---|---|
listVoices() | elevenLabsListVoices | account の voice。 |
provisionAgent({ agentId, phoneNumber, twilio, voice?, existing? }) | elevenLabsProvisionAgent | Squid agent 用の ElevenLabs agent を作成または更新し、番号を import します。API key が必要です。 |
releaseAgent({ agentId, phoneNumberId? }) | elevenLabsReleaseAgent | ElevenLabs agent を削除し、その番号を解放します。API key が必要です。 |
placeCall({ agentId, phoneNumberId, to }) | elevenLabsPlaceCall | ElevenLabs agent が応答する outbound call を発信します。API key が必要です。 |
provisionAgent、releaseAgent、placeCall は Squid agent id ではなく ElevenLabs id を受け取ります。これらは Twilio connector が使用する構成要素であり、通常は直接使用する必要はありません。
トラブルシューティング
| 症状 | 原因と対処 |
|---|---|
| line の保存時に「ElevenLabs cannot switch a call to …」が表示される | 追加言語の 1 つが ElevenLabs preset language ではありません。削除するか、通話を開始する言語に設定してください。 |
| phone number に関する ElevenLabs error により保存に失敗する | 番号が手動または以前の line により、すでに ElevenLabs account に import されています。ElevenLabs dashboard で削除してから、もう一度保存してください。 |
| ElevenLabs からの 404 により保存に失敗する | Squid が作成した ElevenLabs agent または番号が ElevenLabs dashboard で削除されています。ability を切断してから再接続し、再作成してください。 |
| voice は応答するが、すべての返信が謝罪または無音になる | ElevenLabs が Squid agent に到達できません。application が deploy されていないか、Public Base URL が誤った場所を指しています。/ai/openai/agents/… への request を application log で確認してください。 |
| 予期しない別の voice が使用される | line に voice がなく、connector にも default voice がないため、ElevenLabs が独自の voice を選択しました。いずれか一方を設定してください。 |