用 Wixzel Voice 在您的網站加入會說話的 AI 吉祥物
完成本指南後,您的網站角落會有一個會說話的吉祥物。訪客點一下「Call」按鈕,就能在瀏覽器中與了解您業務的代理對話,不需要電話線路,也不需要應用程式。約需 15 分鐘:一個請求用您的網站建立代理和吉祥物,一個請求開啟小工具,再用一個 script 標籤放到頁面上。建立代理不收費。通話與同一引擎上的通話一樣按秒計費:Gemini Live 每接通一分鐘 $0.0491,三分鐘的對話約 $0.15,從預付餘額扣款。
作者:Aqeel Shamsudheen · 發布於 · 更新於
- 所需時間
- 約 15 分鐘
- 引擎時間
- 每接通分鐘 $0.0491

開始之前需要準備什麼?
- 一個有點數的 Wixzel Voice 帳號。透過小工具的通話使用真實點數,而不是免費測試分鐘數;最低儲值金額為 $5。
- 一把具有
agents:write和calls:write權限範圍的 API 金鑰,保存在您的伺服器上。以下所有步驟也都能在主控台中該代理的「吉祥物」分頁完成。 - 一個以 HTTPS 提供、可加入 script 標籤的網站。瀏覽器只會在 HTTPS 下讓網頁使用麥克風。
如何在 Wixzel Voice 上逐步打造?
01用您的網站建立代理
提供您的網站和角色。
role可以是receptionist、support、sales、guide,或您自己的描述:shellcurl https://api.voice.wixzel.com/v1/agents/generate \ -H "Authorization: Bearer $WIXZEL_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "website_url": "https://smiledental.example", "role": "receptionist" }'make-agent.mjs (TypeScript SDK)import { WixzelVoice, waitForAgent } from 'wixzel-voice'; const client = new WixzelVoice({ apiKey: process.env.WIXZEL_API_KEY }); let agent = await client.agents.generate({ website_url: 'https://smiledental.example', role: 'receptionist', }); agent = await waitForAgent(client.agents, agent); // until the mascot is ready or failed console.log(agent.id, agent.name, agent.mascot.status, agent.knowledge_base_id);它會立即回應一個已經能對話的代理,並帶有
mascot.status: "building"。它會在背景讀取您的網頁、撰寫提示詞和開場白、用讀到的內容建立知識庫,並以您的品牌色彩繪製吉祥物。輪詢GET /v1/agents/{id}直到mascot.status變為ready,通常不到一分鐘;在 SDK 中由waitForAgent負責輪詢。建置失敗時,代理仍可正常運作,並保持原本的外觀。代理一開始使用 Gemini Live。和其他代理一樣,可用
PATCH /v1/agents/{id}更改其引擎、語音或提示詞;吉祥物則維持不變。02開啟小工具,並選擇誰可以撥打
分享預設為關閉,需要您自行開啟。列出您網站使用的來源(origin);小工具在其他任何地方都不會發起通話:
shellcurl -X PATCH https://api.voice.wixzel.com/v1/agents/AGENT_ID/mascot \ -H "Authorization: Bearer $WIXZEL_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "welcome_message": "Hi! I am Molly from Smile Dental. Tap Call to talk to me.", "sharing": { "embed": true, "embed_origins": ["https://smiledental.example", "https://www.smiledental.example"], "caller_info": "contact", "max_call_seconds": 300, "daily_minutes": 60, "calls_per_visitor_daily": 3, "max_concurrent_calls": 2 } }'caller_info是訪客通話前需提供的資料:none(預設)不需要任何資料,contact要求姓名以及電話號碼或電子郵件,google要求以 Google 登入。Google 登入能讓您知道對方是誰,但絕不會為對方建立 Wixzel 帳號;在您的網站上,它會在 voice.wixzel.com 的小視窗中開啟,並只將結果交回embed_origins中的來源。四項上限讓公開通話維持在預算內:單通最長時間、所有人合計的每日公開分鐘數(至 UTC 午夜為止)、每位訪客每日可撥打的次數,以及同時通話數。上方的值就是預設值。加入
"link": true還能取得位於voice.wixzel.com/m?id=…的分享頁面。回應中帶有
mascot.public_id,例如m_4fT9qLx2Bv8K。它就是 script 標籤中的 id。03貼上一個 script 標籤
將以下內容加到每個要顯示吉祥物的頁面,放在 body 結束標籤之前:
index.html<script src="https://voice.wixzel.com/embed.js" data-mascot="m_4fT9qLx2Bv8K" async></script>吉祥物會帶著歡迎訊息在右下角等待。訪客點一下「Call」按鈕、允許使用麥克風並開始說話;吉祥物會聆聽、思考,並隨代理的語音動嘴。小工具在 shadow root 中執行,因此您的 CSS 和它的 CSS 互不影響。
04自行指定位置,並讓代理在您的頁面上執行動作
若要顯示在您自己的元素中而不是角落,請在標籤中省略
data-mascot,並在指令碼載入後呼叫WixzelMascot.mount。用戶端工具會在代理要求時於您的頁面上執行,例如開啟預約頁面。先在主控台或用
POST /v1/tools為代理建立該工具,再註冊它要做的事,在指令碼載入前後皆可:index.html<div id="talk"></div> <script> window.WixzelMascot = Object.assign(window.WixzelMascot || {}, { tools: { open_page: ({ path }) => { location.href = path; return { opened: path }; }, }, }); </script> <script src="https://voice.wixzel.com/embed.js" async onload="WixzelMascot.mount(document.getElementById('talk'), { mascot: 'm_4fT9qLx2Bv8K' })" ></script>處理函式回傳的任何內容都會交回給代理,由代理告訴來電者。呼叫您伺服器的 webhook 工具,在小工具上也能使用。
05查看誰撥打過,並封鎖某人
每通小工具通話都會記錄來電者。列出某個代理的來電者:
shellcurl "https://api.voice.wixzel.com/v1/callers?agent_id=AGENT_ID&limit=20" \ -H "Authorization: Bearer $WIXZEL_API_KEY" curl -X PATCH https://api.voice.wixzel.com/v1/callers/CALLER_ID \ -H "Authorization: Bearer $WIXZEL_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "blocked": true }'每位來電者都有大致的
location(城市、地區和國家,由 IP 位址推算,IP 只以雜湊值保存)、platform(瀏覽器、作業系統和裝置)、撥打時所在的page_url、對方提供給您的資料,以及call_count。瀏覽器保存的一個隨機 id 會將同一人的通話歸為一組;不使用指紋辨識,且小工具會告知來電者哪些資料會分享給您。被封鎖的來電者無法再透過小工具、分享連結、應用程式或電話撥打該代理。每通電話也會出現在
GET /v1/calls中,附逐字稿和費用,並可依caller_id篩選。
在 Wixzel Voice 上打造這個要花多少錢?
在 gemini-live 引擎上進行 3 分鐘工作階段的引擎時間,以每接通分鐘 $0.0491 計算:每個工作階段約 $0.15。 沒有電信費用,因為沒有電話線路。
| 每月工作階段數 | 接通分鐘數 | 每月引擎費用 |
|---|---|---|
| 300 | 900 | $44.19 |
| 1,500 | 4,500 | $221 |
| 6,000 | 18,000 | $884 |
用您的網站建立代理和吉祥物不收費,小工具也不收費。通話費用與該代理引擎上的通話相同,按秒計費,從預付餘額扣款,不需要支付電話線路費用。在預設每日 60 分鐘公開通話的上限下,小工具在 Gemini Live 上每天最多花費約 $2.95。
預付制,沒有訂閱,也沒有免費方案:從 $5 起儲值點數,使用時從中扣除。估算您自己的使用組合。
這個實作適用哪些 Wixzel Voice 限制?
- 音質為電話等級,雙向皆為 8 kHz 的 G.711 µ-law。
- 小工具只會從
embed_origins中的來源發起通話,最多 20 個。 - 公開通話受代理上設定的上限約束。超過
daily_minutes後,通話會被拒絕,直到 UTC 午夜。 - 小工具通話與電話通話、應用程式工作階段一起計入帳號的同時通話上限,預設五通。
max_concurrent_calls可避免單一熱門頁面佔用全部名額。 - 小工具通話使用真實點數。免費測試分鐘數是用於從主控台與您自己的代理對話。
- 網頁通話無法轉接給真人;轉接需要電話線路。
常見問題
如何在我的網站放上會說話的 AI 吉祥物?
POST /v1/agents/generate 建立代理(或在 Wixzel Voice 主控台中選擇「新增代理」、「從您的網站」),用 PATCH /v1/agents/{id}/mascot 開啟小工具並將您的網站放入 embed_origins,然後在頁面中加入 <script src="https://voice.wixzel.com/embed.js" data-mascot="m_…" async></script>。訪客點一下「Call」按鈕,就能在瀏覽器中與它對話。網站小工具適用於任何網站架設工具嗎?
embed_origins 中。其他網站能複製我的嵌入程式碼並使用我的點數嗎?
POST /v1/agents/{id}/mascot/rotate-public-id 會為吉祥物換一個新 id,舊的嵌入程式碼和連結會立即失效。吉祥物能說印地語或馬拉雅拉姆語嗎?
我可以更改吉祥物的外觀嗎?
PATCH /v1/agents/{id}/mascot 送出新的 spec:形狀(circle、drop、triangle、cloud、pill、flower、squircle、blob 或 heart)、顏色和眼睛樣式。或呼叫 POST /v1/agents/{id}/mascot/generate,提供網站或描述來產生新外觀。代理的外觀改變時,提示詞不會改變。延伸閱讀
關於 Wixzel Voice
Wixzel Voice 是一個語音 AI API,用於打造 AI 代理,透過您自己的 SIP 中繼撥打和接聽真實的電話,或在您的網頁和行動應用程式中與人對話。一把 API 金鑰和一份預付餘額即可使用所有語音引擎,依實際用量按秒計費。
更多指南
Claude 在 Claude Code 或 claude.ai 中透過您的 SIP 中繼撥打真實電話並讀回逐字稿,撥號前一律先徵求確認。
AI 接待員接聽您現有的 Twilio 號碼,並透過 API 安排預約,以 Node.js 打造。
兩個電話代理,一個說印地語、一個說馬拉雅拉姆語,使用 Sarvam 的印度語言模型,透過您的 SIP 中繼接聽或撥出電話。
一個讓使用者透過 WebSocket 與您的語音代理對話的 Flutter 應用程式,API 金鑰保存在您的伺服器上,完全不需要電話號碼。
透過四個 cURL 請求,讓 Gemini Live 代理經由您的 SIP 中繼撥打真實電話,並取得包含逐字稿與費用的通話紀錄。
由您的代理透過您的 SIP 中繼撥打一份潛在客戶名單,依同時通話上限分批進行,並讀回每通電話的狀態和逐字稿。
一個有代理吉祥物的 Flutter 畫面,吉祥物在即時通話中隨代理的語音動嘴,API 金鑰保存在您的伺服器上。

