قابلیتهای چندایجنتی سریع عوض میشوند. منطقِ اصلی — context جدا، و اینکه کِی ارزش دارد — پایدار است.
آخرین بهروزرسانی: ۱۴۰۵/۰۵/۰۴
sub-agent چیست
یک sub-agent — در فارسیِ گفتاری سابایجنت — یک کارگرِ جانبی است که کاری را در context جدای خودش انجام میدهد و فقط نتیجه را به گفتوگوی اصلی برمیگرداند.
و اینجا باید مستقیم به فصل ۱.۳ برگردیم، چون بدون آن این قابلیت بیمعنا است.
یادت هست که هر فایلی که خوانده میشود تا آخر session در context میماند و شلوغش میکند؟ حالا فرض کن برای یک کار باید بیست فایل را بگردی تا سهتای مربوط را پیدا کنی. آن هفده فایل بیربط، تا آخر کار سرِ میز میمانند — و همان context rot را میسازند.
sub-agent دقیقاً همین را حل میکند: آن گشتن در یک context جدا انجام میشود، و به گفتوگوی اصلی فقط این برمیگردد: «این سه فایل مربوطاند.»
مستندات رسمی هم همین را بهعنوان کاربرد اصلی میگویند: از sub-agent وقتی استفاده کن که یک کار جانبی میخواهد گفتوگوی اصلیات را با نتیجهی جستوجو و لاگ و محتوای فایلهایی پر کند که دیگر به آنها برنمیگردی.
نقش دادن به هر کدام
هر sub-agent میتواند دستورالعمل خودش، ابزارهای خودش، و اجازههای خودش را داشته باشد. و این دومی و سومی از اولی مهمترند.
سه فایدهی عملی که مستندات رسمی هم فهرست میکنند:
- محدودکردن ابزار. یک نقشِ «فقط بخوان و گزارش بده» میتواند اصلاً ابزار نوشتن نداشته باشد. آنوقت حتی اگر بخواهد، نمیتواند چیزی را عوض کند — همان منطق permission در فصل ۳.۳، این بار در سطح نقش.
- تخصصیکردن رفتار با یک دستورالعمل متمرکز.
- کنترل هزینه — کار ساده را میشود به مدل سبکتر سپرد، همان تصمیمِ فصل ۲.۲.۷.
ترکیب مفیدِ رایج برای کار ما: یک نقشِ «گردنده» با اجازهی فقط خواندن که میگردد و پیدا میکند، و گفتوگوی اصلی که تغییرها را انجام میدهد — با اجازهی خودت.
چند ابزار در یک پوشهی کار
یک حالت دیگر هم هست که با sub-agent اشتباه گرفته میشود: دو ابزار مستقل که هر دو روی همان پوشه کار میکنند.
این با sub-agent فرق دارد — اینجا دو برنامهی جدا هستند که همدیگر را نمیشناسند. و به همین دلیل دو خطر دارد:
- همدیگر را نمیبینند. هیچکدام نمیداند دیگری چه کرده. اگر همزمان یک فایل را عوض کنند، آخری برنده است و کارِ اولی بیصدا از بین میرود.
- هر کدام context خودش را دارد — که فایده است، ولی یعنی باید دو بار توضیح بدهی.
قاعدهی عملی: یا نوبتی، یا روی پوشههای جدا. همزمان روی یک فایل، نه. و اگر واقعاً لازم شد، ابزارِ برگرداندن (درس ۵.۲) دیگر لوکس نیست — ضروری است.
کِی ارزش دارد و کِی فقط پیچیدگی است
بهخاطر بسپار معیار یک جمله است: کارِ جانبی زیاد میخواند و کم برمیگرداند؟ اگر بله، sub-agent ارزش دارد. اگر خروجیاش تقریباً بهاندازهی ورودیاش است، چیزی جز پیچیدگی اضافه نکردهای.
ارزش دارد وقتی:
- باید در حجم زیادی بگردی تا چیز کمی پیدا کنی.
- میخواهی کاری با اجازهی محدودتر انجام شود.
- کارِ جانبی واقعاً مستقل است و به جزئیات گفتوگوی اصلی نیاز ندارد.
فقط پیچیدگی است وقتی:
- کار کوچک است. برای خواندن دو فایل، هزینهی راهانداختنِ یک نقشِ جدا بیشتر از فایدهاش است.
- نقشها به هم وابستهاند و باید مدام نتیجهی هم را ببینند. آنوقت داری همان context را دو بار میسازی.
- تو خودت هنوز کار را نمیشناسی. تقسیم کاری که خودت مرزهایش را نمیدانی، مرزِ اشتباه میسازد. اول ساده انجامش بده — همان قاعدهی «اول چند بار دستی» از درس ۰.۵ و ۲.۲.
و صادقانه: برای بیشتر کارهای این دوره، لازمش نداری. این فصل اینجاست تا وقتی اسمش را شنیدی بدانی چیست و کجا به کار میآید — نه اینکه از فردا با چند نقش کار کنی.
تمرین (فکری)
یک کار بزرگ را به دو نقش تقسیم کن و بگو هر نقش چه میکند.
برای هر نقش این چهار چیز را بنویس: چه کاری میکند · چه چیزی میبیند · چه ابزاری لازم دارد (و مهمتر: چه ابزاری نباید داشته باشد) · چه چیزی برمیگرداند.
و آخرش سؤال اصلی را جواب بده: آیا این تقسیم ارزش دارد؟ معیار بخش ۳.۵.۴ را بگذار. اگر جوابت «نه» است، همان هم جوابِ درستی است.
پاسخنامه — یک نمونهی خوب را ببین
کار: «از سه سال آرشیو قرارداد، فهرست قراردادهایی را دربیاور که تا شش ماه آینده تمام میشوند، و برای هرکدام یک یادداشت تمدید بنویس.»
نقش ۱ — گردنده: کار: همهی فایلهای آرشیو را بخواند و تاریخ پایان هرکدام را دربیاورد · میبیند: پوشهی آرشیو · ابزار: فقط خواندن — ابزار نوشتن نباید داشته باشد، چون قرار نیست به آرشیو دست بزند · برمیگرداند: یک فهرست کوتاه از اسم فایل و تاریخ.
نقش ۲ — نویسنده: کار: برای فهرست، یادداشت تمدید بنویسد · میبیند: فقط آن فهرست کوتاه و قالب یادداشت — نه کل آرشیو · ابزار: نوشتن، فقط در پوشهی خروجی · برمیگرداند: فایلهای یادداشت.
ارزش دارد؟ بله. «نقش اول شاید صد فایل بخواند و یک فهرست دوازدهخطی برگرداند — دقیقاً «زیاد میخواند، کم برمیگرداند». اگر همه در یک context بود، آن صد فایل تا آخر کار سرِ میز میماندند و وقتِ نوشتن یادداشتها، کیفیت افت میکرد.»
چرا این جواب خوب است: «چه ابزاری نباید داشته باشد» واقعاً جواب داده شده، و توجیهِ ارزش با معیار مشخص آمده نه با حس.
برای عمق بیشتر
- Create custom subagents — مستندات رسمی (انگلیسی). خلاصهی فارسی: منبعِ همان معیاری که این فصل رویش بنا شده — sub-agent را وقتی به کار ببر که یک کار جانبی میخواهد گفتوگوی اصلی را با نتیجهی جستوجو و لاگ و محتوای فایلهایی پر کند که دیگر به آنها برنمیگردی؛ آن کار در context جدای خودش انجام میشود و فقط خلاصه برمیگردد. فهرست فایدههایش هم همان است که در ۳.۵.۲ آوردیم: حفظ context · محدودکردن ابزارها · تخصصیکردن رفتار · و کنترل هزینه با سپردن کار به مدل سبکتر.