Przejdź do treści
megapromotingPorozmawiajmy

Ekspertyza · Agenci głosowi

Agent, który mówi — na Twojej stronie i przez telefon — i którego można przerwać.

Budujemy asystentów głosowych na Kallina: zapisany role, zatwierdzoną bazę wiedzy, narzędzia wywoływane podczas rozmowy oraz limit, po którego przekroczeniu przekazują rozmowę człowiekowi. Rumuński jest domyślnym językiem nowych agentów.

Już zbudowaneTrzy własne implementacje, cytowane poniżej. (1) Platforma Kallina — 472 funkcje edge Deno i 559 migracji bazy danych, policzone dziś w repozytorium; `https://app.kallina.info` odpowiada 200. (2) Komponent na tej stronie, `src/components/agents/KallinaVoiceAgent.tsx`, który implementuje poprawny przebieg sesji i dokumentuje dwa sposoby, w jakie voice agent kończy się w ciszy. (3) Most `elevenlabs-bridge` i sesja `openai-realtime-session`, gdzie znajdują się rzeczywiste parametry przerwania i detekcji mowy. Zastrzeżenie, które podajemy: część telefoniczna zależy od hosta SIP, a host, przez który przechodzą nasze linie testowe, nie odpowiada na dzień pisania — zobacz stronę telefonii. W sieci przebieg jest dziś weryfikowalny.

Agent głosowy u nas nie jest „botem, który czyta scenariusz”. Ma cztery rzeczy zapisane przed pierwszym połączeniem: rolę, zatwierdzoną przez Ciebie bazę wiedzy, zestaw narzędzi, które może wywołać, oraz limit, po którego przekroczeniu przekazuje rozmowę człowiekowi. To, co wychodzi z rozmowy, to nie tylko transkrypt: połączenie ma czas trwania, koszt rozbity według dostawcy, nagranie i analizę, wszystko powiązane z kontem firmy.

Silnik nie jest jeden i to jest decyzja, nie przypadek. W konfiguracji agenta wybierasz między ElevenLabs Conversational AI, OpenAI Realtime i Gemini Live albo zostawiasz „auto”, a platforma wybiera według języka, obciążenia i dostępności. Nad tym osobno wybierasz mózg tekstowy z katalogu, w którym każdy model ma w interfejsie pokazane opóźnienie i koszt na minutę. Gdy ktoś pyta „dlaczego odpowiada wolno”, odpowiedź ma liczby, nie opinie.

Najmocniej odczuwalna dla ludzi jest możliwość przerwania. W OpenAI Realtime detekcja mowy jest semantyczna, z progiem 0,5, poduszką 300 ms z przodu i 500 ms ciszy, aby uznać, że skończyłaś/skończyłeś mówić; przełącznik „allow interruptions” jest domyślnie włączony. W ElevenLabs zdarzenie przerwania jest przekazywane dalej centrali telefonicznej, aby natychmiast zatrzymać odtwarzanie. A czas, po którym agent uznaje, że Twoje milczenie jest odpowiedzią, jest konfigurowalny dla każdego agenta — na jednym z naszych agentów sprzedażowych ustawiliśmy go na 12 sekund, wobec 15 domyślnych.

Agent żyje w dwóch różnych miejscach, z różnymi ograniczeniami. Na stronie internetowej wchodzi przez jedną linię skryptu albo własny komponent, a złotą zasadą jest to, że strona nigdy nie przechowuje identyfikatora agenta ani żadnego klucza dostawcy — prosi platformę o sesję i dostaje podpisany URL o krótkiej ważności. Przez telefon wchodzi przez trunk SIP, a tam ograniczenia należą do operatora i centrali, nie do agenta; o tym piszemy osobno, na stronie telefonii.

AI agenci głosowi w Republice Mołdawii — jak to działa, konkretnie · wideo po rumuńsku, z napisami i transkrypcją po polsku

Pełna transkrypcja

