Yapay Zeka Kullanarak Sesli Ajan Nasıl Oluşturulur (Kapsamlı Rehber)

@Av1dlive
İNGILIZCE2 ay önce · 18 May 2026
491K
257
35
25
583

TL;DR

Bu rehber, basit sohbet robotlarından gelişmiş sesli sistemlere geçişi; düşük gecikmeli işlem hatları, çift ajanlı RAG modelleri ve yapay zeka güvenilirliğinde konuşma tasarımının kritik rolü üzerinde durarak detaylandırmaktadır.

İşte kimsenin AI geliştiricilere söylemediği gerçek. Ses ajanlarının en iyi modele ihtiyacı yok. Tek ihtiyaçları şu:

TLDR; okumayı sıkıcı buluyorsan ya da dikkat süren tükenmişse, hazırladığım beceri dosyasını kullanarak tüm makaleyi alıp ajanına yapıştırabilirsin ➡️https://github.com/codejunkie99/voice-agent-builder

Tek ihtiyacın olan:

  • Gerçek bir gecikme bütçesine sahip gerçek zamanlı bir pipeline
  • Doğru sırada bağlanmış beş bileşen
  • Modeli dürüst tutacak kadar güçlü bir temellendirme
  • Biriken haftalık inceleme döngüsü

OpenAI, 7 Mayıs 2026'da GPT-Realtime-2'yi yayınladı. Salesforce AI Research, 1 Mart'ta VoiceAgentRAG makalesini yayınladı; aynı hafta Deepgram Flux beta aşamasından genel kullanıma geçti. Parçalar artık sorun değildi.

Sorun olarak kalan şey, onları nasıl bağladığın ve ajana ne söylemesi için yazdığındı.

Son üç ayımı telefona gerçekten cevap veren ses ajanları inşa ederek geçirdim. Hiçbirinin temiz olduğunu iddia etmeyeceğim.

  • İlk yapı bir kiosk gibi ses çıkarıyordu. İki günde hurdaya ayırdım.
  • İkinci yapı, fark etmeden önce ilk saatte dört hayali randevu "ayarladı".
  • Üçüncü yapıda bellek sızdı çünkü arka plan çıkarıcısı yeni bilgiler yazdıktan sonra bağlam önbelleğini geçersiz kılmayı unutmuştum.
  • Bir şey çalışana kadar sistem dördüncü yeniden yazımdı.

Şimdi savunacağım versiyonun, önümüzdeki 6.000 kelime boyunca açıklayacağım küçük bir dizi özelliği var.

  • Pipeline'ın tek bir bütçe içinde tek bir işi var. Beş bileşen, uçtan uca 700ms'nin altında, istisna yok.
  • Bilgi, belgelerinde yaşar ve modelin kafasından çekilmek yerine çift ajanlı bir önbellekle alınır.
  • Konuşma tasarımı, kulaklar için yazma disiplinidir, gözler için değil. Çoğu ekip bunu kozmetik olarak görür. Öyle değil.
  • Her tur, 90 gün sonra mevcut yapılandırmaya karşı oynatabileceğim yapılandırılmış bir günlük yazar.

Bu makale, o 90 günün bana gerçekten öğrettikleri ve bugün sıfırdan başlasaydım ilk yapacağım iki veya üç bahis.🔽🔽

Ses ajanı aslında nedir

Bir ses ajanı, mikrofon takılmış bir sohbet robotu değildir. Bir metin API'si etrafındaki bir TTS sarmalayıcısı değildir.

Gerçek zamanlı bir ses sistemidir. Gecikme kısıtlıdır. Beş bileşenin 300 ila 800 milisaniyelik bir pencere içinde koordine olduğu bir sistemdir.

Olayların gerçekte gerçekleşme sırasına göre pipeline:

  1. Kullanıcı konuşur
  2. Ses yakalanır
  3. Akışlı STT, kişi hâlâ konuşurken kelime kelime yazıya döker
  4. Ajan yazıyı okur ve belgelerinden ilgili bilgiyi alır
  5. LLM bir yanıt üretir
  6. TTS yanıtı sesli olarak okur
  7. Kullanıcı duyar

Bu oklardan her biri, seçebileceğin, ayarlayabileceğin ve değiştirebileceğin bir bileşendir.

Önce sohbet robotu yöntemiyle inşa etmeyi denedim. STT tamamlanır, LLM'ye gönderilir, tam yanıt beklenir, TTS'ye gönderilir, tam ses beklenir, oynatılır.

