آنچه واقعاً در فایل AGENTS.md من وجود دارد

فایل AGENTS.md من در ابتدا مثل یک کشوی شلوغ و بی‌نظم بود. فکر می‌کردم به یادداشت‌های مربوط به استایل و جزئیات پشته تکنولوژی (tech stack) نیاز دارد. اما اشتباه می‌کردم.

یک عامل هوش مصنوعی (AI agent) قوانین قالب‌بندی شما را نادیده می‌گیرد. او از قوانینی پیروی می‌کند که با بدترین غریزه‌هایش مبارزه می‌کنند.

در اینجا آنچه از آزمایش این فایل‌ها روی کدهای خودم آموخته‌ام را آورده‌ام.

اجازه برای توقف

قانون اول مربوط به کد نیست. مربوط به اجازه است.

عامل‌ها می‌خواهند مفید به نظر برسند. آن‌ها با انتخاب بی‌صدای یک پاسخ، ابهام را برطرف می‌کنند. این کار منجر به صدها خط کد اشتباه می‌شود.

من به عامل‌هایم می‌گویم وقتی چیزها نامشخص است، متوقف شوند و سوال بپرسند. به آن‌ها می‌گویم فرض‌های خود را بیان کنند. به آن‌ها می‌گویم که گفتن «مطمئن نیستم» یک موفقیت است، نه یک شکست.

قوانین عادت‌های ممنوعه

مفیدترین قوانین، یک غریزه بد را نام می‌برند و آن را ممنوع می‌کنند.

• بیش از حد ساخت‌وساز نکنید (Do not over-build). حداقل کد لازم برای حل مشکل را بنویسید. از فریم‌ورک‌های حدسی و فرضی استفاده نکنید. • بیش از حد فراتر نروید (Do not over-reach). فقط به آنچه لازم است دست بزنید. یک تغییر ده خطی نباید به یک تفاوت (diff) دویست خطی تبدیل شود. • الگوها را میانگین نگیرید (Do not average patterns). اگر دو سبک کدنویسی متفاوت دیدید، آن‌ها را با هم ترکیب نکنید. یکی را انتخاب کنید و دلیل آن را توضیح دهید.

تفاوت بین راهنمایی و اجرا

مدل‌ها از دستورالعمل‌ها منحرف می‌شوند. یک قانون در یک فایل مارک‌داون یک پیشنهاد است، نه یک قرارداد.

من فایل خود را به دو سطح تقسیم می‌کنم:

  1. راهنمایی (Guidance): استایل و فلسفه. این بخش به صورت نثر (prose) نوشته می‌شود.
  2. اجرا (Enforcement): الزامات سخت‌گیرانه. این‌ها را در فایل قرار ندهید. آن‌ها را در یک بررسی CI یا یک اسکریپت قرار دهید.

اگر قانونی باید همیشه اجرا شود، کاری کنید که در صورت شکست، ادغام (merge) غیرممکن باشد. یک دستورالعمل یک لطف است؛ یک دروازه (gate) یک تضمین است.

به بررسی اعتماد کنید، نه به ادعا

عامل‌ها اغلب ادعا می‌کنند که تست‌ها از روی حافظه پاس شده‌اند. آن‌ها همیشه آن‌ها را دوباره اجرا نمی‌کنند.

من به عامل‌هایم می‌گویم موفقیت را از طریق تست‌ها تعریف کنند. به جای «این باگ را رفع کن»، می‌گویم «تستی بنویس که این باگ را بازتولید کند، سپس آن را پاس کن».

هرگز بدون یک بررسی تازه، به یک ادعا اعتماد نکنید.

ثبت زخم‌ها

من بخشی را برای درس‌های آموخته شده از اشتباهات نگه می‌دارم. من آن‌ها را «زخم‌ها» می‌نامم.

یک عامل هیچ حافظه‌ای از دردهای گذشته ندارد. او هر بار دقیقاً روی همان مین قدم خواهد گذاشت.

خطاهای خاص، رفتارهای عجیب API و شکست‌های بی‌صدا را یادداشت کنید. نقشه‌برداری از این مین‌ها، ساعت‌ها از زمان شما را ذخیره می‌کند.

هدف این فایل، کدگذاریِ قضاوت است. قوانین قالب‌بندی خودشان نوشته می‌شوند. آنچه شما باید بنویسید، قضاوت است.

Source: https://dev.to/miteshethos/whats-actually-in-my-agentsmd-434e

Optional learning community: https://t.me/GyaanSetuAi