Dobrze, przejdźmy od razu do sedna. Dziś robimy niezwykle precyzyjną analizę techniczną tego, jak naprawdę działają agenci głosowi w środowisku biznesowym. Oprzemy się wyłącznie na architekturze platformy Kallina, opracowanej właśnie w Republice Mołdawii przez MEGA PROMOTING S.R.L.. Bez marketingowego języka, bez napompowanych obietnic, tylko fakty, czysta infrastruktura i, rzecz jasna, realia operacyjne. Dla każdego zespołu, który prowadzi firmę i opiera się na jasnych procesach, zrozumienie technologii pod maską jest, szczerze, absolutnie kluczowe. Dziś mamy bardzo metodyczną ścieżkę. Przechodzimy przez sześć punktów. Najpierw omawiamy problem, potem mechanizm działania, dalej anatomia awarii, sekcja silników i przerw, ograniczenia techniczne i na końcu następny krok. To całkowicie transparentne spojrzenie na system. A więc pierwsza sekcja, problem, czas i zapytania. Zobaczmy dokładnie, od czego startujemy.

To jest dokładnie pytanie, które nie daje kierownictwu operacyjnemu spać po nocach. Gdzie dokładnie traci się czas operacyjny i, co bardzo ważne, ile nieweryfikowanych zapytań znika codziennie. W zwykłej firmie czas po prostu wyparowuje między nieodebranymi połączeniami, zgłoszeniami, które nie są przejmowane na czas, i wszelkiego rodzaju interakcjami, których, no cóż, po prostu nie da się później zweryfikować. I nie chodzi tylko o mały problem z dyskomfortem. Mówimy o ogromnym zasobie operacyjnym, który traci się dzień po dniu w nieoptymalnym przepływie pracy. Przechodzimy do części drugiej, mechanizm, jak to działa. Wejdźmy w samą inżynierię platformy. Spójrzcie na tę liczbę, 472. To dokładna liczba nowych funkcji Edge, które w tej chwili utrzymują platformę przy życiu. Więc jasno, nie mówimy o weekendowym prototypie ani o ładnym fasadowym interfejsie.

To masywna infrastruktura na prawdziwym serwerze, zaprojektowana do obsługi tras i niezwykle złożonej logiki biznesowej. A żeby podkreślić poziom dojrzałości, istnieje dokładnie 559 podstawowych migracji bazy danych na infrastrukturze PostgreSQL, hostowanej przez Supabase. Te liczby pokazują nam supersolidny fundament z politykami bezpieczeństwa wdrożonymi na poziomie wiersza. Praktycznie to system zbudowany do skalowania i trzymania danych w nienagannym porządku. Teraz zobaczcie, jak wygląda kolejność operacji na agencie webowym, bo ten detal jest absolutnie genialny. W kroku 1 strona prosi o dostęp do mikrofonu. W kroku 2 odwiedzający musi zaakceptować. I dopiero w kroku 3 wysyłane jest zapytanie do serwera, aby otworzyć sesję, zwracając podpisany URL ważny tylko przez krótki czas. Dlaczego to taki strategicznie ważny ruch? Prosto, jeśli w kroku 2 mikrofon zostanie odrzucony, system nie idzie dalej.

Matematycznie oznacza to 0 minut zużytych i 0 zł wyrzuconych przez okno na widmowe sesje. Część 3 to prawdopodobnie moja ulubiona. Anatomia awarii. Bo nic nie buduje zaufania bardziej niż całkowita transparentność, prawda? Wyobraźcie sobie taki koszmar. Na stronie web wdrożono agenta głosowego, ale gdy naciskało się przycisk, nie działo się absolutnie nic. Bez dźwięku, bez żadnego komunikatu ostrzegawczego, bez błędu w konsoli deweloperskiej. Całkowita cisza. Dla każdego, nawet dla doświadczonego technika, taki defekt wydawał się na pierwszy rzut oka niemożliwy do zlokalizowania. Dlaczego? Bo nie było żadnego dziennika błędów. Całkowicie cicha awaria. Kiedy zaczęto kopać głębiej, analiza techniczna ujawniła dwóch całkowicie niewidzialnych wrogów. Po pierwsze, serwer wysyłał nagłówek, który całkowicie zakazywał użycia mikrofonu. Przeglądarka, będąc posłuszna, respektowała regułę i odrzucała żądanie, ale robiła to bez ostrzegania warstwy wizualnej interfejsu.

