در نسل جدید توسعه نرم‌افزار، مرز میان نوشتن کد و بیان «قصد» به‌طور جدی جابه‌جا شده است. توسعه دیگر صرفاً فرآیند تبدیل منطق انسانی به syntax نیست، بلکه بیشتر به توصیف هدف و اجازه دادن به سیستم‌های agentic برای تولید و اجرای راه‌حل تبدیل شده است.

در این مدل جدید، آنچه به‌عنوان vibe coding شناخته می‌شود، نقطه ورود ساده‌تری به توسعه محسوب می‌شود؛ جایی که ایده‌ها به زبان طبیعی بیان می‌شوند و سیستم‌های هوشمند اولین نسخه‌های قابل اجرا را تولید می‌کنند. اما در لایه عمیق‌تر، مسیر به سمت agentic engineering حرکت می‌کند؛ جایی که رفتار سیستم‌ها محدود، قابل پیش‌بینی و قابل ارزیابی می‌شود و خروجی‌ها تنها نتیجه تولید مدل نیستند، بلکه حاصل یک ساختار مهندسی‌شده شامل ابزارها، قوانین و محیط اجرایی هستند.

در این رویکرد، مفهوم context engineering به یکی از عناصر کلیدی تبدیل می‌شود. کیفیت خروجی دیگر فقط به مدل وابسته نیست، بلکه به نحوه تزریق، مدیریت و بهینه‌سازی context بستگی دارد. تفاوت مهمی میان contextهای ایستا مانند system instructions و contextهای پویا وجود دارد که در زمان نیاز بارگذاری می‌شوند. این تفاوت باعث تغییر اساسی در طراحی سیستم‌های هوشمند می‌شود، چون هزینه و کارایی به شدت تحت تأثیر نحوه مدیریت context قرار می‌گیرد.

در این معماری جدید، یک نگاه مهم به تعریف agent شکل می‌گیرد:
agent = model + harness

در این تعریف، مدل تنها بخش کوچکی از کل سیستم است. بخش اصلی در harness قرار دارد؛ جایی که ابزارها، sandbox، orchestration و guardrails قرار می‌گیرند. این لایه است که رفتار agent را قابل اعتماد، قابل کنترل و قابل استفاده در محیط واقعی می‌کند. بدون این بخش، مدل صرفاً یک مولد پاسخ است، نه یک سیستم اجرایی.

این تغییر معماری باعث تغییر نقش توسعه‌دهنده نیز شده است. نقش‌ها به سمت دو حالت اصلی حرکت می‌کنند: یک حالت که در آن توسعه‌دهنده به‌صورت لحظه‌ای در محیط توسعه با سیستم تعامل دارد و تغییرات را هدایت می‌کند، و حالت دیگر که در آن وظایف پیچیده به‌صورت asynchronous به مجموعه‌ای از agentها واگذار می‌شود و سیستم به‌طور مستقل آن‌ها را پیش می‌برد. این جابه‌جایی نشان می‌دهد که تمرکز از نوشتن مستقیم کد به طراحی جریان کار و کنترل رفتار سیستم منتقل شده است.

در این ساختار جدید، چرخه توسعه نرم‌افزار نیز فشرده‌تر شده است. مرحله تولید کد که قبلاً زمان‌بر بود، اکنون می‌تواند در مدت کوتاهی انجام شود، اما گلوگاه اصلی به سمت تعریف دقیق مسئله و اعتبارسنجی خروجی منتقل شده است. کیفیت specification به یکی از تعیین‌کننده‌ترین عوامل موفقیت تبدیل می‌شود، چون سیستم تنها در صورتی می‌تواند خروجی درست تولید کند که ورودی آن دقیق و قابل ارزیابی باشد.

در کنار این تغییرات، مفهوم factory model برای توسعه نرم‌افزار مطرح می‌شود؛ جایی که محصول نهایی صرفاً کد نیست، بلکه سیستمی است که کد تولید می‌کند. این نگاه باعث می‌شود تمرکز روی ساخت زیرساخت تولید اهمیت بیشتری نسبت به تولید مستقیم خروجی داشته باشد.

در این معماری، بخش مهمی از موفقیت agentها به وجود sandboxهای اجرایی، ابزارهای مناسب و سیستم‌های ارزیابی وابسته است. بدون وجود loopهای ارزیابی، سیستم نمی‌تواند کیفیت خود را در طول زمان بهبود دهد. همچنین استفاده از sub-agentها برای بررسی و اصلاح خروجی‌ها، باعث افزایش پایداری رفتار سیستم می‌شود.