Berbat hissettiriyordu. Bir kioskla konuşmak gibi. İki gün içinde sildim.

Berbat hissettirmesinin nedeni gecikme rakamlarının kötü olması değildi. Kâğıt üzerinde iyiydiler. Nedeni, insanların sırayla sohbet etmemesidir. Örtüşen akışlarla sohbet ederler.

  • Ajan, kullanıcı cümlesini henüz bitirirken bir yanıt oluşturmaya başlamalıdır.
  • TTS, LLM yazmayı bitirmeden konuşmaya başlamalıdır.
  • STT, ajan konuşurken dinlemeye devam etmeli, böylece ne zaman susacağını bilir.

Kesilemeyen bir ses ajanı, ses ajanı değildir. Telesekretere dönüşür.

Üç mimari

Sadece üç tane var. Neyi kontrol etmen gerektiğine göre seç.

Zincirlenmiş pipeline

  • Ayrı STT, LLM, TTS hizmetleri birbirine bağlı
  • Her biri kendi işinde uzmanlaşmış üç bağımsız model
  • Aralarında metin akışı
  • İyi ayarlanmış yönetilen bir platformda gecikme yaklaşık 600 ila 700ms
  • En kontrollü, en hata ayıklanabilir, her katmanı tek tek yükseltmesi en kolay

Yarı kaskad

  • Ses, yazıyı değil sesi duyan çok modlu bir modele doğrudan girer
  • Birinin sesindeki hayal kırıklığını, yükselen tondan ima edilen bir soruyu, cümle ortasında dil değişimini yakalar
  • Çıktı, ses kontrolü için hâlâ özel bir TTS üzerinden yönlendirilir
  • Gecikme 300 ila 500ms'ye düşer

Yerel konuşmadan konuşmaya

  • Tek model, ses girer, ses çıkar
  • Yazıya dönüştürme katmanı yok, metin aktarımı yok
  • 2026'da her büyük laboratuvar yerel bir ses modeli yayınladı
  • Gecikme 200 ila 300ms'ye, arayanların AI ile konuştuklarını fark etmeyi bıraktıkları eşiğin altına düşer

Hangisiyle başlamalı

  1. Zincirlenmiş pipeline ile başla. Bunun için en iyi araçlar mevcut. Pipeline üzerinde ürününü kanıtladıktan ve adım fonksiyonu gecikme iyileştirmesi istediğinde konuşmadan konuşmaya geç.
  2. Her şey için önce konuşmadan konuşmayı denedim. Rezervasyon akışlarında mükemmeldi.
  3. 12 adımlı bir giriş formunda dağıldı çünkü tek model, dokuzuncu turda bağlam şişmesi olmadan durum makinesini kafasında tutamıyordu.
  4. Bunu, gerçek bir durum makinesi katmanına sahip zincirlenmiş bir pipeline'a taşıdım ve tamamlama oranı üç günde %61'den %89'a fırladı.
  5. Durum başına araç kapsamı tüm düzeltmeydi.

Bağlaman gereken beş bileşen

Her zincirlenmiş pipeline aynı beş bileşene sahiptir. Ajanının ilk çağrısını yapmadan önce doldurulması gereken beş iş.

Kulaklar (Akışlı STT)

STT modeli, gelen sesi gerçek zamanlı olarak, kişi hâlâ konuşurken kelime kelime metne dönüştürür. Bu, yığınındaki en önemli bileşendir. Buradaki bir yazıya dökme hatası aşağıdaki her şeye kademeli olarak yansır.

2026'da nelere bakılmalı:

  • Akış doğruluğu. Kişi konuşurken doğru, sadece bitirdikten sonra değil.
  • Kelime Hata Oranı. Gerçek üretim sesinde %6 ila %8 iyidir. %12'nin üzeri her üç çağrıdan birinde kullanıcıları hayal kırıklığına uğratır.
  • Dahili konuşma sırası sonu algılama. 2026'nın en büyük tek UX yükseltmesi.

Konuşma sırası sonu algılama neden önemlidir:

  • Genel STT yazılar döndürür. Konuşmacının ne zaman bitirdiğini söylemez.
  • Bu olmadan ajanın ya cümle ortasında sözünü keser ya da iki garip saniye bekler.
  • 2026 akışlı STT modelleri dalgası, yazıyı üreten ağın içinde konuşma sırası sonu algılamasıyla birlikte gelir.
  • Model, konuşmacının işi bittiğine karar verdiğinde bir tur-tamam sinyali yayar.
  • Sinyal, sadece akustik sessizliği değil, anlamsal bağlamı kullanır. Sesi kaybetmeyi yakalar ve nefes duraklamalarını yok sayar.
  • Sağlayıcın bunu yayınladıysa buna geç. Ajanın konuşmaya başlamadan önceki duraklama her turda 200 ila 400ms düşer.