Po drugie, komponent głosowy był importowany statycznie na stronie. Plik po prostu nie był znajdowany, zwracając błąd 404. Z tego powodu cały skrypt rozbijał się w tle, w ciszy, blokując każdą dalszą konfigurację. Ale zobaczcie, jak eleganckie było rozwiązanie. Problem, oczywiście, nie był po stronie AI, tylko bezpośrednio po stronie sieci. Zmieniono nagłówek serwera, aby umożliwić mikrofon z własnego źródła, zobaczcie tam, w stanie naprawionym, i przeniesiono import kodu dokładnie do wnętrza akcji naciśnięcia przycisku. Defekt zniknął całkowicie. Teraz, jeśli ktoś naciska przycisk, a mikrofon jest blokowany przez przeglądarkę, awaria nie jest już cicha. Natychmiast pojawia się jasny komunikat po rumuńsku, który dokładnie wyjaśnia, co trzeba zmienić. To znaczy inżynieria zrobiona z głową, całkowicie eliminująca niemiłe niespodzianki. Idziemy dalej do sekcji czwartej, silniki, języki i przerwania.

To moment, żeby dokładnie sprawdzić, do czego ten system jest zdolny. Tutaj odkładamy na bok subiektywne opinie i mówimy wyłącznie w milisekundach. Gdy używa się modelu Flash od ElevenLabs, opóźnienie wynosi tylko 75 milisekund. Żeby dać wam wyobrażenie, dla ludzkiego ucha to praktycznie natychmiast. Z drugiej strony, jeśli preferujecie absolutnie premium jakość głosu, jaką oferuje model Turbo, opóźnienie dochodzi do około 250 milisekund. W rozmowie telefonicznej każda milisekunda jest krytyczna, a platforma pozwala dokładnie wybrać, którego silnika chcecie użyć, wyłącznie w zależności od operacyjnych potrzeb firmy. Bardzo częste pytanie, które słyszymy, brzmi: dobrze, ale czy mogę przerwać agentowi, kiedy mówi? Odpowiedź brzmi stanowcze tak, tylko mechanizm jest inny. Na przykład w OpenAI Realtime detekcja jest semantyczna. Ma próg ustawiony na 0.5 i techniczny bufor bezpieczeństwa 300 milisekund.

Z kolei w ElevenLabs, w sekundzie, w której wchodzi przerwanie, zdarzenie idzie bezpośrednio do centrali telefonicznej, systemu PBX, aby natychmiast uciąć dźwięk. Co więcej, okres ciszy, jaki agent czeka, zanim odpowie z kolei, można bardzo precyzyjnie regulować. Można go na przykład skrócić do 12 sekund zamiast domyślnych 15, co sprawia, że rozmowa staje się znacznie bardziej naturalna i żwawa. Z punktu widzenia obsługiwanych języków oficjalna konfiguracja agenta obsługuje z powodzeniem 32 różne języki. Ale jest tu dla nas jeden aspekt operacyjny o najwyższym znaczeniu? Język rumuński jest ustawiony domyślnie dla absolutnie wszystkich nowych agentów tworzonych na tej platformie. Dotarliśmy do piątej sekcji, ograniczeń technicznych i odpowiedzialności, bo czasem równie ważne jest wiedzieć, czego system nie potrafi zrobić, żeby mieć właściwe oczekiwania.

Wyznaczmy więc bardzo wyraźną granicę. Agent może wykonywać funkcje zewnętrzne, może uruchamiać wewnętrzne narzędzia bezpośrednio na serwerze i może przekierować połączenie do ludzkiej osoby bez żadnego problemu. Ale system zabrania agentom improwizować w ściśle regulowanych obszarach. Pomyślcie chwilę. Agent, który zaczyna improwizować tam, gdzie przepisy są wyjątkowo surowe, staje się ogromnym ryzykiem dla firmy, w żadnym wypadku nie przewagą. Co więcej, rzeczy takie jak automatyczne usuwanie danych po określonym terminie nie są po prostu kilkoma polami do zaznaczenia w menu. To osobne projekty proceduralne, które organizacja musi wdrożyć dedykowanie. Z kolei bezpieczeństwo jest traktowane z absolutną rygorystycznością. Strony internetowe, które hostują agentów, otrzymują wyłącznie ten podpisany URL, o którym mówiliśmy. Nigdy, ale to absolutnie nigdy, nie otrzymują ID agenta ani klucza API, które mogłyby zostać skradzione i użyte na koszt firmy.

Po stronie głosu telefonia zależy w 100% od działającego zewnętrznego trunku SIP i, aby być jak najbardziej transparentnymi co do obecnych ograniczeń, zewnętrzne testowe linie SIP w tym momencie nie odpowiadają. To niezwykle szczere podejście ze strony inżynierów, które pokazuje, że rzeczywistość techniczna zawsze stoi na pierwszym miejscu, poza wszelką dyskusją handlową. I jesteśmy w szóstym, ostatnim zresztą, kroku, następnym etapie procesu. Co robimy dalej z tymi wszystkimi informacjami? Cała ta techniczna analiza powinna doprowadzić nas do bardzo obiektywnej oceny waszych przepływów pracy. To jest prawdziwa stawka. Który proces operacyjny wewnątrz organizacji naprawdę musi działać wydajniej? Nie wdrażamy sztucznej inteligencji tylko dlatego, żeby być na czasie, prawda? Celem jest wskazanie tego dokładnego, logicznego miejsca, gdzie agent głosowy może się racjonalnie zintegrować, może skalować się i może działać w warunkach maksymalnego bezpieczeństwa.

Jako punkt końcowy macie tutaj współrzędne operacyjne firmy MEGA PROMOTING S.R.L. z Chișinău, w tym IDNO i adres internetowy? To na potrzeby ewentualnej, ściśle technicznej rozmowy, mającej wyjaśnić, jak można zintegrować te złożone struktury z systemami, których już używacie w waszym biznesie. Przed jakąkolwiek decyzją zostawiłbym prowokacyjne pytanie, nad którym wszyscy powinniśmy się zastanowić. Czy obecne procesy zarządzania klientami w naszych firmach naprawdę wytrzymałyby równie surową i transparentną analizę techniczną, jak ta, przez którą przeszedł ten system? Na rynku zdefiniowanym przez ciągłą innowację spojrzenie oparte wyłącznie na faktach i liczbach pozostaje zdecydowanie najpotężniejszym narzędziem, jakie mamy do dyspozycji. Do następnego razu!

Co obejmuje

Praca, komponent po komponencie

Sesja jest żądana od platformy, a nie od dostawcy głosu

Strona wysyła `POST /functions/v1/widget-voice-session` z publicznym identyfikatorem widgetu i dostaje z powrotem podpisany URL. Nigdy nie ma identyfikatora agenta ani żadnego klucza. Błędna wersja — `startSession({ agentId })` bezpośrednio w HTML — całkowicie omija warstwę sesji, kredytu i dziennika platformy oraz ujawnia agenta każdej osobie, która otworzy źródło strony. To pierwszy test, który wykonujemy na każdym wdrożeniu, które przejmujemy.

Mikrofon jest proszony przed sesją, więc odmowa nic nie kosztuje

Kolejność jest stała i ma znaczenie: poproś o mikrofon przez `getUserMedia({audio:true})`, a dopiero jeśli osoba zaakceptuje, poproś o sesję. Jeśli odwiedzająca osoba odmówi, nie zostaje wydany żaden podpisany URL i nie zużywa się żadna minuta. Prośba o mikrofon odbywa się wewnątrz kliknięcia przycisku, przed jakimkolwiek oczekiwaniem, które mogłoby wykroczyć poza ten gest — inaczej przeglądarka ignoruje żądanie.

Agenta można przerwać i reguluje się to liczbami

W OpenAI Realtime: semantyczna detekcja mowy, próg 0,5, poduszka 300 ms, 500 ms ciszy, przerwanie dozwolone domyślnie. W ElevenLabs: zdarzenie `interruption` jest przekazywane centrali, aby uciąć odtwarzanie. Ponad to `turn_timeout` dla każdego agenta decyduje, po jakim czasie ciszy agent uznaje, że to jego kolej — domyślnie 15 sekund, skrócone do 12 na agencie sprzedażowym. I zgłoszone przez klienta „nie mogę go przerwać” bardzo często ma inną przyczynę niż progi: zbyt długie odpowiedzi. To rozwiązujemy w prompcie i w limicie tokenów, a nie w detekcji mowy.

Wywołuj narzędzia podczas rozmowy

Agent nie jest zamknięty w tym, co wie. Może wywoływać funkcje na serwerze w trakcie mówienia — aby odczytać dostępność, zapisać termin, wysłać SMS albo zapytać katalog. Narzędzia są deklarowane dla każdego agenta osobno, z typizowanymi parametrami i własnym limitem wykonania, tak aby wolne narzędzie nie blokowało rozmowy.

Przekazanie do człowieka jest częścią scenariusza, a nie wyjątkiem

W wiadomościach przejęcie przez kolegę ma własny stan na wątku — `handoff_status`, moment przejęcia, powód, kto jest przypisany, notatki dotyczące rozwiązania — zaimplementowane w dedykowanym module o długości 619 linii. Przez telefon przekazanie jest realizowane przez centralę: ślepy transfer przez `##` i transfer wspomagany przez `*2`, a połączenie trafia do kontekstu dialplanu napisanego właśnie do tego. To dwa różne mechanizmy, ponieważ są to dwa różne kanały; zapisujemy oba w scenariuszu.

Silnik i głos są wybierane jawnie, a nie domyślnie

Cztery pozycje dostawcy: `elevenlabs`, `openai-realtime`, `gemini-live` i `auto`. Dla syntezy głosu w językach innych niż angielski domyślnie jest `eleven_flash_v2_5` — 32 języki, około 75 ms; wariant lepszej jakości, `eleven_turbo_v2_5`, ma około 250 ms. W OpenAI Realtime jest dziesięć głosów i silniki do `gpt-realtime-2.1`. Wybór jest polem w konfiguracji agenta, a nie naszym założeniem.

Języki

Konfiguracja agenta obsługuje 32 języki, wewnętrzna mapa języków platformy ma 41 wpisów, a panel administracyjny jest przetłumaczony na 20. To trzy liczby dla trzech różnych rzeczy i nie wolno ich mieszać. Rumuński jest domyślnym językiem nowego agenta.

Co zostaje po połączeniu

Transkrypt, nagranie audio, czas trwania, koszt rozbity według dostawcy, a także analiza po rozmowie i krótki skrót rozmowy, generowany dla pamięci klienta. Analiza nie jest celem samym w sobie: na niej opiera się decyzja, czy agent zrobił to, co trzeba, czy też scenariusz ma lukę.

Zużycie jest sprawdzane przed działaniem, a nie na fakturze

Przed każdą operacją, która kosztuje, platforma sprawdza dostępny kredyt, a zużycie zapisywane jest z podziałem na dostawcę i agenta. Bramka stoi przed wywołaniem. W praktyce: agent wpadły w pętlę nie może zużywać bez końca, nie uderzając w limit.

Jak to wygląda

Trasa, krok po kroku.

01

Wybieramy jedną ścieżkę i wyznaczamy jej granice

Scenariusz z jasnym wejściem i jasnym wyjściem: połączenie odebrane w recepcji, potwierdzenie zamówienia, sprawdzenie dostępności. Zapisujemy wprost, czego agent nie ma prawa robić, czego nie ma prawa mówić i jaką drogą przekazuje rozmowę człowiekowi. Agent bez zapisanych granic nie jest bardziej zdolny, jest tylko bardziej nieprzewidywalny.

02

Budujemy agenta: rola, wiedza, narzędzia, ograniczenia

Prompt, zatwierdzona przez Ciebie baza wiedzy, narzędzia, które może wywoływać, oraz progi rozmowy — dostawca, głos, model tekstowy, czas ciszy, zachowanie przy przerwaniu. Na końcu mamy skonfigurowanego agenta, a nie demo.

03

Podłączamy go do kanału i sprawdzamy trasę bez zużywania minut

W sieci: jedna linia skryptu albo własny komponent nad API uruchamiania i zatrzymywania. Istnieje skrypt, który przechodzi dokładnie drogę przeglądarki — wiersz z konfiguracji, konfigurację widżetu, żądanie sesji — i zatrzymuje się na podpisanym URL, bez otwierania połączenia audio. Działa na jednym widżecie albo na wszystkich, zwraca kod wyjścia, więc może wejść do zaplanowanego sprawdzania. W telefonie: numer trafia na trunk, a połączenia przychodzące i wychodzące są testowane osobno, bo psują się osobno.

04

Mierzymy, co wyszło, i poprawiamy scenariusz

Po pierwszych realnych rozmowach czytamy transkrypty i analizę po rozmowie, a nie wrażenia. Najczęściej poprawiamy nie model, lecz długość odpowiedzi i granice scenariusza — dwie rzeczy, które zmienia się w promptcie, tego samego dnia.

IntrareVerificareDeciziePublicareNic nie przechodzi dalej bez weryfikacji.PORZĄDEK TO ARGUMENT
Trasa rozmowy: strona prosi o mikrofon, platforma wystawia podpisaną sesję, agent mówi i można go przerwać, wywołuje narzędzie, a to, co przekracza jego rolę, przekazuje człowiekowi.

Dane

Czego dotykamy, gdzie to leży i jak długo zostaje

Pytania, które zadaje każdy, kto ma inspektora ochrony danych — postawione tutaj, zanim on je zada.

Gdzie są dane
PostgreSQL przez Supabase hostowany na własnej infrastrukturze, z 559 wersjonowanymi migracjami, z których 195 obejmuje polityki Row Level Security. Pliki — nagrania, dokumenty wiedzy, próbki głosu — znajdują się w oddzielnych repozytoriach, a ścieżka zaczyna się od identyfikatora obszaru roboczego, tak aby izolacja była w strukturze, a nie tylko w zapytaniu.
Co nigdy nie trafia na Twoją stronę
Klucz dostawcy głosu i identyfikator agenta. Strona otrzymuje tylko podpisany, krótkotrwały URL, wystawiony przez platformę. Praktyczna konsekwencja: ktoś, kto czyta źródło Twojej strony, nie może użyć Twojego agenta na Twój koszt.
Co jest rejestrowane z rozmowy
Audio, transkrypt, czas trwania, numer dzwoniącej osoby, wynik rozmowy i analiza po niej. W przypadkach, gdy agent pamięta klienta między rozmowami, zapisywane jest też krótkie podsumowanie poprzedniej rozmowy. Wszystko jest powiązane z jednym obszarem roboczym; nie ma wspólnego repozytorium ponad klientami.
Usuwanie na żądanie istnieje; automatyczne usuwanie po terminie jeszcze nie
Mówimy to tak, jak jest, bo to różnica między obietnicą a funkcją. Usuwanie na żądanie jest zaimplementowane: dedykowana funkcja usuwa obiekty z repozytorium plików, wywołuje procedurę usuwania z bazy i unieważnia sesje; osobno istnieje eksport danych i funkcja dla danych z rozmów. Czego nie zaimplementowano: konfigurowalnych terminów retencji per obszar roboczy. Są zaprojektowane w wewnętrznym dokumencie z kwietnia, ale kolumna konfiguracyjna nie pojawia się w żadnej migracji — więc dziś usuwanie po terminie odbywa się przez procedurę, nie przez zegar. Jeśli Twój projekt potrzebuje automatycznego usuwania, wchodzi ono jako praca, a nie jako ustawienie.
Kto jest informowany, że rozmawia z agentem
Komunikat, że rozmówca rozmawia z systemem automatycznym, podstawa nagrywania rozmowy oraz tekst odczytywany na początku połączenia są ustalane razem z Tobą i trafiają do scenariusza. To nie jest ustawienie techniczne: to decyzja administratora danych, czyli Twoja.

Przykład

Przycisk, który nic nie robił — i nawet nie wyrzucał błędu

Sytuacja

Agent głosowy umieszczony na stronie internetowej. Po naciśnięciu nie działo się absolutnie nic: bez dźwięku, bez komunikatu, bez błędu w konsoli, którego osoba początkująca mogłaby zobaczyć. Tego rodzaju usterka zgłaszana jest jako „nie działa” i szukana przez dzień w złym miejscu.

Co zbudowaliśmy

