تصور کنید میلیونها نفر به دلیل ناتوانی در خواندن متون پیچیده انگلیسی، از سادهترین خدمات بانکی محروم باشند. Dhan Saathi (همراه ثروت) دقیقاً برای حل این بحران ساخته شده تا سواد مالی را از طریق گفتگوهای صوتی به دست کسانی برساند که اپلیکیشنهای متنی آنها را طرد کردهاند. این عامل هوش مصنوعی صوتی، اکنون در حال ارائه سواد مالی به میلیونها هندی است که توسط اپلیکیشنهای بانکی متنی-محور نادیده گرفته شدهاند.
این سامانه که به عنوان بخشی از رویداد «۱۰ روز عاملهای صوتی — نسخه VoiceForBharat» معرفی شد، فایلهای PDF خشک انگلیسی، پورتالهای پیچیده طرحهای دولتی و اصطلاحات دشوار بانکی را با راهنماییهای شفاهی و طبیعی به زبانهای انگلیسی-هندی و هندی جایگزین میکند. در واقع، این ابزار مانند یک مترجم صبور است که اصطلاحات دشوار بانکی را به زبان ساده برای کاربر باز میکند.
شمول مالی در هند به بنبستی رسیده است که در آن تعداد عظیمی از مردم برای نخستین بار در زندگی خود از حسابهای بانکی، سیستم UPI و طرحهای دولتی استفاده میکنند. در حالی که اطلاعات لازم وجود دارد، اما اغلب در قالبهایی ارائه میشود که برای افرادی که بیشترین نیاز را به آنها دارند، غیرقابل دسترس است. این کاربران معمولاً کمترین راحتی را در خواندن متون متراکم دارند و دقیقاً همان اهدافی هستند که کلاهبرداران از طریق تماسهای جعلی «OTP» و «KYC» هدف قرار میدهند. در حالی که ما پیشتر پوشش دادیم که چگونه FinEd Saathi سواد بازار را هدف قرار میدهد، Dhan Saathi بر ایمنی عملی و فوری بانکی روزمره تمرکز دارد.
مخاطبان و چالشهای اصلی
طبق گزارش توسعهدهندگان، اپلیکیشنهای متنی بهطور غیرمستقیم کاربرانی را که قادر به پیمایش رابطهای پیچیده نیستند، حذف میکنند. یک خط تلفن صوتی این موانع را بهطور کامل از بین میبرد. کاربران میتوانند با کلمات روزمره خود صحبت کنند و حتی هندی را با انگلیسی ترکیب کنند (Code-mixing). در این سیستم، هیچ اپلیکیشنی برای نصب وجود ندارد، هیچ فرمی برای خواندن نیست و هیچ نیازی به تایپ کردن احساس نمیشود.
قابلیتهای کلیدی Dhan Saathi
این عامل (Agent) — شبیه به یک دستیار شخصی که همیشه در دسترس است و دستورات را اجرا میکند — برای پر کردن شکاف سواد مالی، برای انجام چندین عملکرد خاص طراحی شده است:
- آموزش سادهشده: مفاهیم حساب پسانداز، سیستم UPI یا نحوه عملکرد یک طرح دولتی را توضیح میدهد و هر بار تنها یک ایده کوتاه را به صورت بلند بیان میکند.
- پیشگیری از کلاهبرداری: کاربران را درباره کلاهبرداریهای رایج هشدار میدهد و مسیرهای واقعی گزارش تخلف، مانند تماس با بانک یا خط ملی سایبری در شماره ۱۹۳۰ را معرفی میکند.
- تداوم شخصیسازی: با اجازه کاربر، کاربران بازگشتی را به خاطر میسپارد تا آنها مجبور نباشند تاریخچه و پیشینه خود را تکرار کنند.
- مسیریابی تخصصی: کاربر را برای پرسشهای پیچیده دولتی به یک متخصص طرحهای حمایتی ارجاع میدهد.
- ارتباط فعال: میتواند برای ارسال یادآوریها با کاربران تماس بگیرد یا زمانی که مشکلی فراتر از تواناییهای خط تلفن است، درخواستی برای اتصال به یک انسان واقعی ثبت کند.
Dhan Saathi به عنوان یک راهنمای مالی گرم و صوتی عمل میکند. این سیستم مبانی بانکی، پسانداز و ایمنی UPI را با کلمات ساده توضیح میدهد. مهمتر از همه، این عامل بر اساس حیاتیترین اصل در امور مالی طراحی شده است: هرگز تظاهر نمیکند که یک بانک است و هرگز اطلاعات حساس و اعتبارنامهها را درخواست نمیکند.
معماری فنی و زیرساخت
بر اساس مستندات منتشر شده در dev.to، این سامانه یک خط لوله (Pipeline) بلادرنگ است که از چهار جزء اصلی تشکیل شده که در یک فرآیند پایتون طولانیمدت (long-lived) به هم متصل شدهاند. رابط کاربری با Next.js ساخته شده است؛ نکته فنی این است که نه فرانتاند و نه بکاند مستقیماً یکدیگر را فراخوانی نمیکنند، بلکه هر دو به یک اتاق LiveKit مشترک متصل میشوند.
- Deepgram Nova-3 (STT): نقش «گوش» سامانه را دارد. این جزء از حالت «multi» استفاده میکند تا گفتارهای ترکیبی هندی و انگلیسی را به متن تبدیل کند، به جای اینکه فقط روی انگلیسی تمرکز کند.
- Google Gemini (LLM): به عنوان «مغز» عمل میکند. مدل زبانی بزرگ (LLM) — مثل کتابخانهداری که میلیاردها صفحه را خوانده و حالا با همان لحن جواب میدهد — در اینجا محل استقرار شخصیت، فراخوانی ابزارها (Tool-calling) و حفاظهای ایمنی است تا تصمیم بگیرد چه بگوید یا کدام ابزار را فعال کند.
- Murf Falcon 2 (TTS): وظیفه تبدیل متن به گفتار (TTS) را بر عهده دارد. به طور مشخص از صدای
en-IN-anishaدر سبک «Conversation» استفاده میکند تا متن را به گفتار طبیعی انگلیسی-هندی تبدیل کند. - LiveKit (Transport): لولهای است که صدا را در هر دو جهت جابهجا میکند. این لایه تشخیص نوبت (Turn detection) را مدیریت میکند تا عامل دقیقاً بداند چه زمانی کاربر صحبتش را تمام کرده است. این سیستم انتقال هم برای میکروفونهای مرورگر و هم برای تماسهای تلفنی واقعی از طریق SIP trunk کار میکند.

مکانیسمهای اعتماد و ایمنی
در دنیای حساس مالی، توسعهدهنده یک «منشور اخلاقی» سختگیرانه را در پرامپت سیستمی (System Prompt) تعریف کرده است. این دستورالعمل به شش بخش شفاف تقسیم شده است: هویت (IDENTITY)، اهداف (OBJECTIVES)، دانش (KNOWLEDGE)، زبان (LANGUAGE)، حفاظها (GUARDRAILS) و سبک (STYLE).
حفاظها (Guardrails) — شبیه به نردههای ایمنی در کنار یک پل که اجازه نمیدهند ماشین از مسیر خارج شود — در این سامانه غیرقابل مذاکره هستند:
- محافظت از اعتبارنامهها: عامل هرگز نباید رمز OTP، پین (PIN)، CVV یا شماره حساب بخواهد یا بپذیرد. اگر تماسگیرنده شروع به اشتراکگذاری این موارد کند، عامل باید فوراً او را متوقف کند.
- عدم وعده دادن: عامل نمیتواند وعده دهد که یک وام یا یک طرح دولتی حتماً تأیید خواهد شد.
- ممنوعیت ارجاع ارقام از حافظه: برای جلوگیری از توهم (Hallucination) — وقتی مدل با اطمینان چیزی میگوید که وجود ندارد — مدل اکیداً منع شده است که نرخهای بهره یا ارقام طرحها را از حافظه خود نقل کند تا از هرگونه عدم دقت جلوگیری شود.
- عدم دسترسی به حساب: عامل نمیتواند پول جابهجا کند یا ادعا کند که به حساب بانکی واقعی کاربر دسترسی دارد.
برای تضمین اعتماد، عامل هر تماس را با این وعده صریح آغاز میکند که هرگز رمز OTP نخواهد خواست. این کار یک حفاظ فنی را به یک سیگنال اعتماد برای کاربر تبدیل میکند.
مدیریت زبان و حافظه
یکی از چالشهای اصلی، «رومیسازی» (Romanization) زبان هندی بود. در ابتدا، مدل زبانی (LLM) به جای خط بومی دیواناگری (नमस्ते)، کلمه «namaste» را مینوشت. از آنجایی که Murf Falcon 2 خطوط بومی را درست تلفظ میکند اما در تلفظ هندی رومیشده دچار مشکل میشود، توسعهدهنده مجبور شد یک قانون صریح برای «زبان و خط» (LANGUAGE & SCRIPT) به همراه مثالها و ضد-مثالها اضافه کند تا اطمینان حاصل شود که عامل همیشه از خطوط بومی استفاده میکند.
برای کاربران قدیمی، سامانه از یک پایگاهداده SQLite سبک استفاده میکند تا کاربر را از طریق یک شناسه (slug) از نامش شناسایی کند. این امر به عامل اجازه میدهد گفتگو را از همان جایی که متوقف شده بود ادامه دهد؛ مثلاً بپرسد: «دفعه پیش درباره Jan Dhan پرسیده بودید — آن موضوع چطور پیش رفت؟»
لایههای ایمنی حافظه:
برای اینکه حافظه قابل اعتماد باشد، دو لایه حفاظتی پیادهسازی شده است:
۱. ذخیرهسازی مبتنی بر اجازه: عامل تنها پس از پرسش صریح از کاربر، دادهها را ذخیره میکند. همچنین فقط حق ذخیره حقایق ساده (مانند بازه سنی یا طرح مورد علاقه) را دارد و هرگز جملات کامل یا اعداد را ذخیره نمیکند.
۲. پاکسازی مکانیکی: یک لایه پشتیبان پایتونی با استفاده از عبارت منظم (_LONG_DIGITS = re.compile(r"\d{6,}")) توالیهای شش رقمی یا بیشتر را اسکن میکند. اگر مقداری شبیه به شماره حساب، شماره کارت یا OTP باشد، تابع _sanitize_facts آن را حذف کرده و یک هشدار ثبت میکند تا اطمینان حاصل شود دادههای حساس هرگز در دیتابیس نوشته نمیشوند.
گردشکارهای عاملمحور پیشرفته
Dhan Saathi سعی نمیکند در همه چیز متخصص باشد. وقتی کاربر درباره طرحهای دولتی خاص میپرسد، سامانه یک «تحویل تخصصی» (Specialist Handoff) به عامل دومی به نام Yojana Mitra انجام میدهد.
مکانیسم تحویل:
در LiveKit Agents، این کار از طریق یک ابزار تابع (Function Tool) انجام میشود. ابزار transfer_to_scheme_specialist یک شیء جدید از SchemeSpecialist برمیگرداند. از آنجایی که تاریخچه کامل گفتگو (chat_ctx) و شناسه تماس (call_id) منتقل میشوند، کاربر هرگز مجبور نیست حرفهایش را تکرار کند. پس از حل پرسش مربوط به طرح، متخصص تماس را بازمیگرداند و راهنمای اصلی گفتگو را از همان نقطه ادامه میدهد، به جای اینکه دوباره از ابتدا سلام و احوالپرسی کند.
ویژگیهای عملیاتی
فراتر از هوش مصنوعی، سیستم شامل چندین ویژگی آماده برای محیط عملیاتی (Production-ready) است:
- تماسهای خروجی: یک دیسپچر میتواند Dhan Saathi را تحریک کند تا از طریق SIP trunk با کاربر تماس بگیرد و یادآوریها را ارسال کند، که شامل مدیریت لغو اشتراک («دیگر تماس نگیر») نیز میشود.
- ارجاع به انسان: برای گزارشهای کلاهبرداری یا اختلافاتی که خط تلفن نمیتواند حل کند، عامل اجازه میگیرد تا یک درخواست ساختاریافته برای یک شخص واقعی ثبت کند و یک شناسه مرجع (Reference ID) ارائه دهد.
- داشبورد تحلیل: هر تماس با یک نتیجه ثبت میشود — «موفق» (اگر بررسی صلاحیت یا ارجاع انسانی رخ داده باشد)، «ناموفق»، یا برای تماسهای خروجی «بدون پاسخ/مشغول/رد شده».

