تصور کنید با یک دستور صوتی ساده، تمام پنجرههای باز در ویندوز جابهجا شوند یا پیامی در تلگرام ارسال شود، بدون آنکه ثانیهها منتظر پاسخ ابری بمانید. این رویای «جارویس» اکنون با یک معماری هوشمندانه به واقعیت تبدیل شده است. یک دستیار صوتی سفارشی برای ویندوز اکنون به کاربر اجازه میدهد کل رایانهاش را — از جابهجایی پنجرهها گرفته تا پیام دادن در تلگرام — تنها با صدای خود کنترل کند. این رویکرد یادآور پروژه YourHand است که کنترل همزمان چندین رایانه ویندوزی را به چتهای هوش مصنوعی متصل کرد تا تعامل کاربر با سیستمعامل بهینهتر شود.
طبق گزارشی که در ۷ اکتبر ۲۰۲۶ منتشر شد، این پروژه نشان میدهد سختترین بخش ساخت یک «جارویس»، انتخاب مدل هوش مصنوعی نیست، بلکه طراحی معماری سیستم در اطراف آن است. اکثر دستیارهای صوتی مدرن، در واقع چتباتهایی هستند که فقط پوستهای صوتی دارند. آنها برای هر تعامل کوچک، نیاز به یک رفت و برگشت به سرورهای ابری دارند و این موضوع باعث ایجاد تأخیری (Lag) میشود که توهم یک دستیار در لحظه (Real-time) را میشکند. این پروژه با تغییر رویکرد و تبدیل مدل زبانی بزرگ (LLM) به آخرین گزینه (Last Resort) و نه موتور اصلی، این مشکل را حل کرده است. کل این سامانه از حدود ۲۵ هزار خط کد پایتون تشکیل شده است.
همانطور که در تحلیلهای قبلی ما دربارهی بهینهسازی استنتاج در لبه اشاره کردیم، کاهش وابستگی به پردازشهای سنگین ابری، تنها راه رسیدن به پاسخهای آنی است.
پشته فنی (Technical Stack)
این سیستم از یک خط لوله (Pipeline) تخصصی برای مدیریت حلقه «صوت به عمل» استفاده میکند: میکروفون $\rightarrow$ تبدیل گفتار به متن $\rightarrow$ انتخاب ابزار توسط LLM $\rightarrow$ اجرای ابزار در PC $\rightarrow$ تبدیل متن به گفتار $\rightarrow$ بلندگو. بر اساس گزارش dev.to، اجزای فنی این معماری عبارتاند از:
- انتقال صوت: LiveKit Agents که مدیریت حلقههای صوتی، تشخیص نوبت صحبت (Turn Detection) و مدیریت قطع صحبت توسط کاربر را بر عهده دارد.
- تبدیل گفتار به متن: Deepgram که خدمات تبدیل استریمینگ صوت به متن را ارائه میدهد.
- مغز متفکر: مدل Claude (استفاده از نسخه Haiku برای گفتگوهای عمومی و مدلهای بزرگتر برای وظایف بصری پیچیده).
- خروجی صوتی: Edge TTS (رایگان) یا ElevenLabs.
- بخش اجرا: حدود ۴۰ ماژول ابزاری که از Windows UI Automation برای کنترل پنجرهها و دکمهها، یک ابزار مرورگر مبتنی بر DOM، مدیریت فایلها، کلیدهای رسانهای، Home Assistant، ایمیل، تلگرام، تایمرها و موارد دیگر استفاده میکنند.

مدیریت سیستم و پایداری
برای پایداری سیستم، یک فرآیند ناظر کوچک (app.py) مانند ضربان قلب سامانه عمل میکند. این ناظر وظیفه شروع به کار Worker صوتی، نوار وضعیت (Status Bar)، پل ارتباطی تلگرام، مانیتور سلامت و یک پنل کنترل محلی را بر عهده دارد.
برای تضمین قابلیت اطمینان، ناظر بهطور مداوم کرشها را رصد میکند. اگر یکی از اجزا دچار خطا شود، سیستم آن را بهطور خودکار بازنشانی (Restart) میکند. با این حال، برای جلوگیری از ایجاد حلقههای بینهایت (Infinite Loops)، اگر یک پردازش ۵ بار در بازه زمانی ۵ دقیقه کرش کند، سیستم برای نیم ساعت عقبنشینی کرده و بهجای چرخش بیپایان، یک اعلان از طریق تلگرام برای کاربر میفرستد.
درس اول: استراتژی «مسیر سریع» (Fast Path)
توسعهدهنده متوجه شد که اکثریت دستورات — مانند «صدا روی ۳۰»، «توقف»، «تایمر برای پنج دقیقه»، «تلگرام را باز کن» یا «ساعت چند است» — خستهکننده و پیشبینیپذیر هستند. ارسال این دستورات به یک LLM باعث اتلاف توکنها و ایجاد تأخیری در حدود یک ثانیه میشود. در حالت عادی، هر درخواست باید حدود ۱۱ هزار توکن از پرامپتهای سیستمی کششده و توصیفات ابزارها را ارسال کند تا فقط یک ابزار بدیهی فراخوانی شود.
برای حل این مشکل، سیستم از یک «مسیر سریع» مبتنی بر عبارات منظم (Regex) ساده استفاده میکند. اگر یک دستور با یک قانون از پیش تعریف شده مطابقت داشته باشد، ابزار فوراً اجرا میشود بدون آنکه هرگز درخواستی به شبکه ارسال شود. برای مثال، سیستم از قوانینی مانند re.compile(r"^(set )?volume (to )?(?P<n>\d{1,3})( percent)?$") استفاده میکند تا دستور را مستقیماً به ابزار set_volume متصل کند.
این طراحی تضمین میکند که رایجترین دستورات، آنی و رایگان باشند، در حالی که درخواستهای مبهم همچنان به LLM ارجاع داده میشوند. قانون طراحی این است که «مثبت کاذب» (False Positive) بدتر از «از دست دادن» (Miss) است؛ بنابراین، قوانین فقط با کل عبارت مطابقت دارند و بسیار محافظهکارانه هستند. از آنجایی که مسیر سریع از همان توابع ابزاری استفاده میکند که LLM به کار میبرد، برای هر عمل تنها یک پیادهسازی وجود دارد.
درس دوم: اولویت سرعت بر هوش
در یک محیط کاربردی، پاسخی کمی ضعیفتر که در یک ثانیه ارائه شود، برتر از پاسخی کامل است که چهار ثانیه طول بکشد. این پروژه چندین تکنیک کاهش تأخیر را پیاده کرده است:
- کش کردن پرامپت (Prompt Caching): پرامپتهای سیستمی ثابت و طرحهای ابزارها (Schemas) کش میشوند تا هزینه هر نوبت گفتگو به کسری از یک سنت کاهش یابد.
- لایهبندی مدلها (Model Tiering): سیستم بهطور پیشفرض از یک مدل کوچک (Haiku) استفاده میکند و تنها برای کارهای پیچیده مانند «به صفحه من نگاه کن و انجامش بده»، به مدلهای بزرگتر ارتقا مییابد.
- خواندن DOM: بهجای گرفتن اسکرینشات برای کارهای وب، دستیار ساختار DOM صفحه را میخواند. این روش سریعتر و ارزانتر است و خطاهای کمتری نسبت به خواندن پیکسلها دارد.
- حفاظهای مالی: یک سقف هزینه روزانه در پنل کنترل تعریف شده است تا اطمینان حاصل شود که یک باگ در یک حلقه تکراری، نمیتواند یکشبه مبالغ زیادی را هزینه کند.
درس سوم: ایمنی و حفاظها (Guardrails)
دادن دسترسی کامل به سیستم فایلها به یک هوش مصنوعی خطرناک است. توسعهدهنده یک لایه ایمنی سختافزاری (Hard-coded) پیاده کرده است که به رفتار LLM وابسته نیست؛ زیرا میتوان با پرامپتها بحث کرد، اما با جداول جستوجو (Lookup Tables) نه.
هر فراخوانی ابزار در یکی از سه دسته زیر طبقهبندی میشود:
- ایمن (Safe): عملیات فقط-خواندنی که بهطور خودکار اجرا میشوند.
- تأیید (Confirm): عملیاتی که پیام میفرستند، برنامهها را میبندند یا صفحه را کنترل میکنند. اینها منتظر یک پاسخ «بله» از طریق پیام تلگرامی میمانند که کاربر میتواند از طریق گوشی خود پاسخ دهد.
- مسدود (Block): عملیاتی که هرگز بهصورت خودکار انجام نمیشوند.
تدابیر ایمنی اضافی شامل ارسال تمام فایلهای حذفشده به سطل زباله (Recycle Bin) بهجای پاک کردن دائمی است. پنل کنترل تنها به ترافیک محلی (127.0.0.1) محدود شده، هدرهای Host خارجی را رد میکند و نیاز به توکن دارد. برای محافظت از اسرار، کلیدهای API هرگز به مرورگر ارسال نمیشوند و تنها چهار رقم آخر آنها نمایش داده میشود.
ویژگیهای پیشرفته و استقرار
این دستیار شامل یک تشخیصدهنده کلمه بیدارباش (Wake-word) آفلاین از طریق openWakeWord است؛ به این معنی که تا زمانی که عبارت «Hey Jarvis» تشخیص داده نشود، هیچ دادهای استریم نمیشود. سیستم را میتوان با کلید F10 به خواب برد یا بیدار کرد و پس از چند دقیقه سکوت، بهطور خودکار به حالت خواب میرود.
سایر ویژگیهای «جارویسگونه» عبارتاند از:
- حافظه: به خاطر سپردن ترجیحات و حقایق بین جلسات مختلف و پشتیبانی از ماکروهای صوتی (مثلاً «وقتی گفتم X، کار Y را انجام بده»). این قابلیت یادآور طراحی کیبورد اندرویدی با حافظه دائمی است که هر کلیک را به یک خاطره دیجیتال تبدیل میکند تا شخصیسازی در سطح عمیقتری صورت گیرد.
- تریگرها (Triggers): توانایی واکنش در زمان شروع یک برنامه خاص، قرار گرفتن فایلی در یک پوشه، کم شدن باتری یا رسیدن ساعت به ۸:۳۰ صبح.
- گزارش صبحگاهی: یک روتین رایگان و بدون نیاز به LLM که وضعیت آبوهوا، تقویم، لیست کارهای روزانه و تیتر اخبار را ارائه میدهد.
- اعلانهای ناهمگام (Asynchronous): یک Outbox از نوع JSONL اجازه میدهد هر پردازشی یک اعلان را ثبت کند که توسط یک پردازش مجزای تلگرام تحویل داده میشود. این امر تضمین میکند که یادآورها حتی در زمان ریاستارت شدن پردازش صوتی، به کاربر برسند.
بهطور شگفتانگیزی، این دستیار میتواند کد منبع خودش را تغییر دهد. او یک عامل کدنویسی (Coding Agent) را روی فایلهای خود اجرا میکند، یک نصبکننده جدید ویندوز میسازد، تغییرات را Commit کرده، یک Release در گیتهاب منتشر میکند و بهطور خاموش آپدیت را روی خودش نصب میکند. این سطح از خودمختاری در مدیریت زیرساخت، نشان میدهد چرا لینوکس به دلیل انعطافپذیری بالا در حال تبدیل شدن به زیرساخت حیاتی برای عاملهای هوش مصنوعی است، هرچند این پروژه روی ویندوز پیاده شده است.
برای دسترسی آسان، پروژه به صورت یک نصبکننده تککلیکی ویندوز عرضه شده که پایتون و وابستگیها را در خود دارد. این برنامه نیازی به دسترسی ادمین و پنجرههای کنسول ندارد؛ کاربران صرفاً دو کلید API را در پنل محلی وارد میکنند.
این تغییر به سمت معماریهای ترکیبی — ترکیب کد قطعی (Deterministic) با هوش مصنوعی احتمالی (Probabilistic) — نشان میدهد که آینده عاملها (Agents) تنها مدلهای بزرگتر نیست، بلکه مسیریابی (Routing) هوشمندتر است. با حذف LLM برای کارهای ساده، توسعهدهنده سیستمی ساخته است که بهجای احساس «پردازش شدن»، احساس «پاسخدهی آنی» دارد.
برای کسانی که به پیادهسازی علاقهمند هستند، کد منبع کامل در گیتهاب به آدرس github.com/platonkuch-dev/jarvis-ai در دسترس است.
گام بعدی شما
- اگر توسعهدهنده هستید، معماری «مسیر سریع» (Fast Path) را برای کاهش تأخیر در اپلیکیشنهای AI خود پیاده کنید.
- برای کنترل سیستم، بهجای تکیه بر اسکرینشات، از خواندن ساختار DOM یا APIهای سیستمعامل استفاده کنید.
- لایههای ایمنی را بهصورت جداول سختافزاری (Lookup Tables) تعریف کنید، نه در قالب دستورات متنی به مدل.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو