پرسش کردن در مقابل واگذاری کار به عاملهای هوش مصنوعی
اکثر توسعهدهندگان از هوش مصنوعی مانند نسخه هوشمندتری از Stack Overflow استفاده میکنند.
شما یک سوال تایپ میکنید. یک پاسخ دریافت میکنید. سپس کار را خودتان انجام میدهید. این روش کند است.
راه سریعتری وجود دارد. شما باید از پرسیدن دست بردارید و شروع به واگذاری کار (Delegating) کنید.
وقتی از یک هوش مصنوعی میپرسید: "چگونه برای ماژول auth خود تست بنویسم؟" شما یک توضیح دریافت میکنید. اما همچنان خودتان تستها را مینویسید. همچنان کار را خودتان انجام میدهید.
وقتی کار را به یک عامل (Agent) هوش مصنوعی واگذار میکنید:
"برای /src/auth.py تست بنویس. موارد login، logout و توکنهای نامعتبر را پوشش بده. آنها را اجرا کن. اگر با خطا مواجه شدند، کد را تا زمانی که تستها پاس شوند اصلاح کن. به من بگو چه چیزهایی را تغییر دادی."
عامل فایلهای شما را باز میکند. تستها را مینویسد. آنها را اجرا میکند. خطاها را میخواند. کد را اصلاح میکند. و در نهایت یک مجموعه تست (test suite) آماده و کارآمد به شما تحویل میدهد.
شما نتیجه را بررسی میکنید. شما کار را انجام ندادهاید.
واگذاری موثر به چهار بخش نیاز دارد:
- هدف (Goal): عامل باید چه چیزی تولید کند؟
- محدوده (Scope): کدام فایلها یا بخشها باید تحت تأثیر قرار بگیرند؟
- شرط موفقیت (Success condition): از کجا بفهمیم کار به درستی انجام شده است؟
- گزارش بازگشتی (Report back): چه چیزی را تغییر داد و چرا؟
مثالهای کاربردی:
عیبیابی (Debugging): "علت اصلی این خطا و stack trace را پیدا کن. آن را اصلاح کن و توضیح بده مشکل کجا بود."
بازنویسی کد (Refactoring): "این فایل را بازنویسی کن. حداکثر از دو سطح تو در تو (nesting) استفاده کن. هیچ تابعی نباید بیشتر از ۳۰ خط باشد. تمام محلهای فراخوانی (call site) را بهروزرسانی کن."
مهاجرت پایگاه داده (Database migration): "یک اسکریپت مهاجرت idempotent برای این تغییر در schema بنویس. آن را روی یک پایگاه داده محلی اجرا کن تا از موفقیتآمیز بودن آن مطمئن شوی."
بازبینی (Reviewing): "تغییرات این PR diff را بخوان. هر چیزی که ممکن است در محیط عملیاتی (production) با خطا مواجه شود را پیدا کن. تستهایی را که فراموش کردهام بنویس."
عاملها سریع هستند، اما گاهی اوقات اشتباه میکنند. از این سه بررسی برای تأیید کار آنها استفاده کنید:
آیا مشکل را حل کرد؟ کد را اجرا کنید. فقط به خواندن آن اکتفا نکنید. تستها را اجرا کنید. اجرای کد تنها راه برای یافتن خطاهای مربوط به موارد خاص (edge cases) است.
آیا با کد شما همخوانی دارد؟ عامل از قراردادهای (conventions) تیم شما آگاه نیست. خروجی را برای یافتن الگوهای غیرمعمول یا کتابخانههایی که تیم شما از آنها اجتناب میکند، بررسی کنید.
آیا خارج از محدوده تغییر ایجاد کرد؟ بررسی کنید عامل به کدام فایلها دست زده است. تغییرات (diff) را مانند یک PR از یک توسعهدهنده جونیور مطالعه کنید. مطمئن شوید که در مسیر کمک کردن، چیزی را خراب نکرده باشد.
وظیفه شما از انجام کار، به تعریف هدف و بررسی نتیجه تغییر میکند. شما قضاوت میکنید و عامل، سرعت را فراهم میکند.
Source: https://dev.to/omerberatsezer/asking-vs-delegating-agents-43ii
Optional learning community: https://t.me/GyaanSetuAi