عملکرد و استقرار
تأخیر (Latency) عاملی حیاتی بود تا گفتگو شبیه به یک مکالمه انسانی باشد، نه شبیه به صحبت با بیسیم. توسعهدهنده در ابتدا سعی کرد با تنظیم حداقل طول جمله و سرعت متن به TTS «کمک» کند تا گفتار متفکرانهتر به نظر برسد. اما این کار در واقع صدا را به قطعات کوچک تقسیم کرد و تأخیر را افزایش داد.
با حذف این «بهینهسازیها» و اعتماد به توکنایزر استریمینگ پیشفرض Murf Falcon 2، سیستم به تأخیر مدل حدود ۵۵ میلیثانیه و زمان رسیدن اولین صدا (Time-to-first-audio) حدود ۱۳۰ میلیثانیه دست یافت. این ثابت میکند که با یک TTS سریع، خط لوله (Pipeline) به ندرت گلوگاه است — بلکه اغلب تنظیمات دستی توسعهدهنده است که باعث کندی میشود.
راهنمای عملی: ساخت عامل خودتان
برای کسانی که به دنبال ساخت عاملهای مشابه هستند، توسعهدهنده یک کیت شروع را در گیتهاب منتشر کرده است. این فرآیند را میتوان در یک بعدازظهر با استفاده از فرانتاند Next.js و بکاند پایتون متصل از طریق LiveKit به پایان رساند.
گامهای شروع سریع:
۱. کلون و نصب: از مخزن murf-livekit-starter استفاده کنید. در بکاند دستورات uv sync و uv run python src/agent.py download-files و در فرانتاند pnpm install را اجرا کنید.
۲. پیکربندی کلیدها: فایلهای .env.local را ایجاد کنید. کلیدهای مورد نیاز شامل LIVEKIT_URL ،LIVEKIT_API_KEY ،LIVEKIT_API_SECRET ،MURF_API_KEY ،DEEPGRAM_API_KEY و GOOGLE_API_KEY هستند. اینها باید در یک ذخیرهساز امن (Secret Store) باشند و هرگز به گیت ارسال نشوند.
۳. اجرا: عامل بکاند را با uv run python src/agent.py dev و فرانتاند را با pnpm dev اجرا کنید. برای گفتگوی فقط در ترمینال، از uv run python src/agent.py console استفاده کنید.
۴. سفارشیسازی: کل شخصیت عامل در SYSTEM_PROMPT در فایل backend/src/agent.py تعریف شده است. قابلیتهای جدید را میتوان با نوشتن متدهایی با دکوراتور @function_tool اضافه کرد. همچنین میتوانید صدای مورد نظر را از کتابخانه Murf در murf.TTS(...) انتخاب کنید.
بهبودهای آینده
توسعهدهنده سه حوزه کلیدی برای رشد شناسایی کرده است:
- دادههای معتبر: متصل کردن سیستم به منابع رسمی و تاریخدار برای دادههای طرحها، زیرا در حال حاضر صلاحیتها بر اساس یک مجموعه داده محلی مدیریت شده است.
- هویت امن: پیادهسازی احراز هویت صوتی برای حافظه، زیرا حافظه فعلی بر اساس نام گفته شده است که برای دادههای حساس بسیار ضعیف است.
- معیارهای کمی: افزودن معیارهای «زمان رسیدن اولین صدا» و «تأخیر نوبت» به داشبورد برای اثبات حس «آنی» گفتگو با اعداد سخت.
این پروژه نشان میدهد که گلوگاه هوش مصنوعی صوتی اغلب سرعت مدل نیست، بلکه تلاش توسعهدهنده برای بهینهسازی بیش از حد خط لوله است. با تمرکز بر خطوط بومی و تضمینهای ایمنی مکانیکی، این سیستم از یک چتبات ساده به یک ابزار کاربردی برای اقشار محروم تبدیل شده است.
گام بعدی شما
- اگر توسعهدهنده هستید، کیت شروع
murf-livekit-starterرا از گیتهاب کلون کنید تا با معماری عاملهای صوتی آشنا شوید. - در پرامپتهای سیستمی خود، بخش GUARDRAILS را به صورت مجزا و با اولویت بالا تعریف کنید تا از خروجیهای خطرناک جلوگیری شود.
- برای کاهش تأخیر در سیستمهای صوتی، از بهینهسازیهای دستیِ لایه TTS پرهیز کرده و بر روی استریمینگ متکی شوید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو