اگر تصور میکنید با چند پرامپت ساده میتوانید اپلیکیشن بعدی خود را بسازید، احتمالاً به زودی با دیواری فنی به نام «کدنویسی حسی» برخورد خواهید کرد. طبق گزارشی که در ۸ ژوئن ۲۰۲۶ منتشر شد، هوش مصنوعی در تولید توابع مجزا عالی است، اما بدون نظارت دقیق انسانی، در حفظ معماری کلی پروژه فاجعهبار عمل میکند. این پروژه از دل یک نیاز آموزشی عمیق بیرون آمد: توسعهدهندهای که میخواست بفهمد هوش مصنوعی در پشت صحنه واقعاً چگونه کار میکند و تصمیم گرفت با رد کردن رویکرد «کدنویسی حسی»، یک عامل هوشمند محلی قدرتمند را از صفر بسازد.
این چرخش دقیقاً زمانی رخ میدهد که برنامهنویسان از دوران خوش و سرخوشیِ «رپرهای سادهی LLM» وارد فاز بلوغ و ساخت عاملهای خودمختار میشوند. در این مسیر، گرایشی شدید به سمت هوش مصنوعی «اول-محلی» (Local-first) ایجاد شده است؛ جایی که مدلها روی سختافزار شخصی اجرا میشوند تا حریم دادهها و حاکمیت اطلاعات (Data Sovereignty) حفظ شود و تأخیر (Latency) به حداقل برسد. اما این سیستمها چالشهای پایداری شدیدی را معرفی میکنند. این داستان، روایت یک «جفتبرنامهنویسی نامتقارن» است؛ یک ماه کدنویسی شدید و تاملات عمیق برای دیدن اینکه وقتی کاپوتِ هایپِ هوش مصنوعی را بلند میکنیم، چه اتفاقی میافتد.
کالبدشناسی Vibrisse
پروژه Vibrisse Agent با استفاده از Python و LangGraph ساخته شده است. این ابزار صرفاً یک رابط چت ساده یا یک پوشش برای APIهای ترمینال نیست، بلکه یک عامل خودمختار کامل است که با یک معماری ترکیبی «اول-محلی» طراحی شده است.
زیرساخت فنی:
- اجرای محلی: عامل عمدتاً روی دستگاه کاربر از طریق Ollama یا vLLM اجرا میشود. (توسعهدهنده بهطور خاص اشاره میکند که برای کاربران مک، استفاده از oMLX فوقالعاده و «آتشین» 🔥 است).
- تفویض ابری: سیستم میتواند بهصورت پویا وظایف خاصی را بسته به پیچیدگی درخواست، به سرویسهای ابری مثل Groq یا OpenRouter بسپارد.
- محدودیت سختافزاری: این پروژه روی سیستمی با ۳۲ گیگابایت رم توسعه و تست شده است که نشاندهنده شکاف تایتانیک میان پروژههای شخصی محلی و سیستمهای تجاری است که میلیونها کاربر دارند.
مشخصات پیشرفته:
برای تبدیل یک دموی ساده به یک «محصول» واقعی، توسعهدهنده چندین مشخصه سطح بالا را ادغام کرد:
- پروتکل بافتار مدل (Model Context Protocol یا MCP): این ادغام، عامل را به یک اکوسیستم گسترده متنباز متصل میکند؛ از جمله GitHub برای پیمایش مخازن و Pull Requestها، و SQLite برای پرسوجو از پایگاههای داده محلی.
- Context7: برای اطمینان از اینکه عامل به مستندات بهروز دسترسی دارد.
- Fetch: برای اینکه عامل بتواند مستقیماً با وب تعامل داشته باشد.
- Gemma 4: برای بهرهگیری از قابلیتهای بینایی چندوجهی (Multimodal Vision) جهت تحلیل زنده رابطهای کاربری.
- جادوی پذیرش (Onboarding Wizard): سیستمی همراه با پرامپتهای پویا برای هدایت کاربران جدید.
- حالت شبح (Ghost Mode): یک ویژگی برجسته که اجازه میدهد عامل مستقیماً از طریق کامنتهای کد منبع هدایت شود (مثلاً
// @vibrisse: refactor this loop) و نیاز به جابهجایی بین پنجرهها را کاملاً از بین ببرد.

شکست «کدنویسی حسی»
به نقل از گزارش dev.to، «کدنویسی حسی» (Vibe Coding) — یعنی پرامپت دادن به AI و اجرای کد حاصل بدون نظارت عمیق معماری — برای اپلیکیشنهای سادهی CRUD جواب میدهد اما در سیستمهای پیچیده شکست میخورد. حقیقت این است که به محض اینکه یک سیستم به مدیریت دقیق بافتار (Context Management)، اجرای ابزارهای قطعی (Deterministic Tool Execution) و پایداری وضعیت (State Persistence) نیاز پیدا کند، آن «حس» یا Vibe بهسرعت میمیرد.
مقصر اصلی، مدیریت بافتار و بهویژه پدیده «گمشدن در میانه» (Lost in the Middle) است. زنجیره کردن سوالاتی که ناگهان به ذهن میرسند، طبیعی و هیجانانگیز است، اما این کار حجم عظیمی از «نویز» در گفتگو ایجاد میکند. بدون نردههای حفاظتی سختگیرانه، این وضعیت منجر به از دست رفتن شدید بافتار میشود: مدل تصمیماتی که تنها دو ساعت پیش گرفته را فراموش میکند، جلسه (Session) دچار انحراف میشود و در نهایت کد میشکند.
راه حل، یک مدل جادویی جدید نبود، بلکه مهندسی نرمافزار سختگیرانه و نظم بود. توسعهدهنده بر موارد زیر تکیه کرد:
- فایلهای نشست دقیق: بهویژه استفاده از
ROADMAP.mdبرای ردیابی دقیق پیشرفت پروژه. - یادداشتبرداری مداوم: اطمینان از اینکه تمام تصمیمات مستند شدهاند.
- ردیابی صریح معماری: برای جلوگیری از انحراف پروژه از مسیر طراحی شده.
پویایی جفتبرنامهنویسی نامتقارن
ساخت Vibrisse یک عدم تقارن عمیق را در همکاری با AI آشکار کرد. هوش مصنوعی «قدرت خام» میآورد — میتواند فایلها را فوراً بخواند، کدهای تکراری (Boilerplate) را در ثانیهها تولید کند و بدون خستگی در مستندات جستجو کند. در مقابل، توسعهدهنده انسانی «وتوی معماری» و چشمانداز کلی تجاری را به ارمغان میآورد.
یک کشف حیاتی، تمایل AIهای ابری به «همراهی بیش از حد» و تطابق اجباری بود. چون AI ابری بهطور ذاتی پذیرنده است، اغلب با یک پیشنهاد موافقت میکند حتی اگر آن پیشنهاد به یک بنبست فنی منجر شود. برای حل این مشکل، توسعهدهنده مجبور شد:
- نقشهای سختگیرانه تعریف کند: مثلاً با گفتن «تو یک مهندس ارشد AI با تجربه هستی...».
- رویکرد را به چالش بکشد: مدل را فشار دهد تا از پاسخهای سادهای مثل «امکانپذیر نیست» به تحلیل عینی جایگزینها برسد.
- جلسات «تفکر بلند» ایجاد کند: از AI بخواهد قبل از نوشتن هر کدی، خلاصه آنچه انجام شده، گام بعدی و دلیل آن را توضیح دهد.
بدون ۱۵ سال تجربه توسعه وب، این پروژه به یک فایل main.py با ۳۰۰۰ خط کد «اسپاگتی» تبدیل میشد. توسعهدهنده مجبور شد فازهای بازسازی (Refactoring) شدیدی را بر اساس اصول SOLID و جداسازی دغدغهها اعمال کند تا کد برای انسانها خواندنی بماند. این موضوع یک تله کلیدی را نشان میدهد: LLMها در نوشتن توابع مجزا عالی، اما در حفظ معماری جهانی فاجعهاند.

حل مشکل «مدل تنبل»
تفاوت ضروری و مهمی بین «AI معمار» (Gemini که برای کدنویسی خود پروژه استفاده شد) و «AI کارگر» (مدلهای محلی Gemma 4b/26b که در Vibrisse ادغام شدند) وجود دارد. مدلهای محلی اغلب بهطور ذاتی تنبل هستند؛ آنها بهجای «بهترین» راه حل، به دنبال یک راه حل «پذیرفتنی» میگردند.
بدون پرامپتهای فوقساختاریافته، این مدلها مکرراً مسیر کممقاومت را انتخاب میکنند. یک کشف عینی این بود که یک مدل 7B، اگر بدون نردههای حفاظتی رها شود، در نهایت ساعت ۳ صبح کد را با عبارت // ... rest of the code here رها میکند. این تنبلی در مدلهای ابری نیز زمانی که پنجره بافتار اشباع میشود، دیده میشود.
برای مقابله با این موضوع، سیستم «انسان در حلقه» (Human-in-the-Loop) با نام Architect Mode پیاده شد:
- تولید مصنوعات (Artifacts): بهجای تولید ۵۰۰ خط کد، عامل یک نقشه دقیق را در قالب یک «Artifact» تولید میکند.
- رهگیری رابط کاربری: UI اجرای کد را متوقف کرده و یک رندر تعاملی تمیز با دکمههای تایید نشان میدهد.
- قدرت وتو: انسان میتواند نقشه را بررسی و تایید کند و سپس عامل از ابزارهای خود برای تغییر فایلها استفاده میکند. این کار AI را از یک «جعبه سیاه» به همکاری تبدیل میکند که پیشنویسها را ارسال میکند.
منحنی یادگیری دوگانه
یک بینش غیرمنتظره این بود که یادگیریِ «ساخت» AI، در واقع به شما یاد میدهد چگونه از AI «استفاده» کنید. دو منحنی یادگیری موازی شکل گرفت:
منحنی مهندسی: یادگیری اینکه مدلها به بافتار تازه و دقیق نیاز دارند (نه خیلی زیاد و نه هر چیزی)، محدودیتهای صریح برای جلوگیری از انحراف میخواهند و نیاز به خلاصههای منظم دارند.
منحنی کاربر: اعمال همان نظم روی خود کاربر — خلاصه کردن جلسات قبل از شروع مجدد، به چالش کشیدن هر پاسخ بهجای اعتماد کورکورانه، و تشخیص لحظهای که یک جلسه دچار توهم (Hallucination) شده یا قدیمی شده است.
همانطور که توسعهدهنده اشاره کرد: «با ساختن عاملی که هرگز نباید رشتهی افکارش را گم کند، بالاخره فهمیدم چرا خودم موقع استفاده از AI رشتهی افکارم را گم میکردم.»
تجربه کاربری در AI محلی
تجربه کاربری (UX) برای عاملهای محلی اختیاری نیست. چون استنتاج (Inference) محلی کندتر از پاسخهای ابری است، توسعهدهنده یک «گراف تفکر» (Thought Graph) تعاملی طراحی کرد. این گراف حداکثر بازخورد را فراهم میکند و تضمین میکند هر عمل یک واکنش مرئی دارد تا کاربر تصور نکند سیستم کرش کرده است.
هدف نهایی این است که عامل نامرئی شود و بهطور کامل در جریان کار ادغام گردد، که این هسته فلسفه «حالت شبح» یا Ghost Mode است.
تغییر نقش توسعهدهنده
این پروژه نشان میدهد مهندسی نرمافزار در حال جهش و تغییر است، نه نابودی. در حالی که طبق نظرسنجی Stack Overflow، حدود ۷۶٪ توسعهدهندگان از AI استفاده میکنند، تقاضا برای «توسعهدهندگان معمار» در حال انفجار است. این تجلی «پارادوکس جِونز» است: هرچه تولید کد کارآمدتر شود، تقاضا برای سیستمهای پیچیده و بهخوبی ارکستره شده افزایش مییابد.
پروفایل جدید توسعهدهنده کسی نیست که سریعتر تایپ کند، بلکه کسی است که میداند چگونه ارکستره، به چالش بکشد و تایید کند. برای جونیورها درس روشن است: یادگیری کدنویسی را متوقف نکنید. AI یک ابزار قابل هدایت است، نه جادو. شکاف بین یک پروژه محلی و یک سیستم تولیدی (Production) تایتانیک است و پر کردن آن نیازمند دانش بنیادی در امنیت، مدیریت خطا، بهینهسازی عملکرد و مدیریت منابع ماشین (RAM/VRAM) است.
نتیجهگیری: AI به عنوان ابزار، نه جادو
تولید یک اپلیکیشن CRUD در دو روز سریع است، اما ساخت یک سیستم تولیدی که بافتار را بهطور قابلاطمینان مدیریت کند و روی دادههای حیاتی دچار توهم نشود، داستانی متفاوت است. AI برای نمونهسازی (Prototyping) فوقالعاده است، اما تولید واقعی نیازمند دانش استوار است. برای ارشدها، این یک ابزار اهرمی باورنکردنی است؛ برای جونیورها، دلیلی است تا روی مفاهیم بنیادی تمرکز دوچندانی کنند.
این تجربه یک باور فنی جدید را شکل داد: مدلهای کوچک، ابزارهای بزرگ. پیادهسازی متنباز Vibrisse اکنون در گیتهاب عمومی است و به عنوان یک آزمایش زنده در LangGraph، Parsing و MCP عمل میکند. این پروژه دیگران را دعوت میکند تا سیستم را تست کنند، بشکنند و بهبود ببخشند و گفتگو را از «کدنویسی حسی» به سمت مهندسی هوشمند ببرند.




گفتگو