منشن کردن عاملها با @
این راهنما نشان میدهد چگونه در یک فضا عاملها و همتیمیها را با @ منشن کنید.
منشن کردن یک عامل
بخش با عنوان “منشن کردن یک عامل”در ویرایشگر پیام @ را تایپ کنید و از میان تکمیل خودکار یک عامل انتخاب کنید، یا
نام را خودتان بنویسید:
@alice fix the login bugعاملِ منشنشده، اگر از قبل مشارکتکنندهٔ فضا نباشد، بهعنوان مشارکتکننده به فضا افزوده میشود و با بافت و حالت همان فضا اعزام میگردد. مشارکتکنندگانی که منشن نشدهاند پیام را میبینند اما اعزام نمیشوند.
اگر پیامی بفرستید که هیچ منشنی از عامل در آن نباشد، Control Center خودش پاسخدهنده را انتخاب میکند: عاملی که آخرین بار در گفتگو صحبت کرده است؛ در غیر این صورت مالک گفتگو، اگر داشته باشد؛ در غیر این صورت نخستین عامل سطحبالا میان مشارکتکنندگان فضا. در فضایی با یک عامل، این همیشه همان عامل یکتاست.
نام چگونه تطبیق داده میشود
بخش با عنوان “نام چگونه تطبیق داده میشود”توکن منشن بدون توجه به بزرگی و کوچکی حروف و بر پایهٔ نام دقیق یا پیشوند
تطبیق داده میشود. بنابراین @arch به عاملی با نام architect میرسد و @Alice
به alice.
دو پیامد که ارزش برنامهریزی دارند:
- توکن کوتاه خطا نیست. اگر دو عامل پیشوند مشترکی داشته باشند، نخستین موردی که پیدا شود برنده است و اینکه کدامیک باشد به ترتیب بستگی دارد — نه به هیچ قاعدهٔ تساویشکن. هر جا نامها همپوشانی دارند، نام کامل را به کار ببرید.
- فقط حروف، رقمها و زیرخطها بخشی از توکناند. تجزیهگر
@(\w+)را تطبیق میدهد، پس@code-reviewerبهعنوان توکنcodeخوانده میشود و@my agentبهعنوانmy. عاملی که نامش خط تیره، نقطه یا فاصله داشته باشد نمیتواند بهشکلی قابلاتکا منشن شود — از جمله از راه تکمیل خودکار، که نام را بهصورت متن ساده درج میکند. عاملها را با یک واژه یا با زیرخط نامگذاری کنید.
منشنها پیش از رسیدن متن به عامل از آن حذف میشوند. پس پیامی که تنها منشن باشد
(@alice) چیزی اعزام نمیکند — چیزی برای انجام دادن به آن بدهید.
منشن کردن چند عامل همزمان
بخش با عنوان “منشن کردن چند عامل همزمان”@alice refactor the auth module. @bob write tests for it.هر دو عامل بهصورت موازی در همان گفتگو اعزام میشوند و هر دو پیام کامل را دریافت میکنند.
آنها همچنین worktreeهای همان فضا را به اشتراک میگذارند. worktreeهای مخزن
بهازای هر فضا آماده میشوند، نه بهازای هر عامل؛ هر عامل دایرکتوری کاری لایهای
خودش را برای AGENTS.md، مهارتها و پیکربندیاش میگیرد و مخزنهای مشترک با
دسترسی خواندن-نوشتن به آن پیوند میخورند. پس دو عاملی که با هم منشن شدهاند
میتوانند ویرایشهای یکدیگر را ببینند — و با آنها برخورد کنند.
منشن کردن یک همتیمی
بخش با عنوان “منشن کردن یک همتیمی”هر @tokenی که با هیچ عاملی تطبیق پیدا نکند، در برابر اعضای انسانی فضای کاری و
بر پایهٔ شناسهٔ کاربری، با همان قاعدهٔ نام دقیق یا پیشوند و بدون توجه به بزرگی و
کوچکی حروف آزموده میشود.
منشنی که به یک انسان تبدیل شود چیزی اعزام نمیکند. صرفاً سوار بر فرادادهٔ پیام است تا مسیریاب اعلان بتواند به آن شخص خبر دهد.
نام عاملها همیشه نخست آزموده میشود و توکنی که عاملی آن را تصاحب کرده باشد هرگز
به فهرست اعضا عرضه نمیشود — هر @word تنها میتواند به یک principal تبدیل شود.
آنچه عامل دریافت میکند
بخش با عنوان “آنچه عامل دریافت میکند”عاملی که اعزام میشود در پرامپتش یک بلوک «Summons» میگیرد که نام کسی را که او را فراخوانده ذکر میکند و فهرست اعضای فضا را میآورد — عاملهای دیگر (برچسبخورده به سطحبالا یا زیردست) و اعضای انسانی — تا بداند میتواند کار را به چه کسی واگذار کند. این بلوک همچنین به او میگوید که منشن کردن عامل دیگر در پاسخش آن عامل را بیدار میکند و منشن کردن خودش نادیده گرفته میشود.
وقتی یک عامل عامل دیگری را منشن میکند
بخش با عنوان “وقتی یک عامل عامل دیگری را منشن میکند”هر عامل میتواند در پاسخ خودش کار را واگذار کند. وقتی یک نوبت تمیز به پایان میرسد، منشنهای متنش حل میشوند و آن عاملها به فضا افزوده و به همان گفتگو اعزام میشوند، و نوبتِ منشنکننده بهعنوان پرامپتشان به کار میرود. نوبتی که شکست خورده یا قطع شده باشد کسی را بیدار نمیکند — در میانهٔ فکر کردن متوقف شده است.
این قاعدهها عمداً سختگیرانهتر از قاعدههای ویرایشگر پیاماند، چون کسی ناظر نیست تا حدس اشتباه را تصحیح کند:
- فقط نامهای دقیق. بدون تطبیق پیشوند. وقتی انسان
@archرا تایپ میکند بهarchitectمیرسد؛ از سوی یک عامل به هیچکس نمیرسد. نامی که با دو عامل تطبیق پیدا کند هم به هیچکس نمیرسد. - کد نثر نیست. منشنهای درون بلوکهای حصاردار یا
`backticks`نادیده گرفته میشوند، پس نقل کردن یک حاشیهنویسی@Overrideیاpip install foo@1.2بیخطر است. حصارِ بستهنشده هر چیزی را که پس از آن بیاید بیاثر میکند. @ی که به توکن پیشین چسبیده باشد منشن نیست —sam@host.com،pkg/@scopeوnode@20به هیچکس تبدیل نمیشوند.- خط تیرهها حفظ میشوند، پس
@code-reviewerبهعنوان خودش تبدیل میشود، نه بهعنوان توکنcode. - حداکثر سه عامل در هر نوبت. عاملی که در یک خلاصه شش همتیمی را نام میبرد در حال فهرست کردنشان است، نه فراخواندنشان.
زنجیرهٔ بیدارسازی همانند واگذاری محدود میشود: عمق ۳، و عاملی که از قبل در
زنجیره باشد نمیتواند دوباره بهوسیلهٔ آن بیدار شود (بدون A → B → A). برای هر
جفت مرتب نیز در سراسر زنجیرهها محدودیت نرخ اعمال میشود. بیدارسازیِ ردشده یک
پیام سیستمی در گفتگو میگذارد که میگوید کدام منشن تحویل نشد و چرا — نامِ
حلنشده چنین پیامی نمیگذارد، چون در غیر این صورت هر @ی در یک جمله خودش را
روایت میکرد.
برای واگذاریای که نباید به نثر وابسته باشد — یک درخواست/پاسخ، یا رسیدن به عاملی
بیرون از فضا — بهجای آن از ابزارهای send_to_agent، ask_agent و
delegate_task استفاده کنید.