Przyczyny były dwie, obie milczące z natury. Pierwsza: nagłówek `Permissions-Policy` serwera zawierał `microphone=()`, a przeglądarka odrzuca prośbę o mikrofon bez wyświetlania czegokolwiek użytkownikowi. Druga: SDK głosowe było importowane statycznie, a moduł zwracający 404 przy imporcie statycznym wywala cały skrypt — więc także prośba o konfigurację ginęła razem z nim, co sprawiało, że usterka wyglądała dokładnie jak „nic się nie stało”. Przenieśliśmy import SDK do wnętrza kliknięcia przycisku, ustawiliśmy prośbę o mikrofon przed prośbą o sesję i zapisaliśmy nagłówek serwera jako `microphone=(self)`, z polityką treści, która wyraźnie zezwala na sieć dystrybucji SDK.

Co z tego wyszło

Dziś, na tej stronie, nagłówek serwowany w produkcji to `camera=(), microphone=(self), geolocation=(self)`, a polityka bezpieczeństwa treści wyraźnie wymienia źródło SDK. Awaria nie jest już cicha: odmowa mikrofonu daje komunikat po rumuńsku, który mówi, co dokładnie trzeba zmienić, a odmowa nic nie kosztuje, bo sesja nawet nie jest już żądana.

Czego nie mówi ten przypadek

Te dwie przyczyny dotyczą infrastruktury, nie agenta. Jeśli Twoja strona jest serwowana przez kogoś innego, a nagłówki nie są pod naszą kontrolą, ich weryfikacja staje się warunkiem rozpoczęcia pracy, a nie niespodzianką na końcu.

Pytania

O co pytają ludzie, zanim zadzwonią

Z czym konkretnie rozmawia? Jaki silnik stoi za tym?

Wybierasz między ElevenLabs Conversational AI, OpenAI Realtime i Gemini Live albo zostawiasz „auto”, a platforma wybiera według języka i dostępności. Dla syntezy głosu w innych językach niż angielski domyślny jest `eleven_flash_v2_5` — 32 języki, około 75 ms; jeśli chcesz wyższą jakość i akceptujesz większe opóźnienie, `eleven_turbo_v2_5` ma około 250 ms. W OpenAI Realtime jest dziesięć głosów, a silnik sięga do `gpt-realtime-2.1`. Mózg tekstowy wybierany jest osobno, z katalogu, w którym przy każdym modelu zapisane są opóźnienie i koszt na minutę.

Czy mogę go przerwać, gdy mówi, czy muszę czekać, aż skończy?

Możesz. W OpenAI Realtime wykrywanie mowy jest semantyczne, z progiem 0,5, poduszką 300 ms i 500 ms ciszy, a przełącznik przerywania jest włączony domyślnie. W ElevenLabs zdarzenie przerwania jest wysyłane do centrali telefonicznej, aby zatrzymać odtwarzanie. Jeśli jednak masz wrażenie, że „nie da się go przerwać”, przyczyna zwykle jest inna: agent odpowiada akapitami, a nie zdaniami. To naprawia się w promptcie i w limicie tokenów, a nie w progach.

W ilu językach mówi?

Konfiguracja agenta obsługuje 32 języki. Wewnętrzna mapa języków platformy ma 41 wpisów, a panel administracyjny jest przetłumaczony na 20 — trzy liczby dla trzech różnych rzeczy. Rumuński jest domyślnym językiem nowego agenta. Dla konkretnego języka najpierw sprawdzamy, jaka kombinacja modelu głosowego i dostawcy faktycznie go obsługuje, ponieważ nie wszystkie modele obsługują te same języki.

Jak trafia na moją stronę i co muszę u siebie zmienić?

Jedna linia skryptu z publicznym identyfikatorem widgetu albo własny komponent nad `start()` / `stop()` / `toggle()`. Dwie rzeczy muszą być prawdziwe na Twoim serwerze, inaczej przycisk nic nie robi i nie pojawia się żaden błąd: nagłówek `Permissions-Policy` musi zezwalać na `microphone=(self)` — przy `microphone=()` przeglądarka odrzuca mikrofon po cichu — a polityka bezpieczeństwa treści musi zezwalać na ładowanie SDK z używanej sieci dystrybucji. Sprawdzamy to przed publikacją.