Beyin (LLM)

LLM, yazıyı, konuşma geçmişini, alınan bilgiyi okur ve ne söyleyeceğine karar verir. Ayrıca sadece kelimeler değil, eylemler de belirler.

Sese özel kurallar:

  • Küçük hızlı modeli kullan, amiral gemisini değil. Sınır akıl yürütme modelleri ilk kelimeyi üretmek için 1500ms alır. Bu ölü havadır. Aynı ailedeki daha küçük modeller ses turlarında neredeyse her zaman kazanır.
  • Sadece gerçek planlama gerektiren belirli karmaşık araç çağrıları için büyük modele yükselt.
  • Sistem istemini 800 jetonda sınırla. Her turda yeniden yüklenir. 4000 jetonluk bir istem, her mesaja gecikme ekler.

İşlev çağrısı, açık Türkçeyle:

  • Her işlevi ne yaptığına ve hangi bilgiye ihtiyaç duyduğuna dair bir açıklamayla tanımlarsın.
  • LLM açıklamayı okur ve konuşma durumuna göre ne zaman çağıracağına karar verir.
  • Koşullu mantık ağacı yok. LLM, niyeti doğal dilden işleve eşler.

İşlev çağrısıyla ilgili en yaygın üretim hatası beklediğin gibi değil:

  • LLM bir işlevi çağıramadığında hata vermez. Bunun yerine eylemi anlatır.
  • "Rezervasyonunuzu onayladım." Hiçbir şey çağrılmadı. Kullanıcı rezerve edildiğini düşünür. Değildir.
  • Çözüm, araçları mevcut duruma göre kapsamlamaktır. Bir "ad topla" durumu book_appointment'ı göstermemelidir. Bir "detayları onayla" durumu check_availability'yi göstermemelidir.
  • Durum makinesi güvenlik rayıdır, sistem istemi değil.

Bilgi (RAG)

RAG, ajanının modelin eğitim verileri yerine belgelerinden cevap vermesini sağlayan mekanizmadır.

Bunu neden atlayamazsın:

  • LLM'ler, bir kesme tarihine kadar genel internet üzerinde eğitilir.
  • Dünya hakkında çok şey bilirler. Ürünlerin, fiyatların, politikaların, müşterilerin hakkında hiçbir şey bilmezler.
  • RAG olmadan, "kurumsal planda ne var?" diye sorulan bir ajan kendinden emin bir şekilde halüsinasyon görecektir.
  • RAG ile, yanıtlamadan önce belgelerinden gerçek cevabı alır.

Temel mekanik:

  • Kullanıcı bir soru sorar.
  • Sistem sorguyu gömer.
  • Vektör veritabanı ilgili belge parçalarını döndürür.
  • Parçalar LLM'nin bağlamına enjekte edilir.
  • LLM'ye sadece bu bağlamdan cevap vermesi talimatı verilir.

Sese özel zorluk:

  • Tipik bir vektör veritabanı sorgusu pipeline'a 50 ila 300ms ekler.
  • STT, LLM ve TTS ile birleştiğinde bu gecikme bütçeni patlatır.
  • Çözüm, çift ajanlı önbellek desenidir. Bununla ilgili tüm bölüm aşağıda.

Ağız (TTS)

TTS, metni konuşulan sese dönüştürür. Kulağa basit gelir. Aslında algılanan kalitede büyük bir farklılaştırıcıdır.

Önemli olan:

  • İlk sese kadar geçen süre. Konuşmaya başlaması 200ms süren bir TTS, gecikme bütçenin üçte birini sadece çıktı katmanında yakar.
  • Ses kalitesi. İnsanlar sentetik konuşmaya olağanüstü duyarlıdır. İnce eserler, doğal olmayan tempo, yanlış yerleştirilmiş vurgu - bunların hepsi tüm sistem hakkında bir karar olarak okunur.
  • Sesi bilinçli olarak seç. Kullanıcı bir cümle duymadan önce bir güven sinyalidir.

Eller (İşlevler ve entegrasyonlar)

İşlevler, LLM'nin konuşma sırasında gerçekleştirebileceği eylemlerdir:

  • Randevu al
  • Sipariş durumlarını sorgula
  • Onay SMS'i gönder
  • Bir insana aktar
  • CRM'ndeki kayıtları güncelle

Bu, modern ses ajanlarını bas-1-fatura-sistemi sistemlerinden dramatik ölçüde daha yetenekli kılan mimari değişimdir.

İçine sığman gereken gecikme bütçesi

Ses ajanlarıyla ilgili en önemli bariz olmayan şey: her milisaniyelik işlem süresi, arayanın içinde oturduğu bir milisaniyelik sessizliktir.

Matematik:

  • İnsanlar bir cümleyi bitirdikten sonra 500 ila 700ms içinde bir konuşma yanıtı bekler
  • Bir saniyeyi geçince sistem zorlanıyormuş gibi hissettirir
  • İki saniyeyi geçince arayanlar ajanın üzerine konuşmaya başlar

Bu 700ms, her bileşene bölünmüş toplam bütçendir.

Bileşen bazında bütçe, hızlı şerit vs yavaş şerit:

  • Taşıma. Eşler arası 20-50ms. Aktarıcılar üzerinden 50-100ms.
  • STT ilk ara. Önbellek isabetinde 100-150ms. Iskalamada 150-250ms.
  • Konuşma sırası sonu algılama. Model entegreli, ~50ms. Sessizlik eşiği, 300-600ms.
  • RAG alma. Önbellek isabetinde milisaniyenin altı. Yerel BM25 + yeniden sıralamada 80-150ms.
  • LLM ilk jetona kadar geçen süre. Küçük modelle 150-250ms. Sınır modelle 400-600ms.
  • TTS ilk sese kadar geçen süre. Hızlı kademede 60-100ms. Kalite kademesinde 150-250ms.
  • Ağ yükü. Tek bölge içinde toplam 40-80ms. Bölgeler arası toplam 100-160ms.
  • Uçtan uca. Hızlı şeritte ~440ms. Yavaş şeritte ~700-900ms.

2026'daki en büyük iki açılım:

  1. Model entegreli konuşma sırası sonu algılama. Her turdan 200 ila 400ms kaldırır. Bu yıl yapabileceğin en büyük tek yükseltme.
  2. Çift ajanlı önbellekle spekülatif önceden getirme. Turların yaklaşık %40'ında almayı "vektör aramayla ıskala"dan "önbellek aramasıyla isabet"e taşır.

Diğer her şey bu ikisine kıyasla yuvarlama hatasıdır.

Çift ajanlı RAG deseni

Ses döngüsü içindeki standart RAG bir sorundur. Vektör veritabanı sorgusu 80 ila 300ms alır ve her turda gecikme bütçeni patlatır.

2026 araştırma cevabı, Mart ayında yayınlanan Salesforce AI Research'un VoiceAgentRAG makalesinden geliyor. İçgörü basit.

  • Gerçek bir konuşmada, bir sonraki soru genellikle mevcut olandan tahmin edilebilir.
  • Fiyatlandırma hakkında soru soran biri muhtemelen kurumsal kademeyi takip edecektir.
  • Kurulum hakkında soru soran biri muhtemelen uyumluluğu soracaktır.

Bu yüzden aynı anda iki ajan çalıştırırsın.

Arka plan ajanı (Yavaş Düşünür)

  • Kullanıcı mevcut yanıtı dinlerken çalışır
  • LLM'yi kullanarak en olası üç ila beş takip sorusunu tahmin eder
  • Her tahmin için ilgili belge parçalarını önceden getirir
  • Kullanıcı mevcut cevabı duymayı bitirmeden önce bunları yerel bir bellek içi önbellekte saklar

Ön plan ajanı (Hızlı Konuşmacı)

  • Bir sonraki canlı soruyu önce bellek içi önbelleği kontrol ederek ele alır
  • Bir önbellek araması, uzak bir vektör veritabanı çağrısı için 110ms'ye karşılık milisaniyenin altında sürer
  • Önbellekte cevap varsa, veritabanını tamamen atla
  • Önbellek ıskalarsa, veritabanına geri dön ve bu sonucu bir dahaki sefere önbelleğe al

Makaleden kıyaslama rakamları

  • Sorguların %75'i önbelleğe isabet eder
  • Önbellek isabetlerinde 316× alma hızlanması (0,35ms vs 110ms)
  • 200 sorguda birikmiş 16 saniye gecikme tasarrufu