یکی از الگوهای مهم در طراحی agentهای مدرن، استفاده از verification loop است. در این الگو، خروجی تولید شده تنها زمانی پذیرفته می‌شود که از چند مرحله بررسی عبور کند. این بررسی می‌تواند شامل تست‌های خودکار، agentهای ارزیاب یا حتی انسان در حلقه تصمیم‌گیری باشد. ترکیب این لایه‌ها باعث می‌شود خطاها در مراحل اولیه کنترل شوند و کیفیت سیستم در طول زمان افزایش یابد.

در سیستم‌های پیشرفته‌تر، agentها حتی قادر به تولید ابزارهای موقت برای حل مسائل خاص خود هستند. این ویژگی باعث می‌شود که سیستم به جای وابستگی کامل به ابزارهای ثابت، بتواند محیط اجرایی خود را گسترش دهد.

در کنار این پیشرفت‌ها، نوع جدیدی از چالش‌ها نیز ظاهر شده است. با افزایش نقش AI در تولید کد، احتمال کاهش عمق درک انسانی از codebase وجود دارد. این موضوع می‌تواند در بلندمدت روی توانایی تحلیل، تصمیم‌گیری معماری و حتی پاسخ‌گویی در شرایط بحرانی تأثیر بگذارد. همچنین مسئله مسئولیت‌پذیری در سیستم‌هایی که بخشی از تصمیم‌گیری آن‌ها خودکار است، به یک چالش جدی تبدیل می‌شود.

در سطح دیگر، بحث امنیت و خطاهای ناشی از hallucination و bias همچنان اهمیت دارد. کنترل این موارد نیازمند طراحی دقیق ارزیابی‌ها و تعریف مرزهای مشخص برای رفتار سیستم است. همچنین اگر فقط یک بخش از workflow بهینه شود، ممکن است سایر بخش‌ها دچار گلوگاه شوند؛ بنابراین نگاه باید سیستمی و end-to-end باشد.

در کنار این چالش‌ها، یک چارچوب ذهنی مهم برای ارزیابی کاربردها مطرح می‌شود: مسیر از impressive به useful و در نهایت sustainable. بسیاری از سیستم‌ها در مرحله اولیه بسیار جذاب هستند، اما بدون توجه به هزینه، مقیاس‌پذیری و نگهداری، به مرحله پایدار نمی‌رسند. رسیدن به سطح پایدار نیازمند توجه به هزینه‌های عملیاتی، مصرف منابع و قابلیت استفاده در مقیاس واقعی است.

در لایه‌های پیشرفته‌تر، long-running agents نقش مهمی پیدا می‌کنند. این agentها می‌توانند برای مدت طولانی روی یک مسئله کار کنند، اطلاعات را جمع‌آوری کنند، ابزارها را اجرا کنند و به‌صورت تدریجی به نتیجه برسند. اما کارایی آن‌ها به شدت به طراحی ابزارها وابسته است، چون بخش زیادی از زمان اجرای آن‌ها صرف تعامل با ابزارهای بیرونی می‌شود، نه صرفاً محاسبه یا تولید پاسخ.

در همین راستا، استفاده از ساختارهایی مانند graph-based representation یا open knowledge format مطرح می‌شود. در این رویکرد، سیستم به جای اتکا به متن خام، از ساختارهای متصل و قابل پیمایش استفاده می‌کند تا بتواند وابستگی‌ها و اثر تغییرات را بهتر درک کند. ترکیب این ساختار با روش‌های graph RAG امکان تحلیل عمیق‌تر سیستم‌های بزرگ را فراهم می‌کند و به agent اجازه می‌دهد قبل از تولید کد، تصویر کلی از سیستم داشته باشد.

در نهایت، آینده این حوزه به سمت ترکیب چندین لایه پیش می‌رود: مدل‌های قدرتمند، harnessهای پیچیده، سیستم‌های ارزیابی دقیق و ساختارهای داده‌ای که context را به شکل معنایی و قابل استفاده در اختیار agent قرار می‌دهند. این ترکیب است که توسعه نرم‌افزار را از یک فعالیت دستی به یک سیستم تولید خودکار و قابل کنترل تبدیل می‌کند.

https://t.me/AIDeveloperNotes

بازدیدها: 2

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

یک × پنج =