Czy może zadzwonić pierwszy, a nie tylko odpowiadać?

Tak, platforma ma wywoływanie partiami, z importem kontaktów, ponownymi próbami i śledzeniem w czasie rzeczywistym. Ale połączenia wychodzące nie zależą tylko od nas: w naszym rejestrze problemów jest udokumentowany przypadek, w którym centrala operatora zaczęła zwracać `403 Forbidden` dla wszystkich wyjść, przy niezmienionej naszej konfiguracji i przychodzących połączeniach działających normalnie. Dlatego testujemy wyjścia osobno, zanim obiecamy kampanię telefoniczną, i dlatego nie sprzedajemy wolumenu połączeń wychodzących przed tym testem.

Co się dzieje, kiedy agent nie zna odpowiedzi?

Przekazuje. Każdy agent ma zapisane limity i skonfigurowaną ścieżkę przekazania. W komunikatorze wątek przechodzi w stan przejęcia przez człowieka, z powodem i przypisaniem do współpracownika. Przez telefon centrala wykonuje przekazanie — ślepe lub wspomagane — do wewnętrznego numeru albo numeru zewnętrznego. To, co wykracza poza rolę agenta, zatrzymuje się, nie jest improwizowane; to wybór projektowy, ponieważ agent improwizujący w regulowanej dziedzinie to ryzyko, nie oszczędność.

Czy rozmowy są nagrywane? Jak długo są przechowywane?

Tak, są nagrywane, transkrybowane i analizowane, a wszystko jest powiązane z Twoim obszarem roboczym. Okres przechowywania to Twoja decyzja jako operatora danych, a nie wartość domyślna, którą Ci narzucamy — i trzeba jasno powiedzieć, że automatyczne usuwanie po terminie nie jest dziś zwykłym ustawieniem w platformie: usuwanie na żądanie jest zaimplementowane, usuwanie po terminie odbywa się procedurą. Jeśli potrzebujesz automatycznego zegara, jest on budowany w projekcie.

Czy to kosztuje, jeśli odwiedzający naciśnie przycisk i potem odmówi mikrofonu?

Nie. Mikrofon jest proszony przed sesją. Jeśli osoba odmówi, żądanie sesji w ogóle nie jest wysyłane, więc nie generuje się żaden podpisany URL i nic nie jest zużywane. Osobno, przed każdą kosztowną operacją platforma sprawdza dostępny kredyt — bramka jest przed połączeniem, a nie na fakturze pod koniec miesiąca.

Czy mogę dziś mieć agenta, który odpowiada na stacjonarny numer telefonu?

Zależy to od elementu, którym nie jest agent: hosta SIP, przez który wchodzi połączenie. Część agenta jest gotowa i można ją natychmiast pokazać na stronie. Część telefoniczna wymaga działającego trunku od operatora i centrali, która odpowiada; w dniu pisania host, przez który przechodzą nasze linie testowe, nie odpowiada, a my nie przedstawiamy jako dostępne czegoś, czego nie możemy uruchomić przed Tobą. Dla realnego projektu telefonia jest wymiarowana osobno — zobacz stronę telefonii i contact center.

Na czym opierają się powyższe stwierdzenia (21 źródeł)
  1. app.kallina.info odpowiada dziś 200; supabase.kallina.info odpowiada na funkcje edgehttps://app.kallina.info/ · 2026-09-06
  2. Nagłówki serwowane dziś w produkcji na megapromoting.com zezwalają na mikrofon i źródło SDKhttps://www.megapromoting.com/ · 2026-09-06

19 z nich to kod i pliki z naszych repozytoriów. Nie publikujemy ich nazw ani numerów linii: razem, na jednej stronie, opisałoby to zbyt dokładnie, jak zbudowane są systemy, które nie należą tylko do nas. Przechodzimy je razem z Tobą, w repozytorium, na życzenie — weryfikacja pozostaje możliwa, tylko odbywa się w rozmowie.

Co chcesz, żeby działało lepiej?

Opowiedz nam o swoim procesie. Wspólnie ustalimy, co warto zbudować, co da się połączyć i jak sprawdzimy wynik.

Porozmawiajmy