Hatırlaman gereken ilke: kullanıcının dinleme süresini hesaplama süren olarak kullan. Mevcut yanıtı duymaya başladıkları an, bir sonraki sorularına hazırlanmaya başladığın andır.

İlk yapımda ses döngüsü içinde düz vektör RAG'ı denedim. Tur başına 110ms ekledi.

Konuşma hissini öldürdü. Altıncı haftada çift ajanlı önbellek desenine geçtim. Önbelleğe isabet eden %40'lık turlar, ajanın yerini aldığı insan çağrı merkezi temsilcilerinden daha hızlı hissettiriyor.

Konuşma tasarımı çoğu geliştiricinin atladığı disiplindir

En hızlı STT'ye, en küçük LLM'ye, en akıllı RAG önbelleğine sahip olabilirsin. Ajanın nasıl konuşulacağını bilmiyorsa, arayanlar kapatır.

Konuşma tasarımı, kulaklar için yazma disiplinidir, gözler için değil.

Şimdi takip ettiğim ve önce yanlış yaparak öğrendiğim kurallar

  • Kısa cümlelerle konuş. Sözlü bilgi için ortalama insan dikkat süresi 8 ila 10 saniyedir. 15 saniyelik bir yanıt çok uzun. İki tura böl.
  • Bir turda asla iki soru sorma. Arayanlar çalışan bellekte sadece birini tutabilir. Birini sor, bekle, sonra diğerini sor.
  • Onay ifadeleri kullan. "Anlaşıldı." "Tabii." "Sizin için kontrol edeyim." Bunlar kullanıcının bitirmesi ile yanıtın hazır olması arasındaki sessizliği doldurur.
  • Kullanıcının dilini yansıt. Arayan "fatura sorunu" derse, ajan da "fatura sorunu" desin. "Mali anlaşmazlık" veya "ödeme problemi" değil. Açıklama yapmak sürtünme yaratır. Yansıtmak uyum yaratır.
  • Kulak için yaz, göz için değil. Sistem isteminde madde işareti yok, başlık yok, işaretleme yok. LLM yıldız ve tire konuşmaya çalışacaktır.
  • Sayıları harfle yaz. "94.107" yerine "doksan dört bin yüz yedi". "$15.99" yerine "on beş dolar doksan dokuz sent". TTS biçimlendirilmiş sayıları rutin olarak yanlış telaffuz eder.
  • Sistem istemini 800 jetonda sınırla. Her turda yeniden yüklenir.

Her iyi ses konuşmasının üç perdelik yapısı

  1. Onaylama ve yönlendirme. "Yani Perşembe günkü randevunuzu yeniden planlamak istiyorsunuz, hemen bakayım." Arayanın anlaşıldığını onaylar. Alma çalışırken zaman kazandırır.
  2. Çözüm. Temel eylem veya cevap. Tur başına bir nokta. İlerle.
  3. Onaylama ve kapatma. "Randevunuzu 19'u Pazartesi günü saat 15:00'a yeniden planladım, kısa süre içinde bir onay mesajı alacaksınız." Temiz çıkış. Asla açık döngü bırakma.

Güvenlik tek kontrol noktası değil, ikidir

Çoğu ilk kez geliştirici tarafından atlanan ve pişman olunan bileşen.

Bir ses ajanında "göndermeden önce oku" anı yoktur. Güvenli olmayan bir çıktı hemen konuşulur. Taslak yok, önizleme yok, süreçte insan yok.

Doğru model iki kontrol noktasıdır.

Giriş koruması (LLM kullanıcının turunu görmeden önce)

  • İstem enjeksiyonu. "Önceki talimatları yoksay, ... gibi davran" saldırıları. LLM'nin talimat takibini kullanarak veri çalmak veya kapsamı kırmak.
  • Yüksek sesle söylenen KİK. Kredi kartı numaraları, sosyal güvenlik numaraları. Herhangi bir günlüğe veya veritabanına ulaşmadan önce karart.
  • Konu engelleme listesi. Bir JSON dosyasından yüklenir. Kullanıcıların gerçekte ne denediğini öğrendikçe haftalık olarak güncellenir.

Çıkış koruması (LLM yanıtını yazdıktan sonra, TTS konuşmadan önce)

  • Aşırı vaat dili. "Garanti ederim", "Söz veriyorum." Kaydedilmiş bir hatta yasal ve güven sorunları yaratır.
  • Alınan bağlamda olmayan belirli olgusal iddialar. Hafif halüsinasyon kontrolü. Dağıtımımda uydurma cevapların yaklaşık %70'ini yakalar.
  • Standart moderasyon uç noktası. Nadir model yanlış davranışları için.

Her iki korumanın döndürdükleri

  • safe (bool)
  • detected category (string, unsafe ise)
  • ajanın bunun yerine söylediği değiştirme ifadesi

Her tetikleyici, zaman damgası, kategori, karartılmış metin ve çağrı kimliği ile bir dosyaya kaydedilir.

Yükseltme ifadesi

Tam olarak bir ifade, sabit kodlu, ajanın cevabı bilmediğinde veya bir şeyler ters gittiğinde söylediği.

  • "Size doğru bilgi verdiğimden emin olmak istiyorum. Sizi yardımcı olabilecek biriyle görüştüreyim."
  • Beş varyasyon değil. LLM'nin doğru ifade hakkındaki doğaçlama tahmini değil.
  • Tek bir ifade. Sistem isteminde TAMAMI BÜYÜK HARF. Herhangi bir güvenlik kontrolü ateşlendiğinde geçiş.

Birinci yapıda çıkış koruması olmadan yayınladım. Ajan kendinden emin bir şekilde gerçek fiyattan %30 daha düşük bir fiyat söyledi.

Fiyat, bilgi tabanındaki güncel olmayan bir belgedeydi.

Halüsinasyon kontrolü onu yakalardı çünkü doğru fiyat alınan bağlamda değildi.

Değerlendirme veya iyi olup olmadığını nasıl anlarsın

Ölçemediğini geliştiremezsin. Çoğu ekip değerlendirmeyi atlar ve bozuk ajanlar yayınlar.

Dört katmanlı çerçeve

Katman 1: Altyapı. Tesisat.

  • Kendi alanında KHO (satıcı kıyaslamaları değil)
  • Tam pipeline için p50, p95, p99 gecikme
  • İlk sese kadar geçen süre
  • Taşıma üzerinde ses kalitesi

Katman 2: Yürütme. Ajan isteneni yapıyor mu?

  • Görev başarı oranı
  • Araç çağrısı doğruluğu
  • Parametre doğruluğu
  • Yanıt temellendirilmişliği
  • Küçük hızlı bir modelde LLM'yi yargıç olarak kullan. Dört evet/hayır sorusu: doğru cevaplandı, temellendirilmiş kaldı, ses için doğal ses çıkardı, uygun şekilde özlüydü.

Katman 3: Kullanıcı davranışı. Konuşması doğal hissettiriyor mu?

  • Araya girme kurtarma oranı
  • Tekrar isteme oranı
  • Ortalama tur uzunluğu
  • Konuşma onarım sayısı
  • Haftada 20 çağrı örnekle. Gerçek yazıları oku. On içinde desenleri göreceksin.

Katman 4: İş sonucu. Sorunu çözüyor mu?

  • Kapsama oranı (insan olmadan çözülen çağrıların yüzdesi)
  • Aktarma oranı
  • Müşteri memnuniyeti puanı
  • İlk çağrı çözüm oranı
  • Kapsamaya göre optimize et. Diğer her şeyle ilişkilidir ve enstrümantasyon olmadan ölçülmesi en kolay olanıdır.

Test seti bileşimi

Yayınlamadan önce oluştur. En az 50 konuşma.

  • %40 mutlu yol
  • %30 uç durumlar
  • %15 hata işleme
  • %10 çekişmeli (istem enjeksiyonu, jailbreak girişimleri)
  • %5 akustik varyasyon (arka plan gürültüsü, ağır aksan, hoparlör)

Her senaryo için:

  • Hangi araç çağrılmalıydı
  • Hangi parametrelerle
  • Ajan ne söylemeliydi

Haftalık inceleme döngüsü

Her Pazartesi sabahı. 30 dakika.

  1. Metrikleri çek
  2. 20 çağrıyı örnekle (7 aktarılmış, 7 çözülmüş, 6 rastgele)
  3. Yazıları oku
  4. En yaygın tek başarısızlık türünü adlandır
  5. Bir değişiklik yap (her seferinde tek bir değişken)
  6. 48 saat A/B test et
  7. Kazananı yayınla

Temellendirme bir güven sistemidir

Çoğu geliştirici RAG'ı bir performans özelliği, daha doğru cevaplar almanın bir yolu olarak düşünür. Bu çerçeve onu küçümser.

Bir ses ajanında, her cevabın doğruluğu, ürününün ne kadar güvenilir olduğu hakkında doğrudan bir ifadedir. Fiyatlandırma, kapsam veya politika hakkında doğal sesli bir tonda kendinden emin bir şekilde söylenen yanlış bir cevap duyan arayan sadece hayal kırıklığına uğramaz. Aldatılmış hissedecektir.

Güven vaadinin uygulanmasının dört parçası vardır.

  1. Gerçeğin kaynağı
  • Modelin eğitim verileri değil, senin belgelerin
  • Sistem istemi bunu açıkça söylemeli, büyük harflerle: SADECE SAĞLANAN BAĞLAMDAN CEVAP VER
  • Model bazen yine de genel bilgiye kayar, ancak açık talimat oranı bir büyüklük sırası düşürür
  1. Kibar reddetme
  • Ajan bir cevap bulamadığında doğrudan söyler
  • Tam ifade önemlidir
  • "Size doğru bilgi verdiğimden emin olmak istiyorum, kontrol edeyim" size kibar bir aktarma sağlar
  • "Emin değilim" yetersizlik gibi gelir
  • "Bilgilerime göre" bir avukattan gelen kaçamak gibi gelir
  • Bir ifade seç, sabit kodla, LLM'nin burada doğaçlama yapmasına asla izin verme
  1. Güven düzeyine duyarlı yanıt
  • Alınan parçalardaki en yüksek BM25 puanı güven için kullanışlı bir vekildir
  • 0,6'nın üzerinde puan: ajan güvenle cevap verir
  • 0,3 ila 0,6 arası puan: ajan cevap verir ancak "sanırım" kaçamağı ekler
  • 0,3'ün altında puan: ajan cevap vermez, aktarma teklif eder
  • Sistem istemi oluşturma kodunda 20 satırlık değişiklik. Halüsinasyonları kabaca yarıya indirir.
  1. Bilgi tabanı hijyeni
  • Güncel olmayan belgeler, tehlikeli cevaplar olan güncel olmayan cevaplar üretir
  • Cuma denetimi yapıyorum: haftanın güven puanı en düşük %5'lik yanıtları oku
  • Zamanın yarısında cevap doğruydu ancak alma eski bir parça buldu
  • Parçayı güncelle, yeniden göm, gelecek hafta daha sessiz

Nelere dikkat etmelisin

Seni vuracak altı başarısızlık modu.

Taşıma yerine pipeline'da VAD

  • Sorun. Ajan kendi TTS çıktısında tetiklenir, araya girme döngüsüne girer veya tur sonunu tamamen algılayamaz.
  • Çözüm. VAD analizörü taşımada olur. Her zaman. Son asistan çıktısıyla eşleşen STT yazılarını yok sayan bir yankı korumasıyla eşleştir.

Araçlar yanlış durumda mevcut

  • Sorun. LLM, hastanın adını hâlâ toplayan bir durumda book_appointment'ı çağırır. Veya hiç gerçekleşmemiş bir rezervasyon uydurur.
  • Çözüm. Araçları durum başına kapsamla. Bir durum, sadece kendi işlevleri. Durum makinesi güvenlik rayıdır, sistem istemi değil.

İşlev işleyicisi hata fırlatır ve sonuç geri çağrısını asla çağırmaz

  • Sorun. LLM, hiç gelmeyen bir araç sonucu beklerken takılır. Veya bir tane uydurur.
  • Çözüm. Her işleyici try/except içine sarılır. Her dal bir sonuç geri gönderir. Her başarısızlığın sözlü bir yedeği vardır. Asla boş bir sonuç olmasın.

Kullanıcı verilerini kod yerine istemde doğrulama

  • Sorun. LLM, 12. çağrıda "john@"yi gerçek bir e-posta olarak kabul eder. 47. çağrıda artı işaretli geçerli bir e-postayı reddeder.
  • Çözüm. Doğrulama Python'da yaşar. E-posta için regex, tarihler için tarih ayrıştırıcı, ad uzunluğu kontrolü, doğrulama başarısız olduğunda yeniden sorma yanıtı.

Uzun bir çağrıda bağlam penceresi sınırsız büyür

  • Sorun. p95 gecikme, kod değişikliği olmadan hafta içinde yukarı doğru sürüklenir. 20. turda tur başına 12K jeton gönderiyorsundur.
  • Çözüm. Son N tur ve sistem isteminden oluşan kayan pencere. Veya her ayrı aşamanın sonunda dönüm noktası tabanlı bağlam sıfırlamaları.

TTS kodları ve kimlikleri harfi harfine okur

  • Sorun. "A3X7" onay kodu, duraklama olmadan "ay üç eks yedi" olarak çıkar. Hasta yine de tekrarlamanı ister.
  • Çözüm. SSML mola etiketleriyle NATO fonetik alfabesi genişletmesi. Daha yavaş gelir. İlk seferde doğru okunur.

Farklı yapacağım şeyler

  • Tur günlüğü şemasını birinci günde oluştur, dördüncü haftada değil. Tekrar oynatma uç noktası inşa ettiğim en değerli araç ve ihtiyacım olduktan sonra inşa ettim.
  • Başından itibaren anlamsal konuşma sırası sonu algılama kullan, sessizlik eşikleriyle savaşmak yerine.
  • Sistem istemi 300 kelimeyi geçtiği gün gerçek bir durum makinesine geç. Bir durum makinesini düzyazıda kodlamaya çalışma.
  • İstemlerde doğrulamayı bırak. LLM bir ayrıştırıcı değildir. Python bir ayrıştırıcıdır. Python kullan.
  • Çağrı başlangıcında en olası beş RAG belgesini önbelleğe al. Tur döngüsü içinde vektör aramayı atla.
  • Almayı inşa etmeden önce küçük konuşma geçidini inşa et. "Merhaba" sistemdeki en ucuz 200ms kazancıdır.
  • İlk üretim çağrısından önce değerlendirme setini çalıştır. En az 50 konuşma.
  • Birinci günden itibaren dayanıklı bir çıkarma kuyruğu koy. Bekleyen çıkarmalar için tek bir yeniden deneme işçisi olan bir Postgres tablosu 200 satır alır ve seni gerçek bir kesintiden kurtarır.
  • Her 50. çağrıda eşzamansız bir LLM yargıcı çalıştır. Temellendirilmişlik, alaka düzeyi, kısalık üzerine puanla. Bir gösterge panosuna yönlendir. Sürüklenme gerçektir.
  • Haftalık inceleme döngüsünü çalıştır. Her Pazartesi 20 çağrıyı örnekle. Bir değişiklik yap. A/B test et. Kazananı yayınla.

Sonuç

Ses ajanları AI gibi görünür. Gerçek zamanlı sistemler gibi çalışırlar.

Yayın yapan ekipler onlara bu şekilde davranır. Altı ay geç yayın yapan ekipler daha iyi bir istemin sistem sorununu çözeceğini düşünür.

Pipeline'ına sahip çık. Günlüklerine sahip çık. Onları, herhangi bir başarısızlığın bir tekrar oynatma uzakta olduğu düz dosyalarda tut.

İlk ajan bir hafta sonumu aldı. Üretim sistemi on hafta sürdü. O zamandan beri, ben hiç dokunmadan her geçen gün daha iyiye gidiyor. Kullanıcı bunu ölçmez. Ajanın "teşekkürler" yanıtını onları bekletmeden verdiğini fark eder.

Feragatnameler ve Açıklamalar

Bu makale yazar tarafından araştırılmış ve yazılmıştır, bir AI modeli tarafından düzenlenmiştir. Küçük resim Pinterest'ten alınmıştır.

Bu makale yazar tarafından, ses ajanları üzerinde daha derin altyapıda çalışırken araştırılmış ve yazılmıştır.

Gelişen notlara ve Perplexity, Claude ve ChatGPT kullanılarak yapılan derin araştırmalara dayanmaktadır; ayrıca birkaç lisans düzeyi üniversite kitabından sistem tasarımı ve API tasarımı da içerir.

Minimax M2.7 ve Claude Opus 4.7 tarafından dilbilgisi hataları ve biçimlendirme için kapsamlı bir şekilde düzenlenmiştir.

Save to YouMind

Use YouMind to read viral articles deeply

Save the source, ask focused questions, summarize the argument, and turn a viral article into reusable notes in one AI workspace.

Explore YouMind
Üreticiler için

Markdown'ınızı temiz bir 𝕏 makalesine dönüştürün

Kendi uzun yazılarınızı yayımlarken görselleri, tabloları ve kod bloklarını 𝕏 için biçimlendirmek zahmetlidir. YouMind, eksiksiz bir Markdown taslağını temiz ve hemen paylaşılabilir bir 𝕏 makalesine dönüştürür.

Markdown'dan 𝕏'e deneyin

Çözülecek daha fazla kalıp

Son viral makaleler

Daha fazla viral makale keşfet