استفاده از حالت برنامه
این راهنما نشان میدهد چگونه پیش از آنکه یک عامل کدی بنویسد، از آن یک طرح ساختیافته بگیرید.
در حالت برنامه، عامل بهصورت فقطخواندنی پژوهش میکند و تنها خروجیاش یک طرح نوعدار است: گرافی از وابستگی گامها که شما تأییدش میکنید و Control Center سپس آن را به کار واقعی کامپایل میکند. هر وقت میخواهید دامنهٔ یک تغییر را ببینید، گامها را شکستهشده دریافت کنید، یا پیش از آنکه به چیزی دست بخورد، ریسکها و وابستگیها نامبرده شوند، از آن استفاده کنید.
بردن یک فضا به حالت برنامه
بخش با عنوان “بردن یک فضا به حالت برنامه”هر یک از اینها حالت فضا را عوض میکند و تغییر ماندگار میشود:
- برنامه را از فهرست بازشوی حالت در منتهیالیه چپ نوار ابزار ویرایشگر پیام انتخاب کنید
- Shift+Tab را بزنید
/planرا بفرستید. یک/planخالی فقط حالت را آماده میکند؛/plan <request>آن را آماده میکند و باقی متن را بهعنوان پیام شما میفرستد
/plan هرگز بهعنوان متن حرکت نمیکند — حالت ذخیرهشده را تنظیم میکند، همان
مرجعی که سطح ابزار، پیشتنظیم گاردریل و پرامپت همه از آن میخوانند. پس این
حالت برای این نوبت و همهٔ نوبتهای پس از آن برقرار میماند، تا وقتی خودتان آن
را برگردانید.
حالت روی فضا ذخیره میشود، بنابراین همان عامل میتواند اینجا در حالت برنامه و جای دیگری در حالت عامل باشد.
عامل چه چیزی تولید میکند
بخش با عنوان “عامل چه چیزی تولید میکند”- بهصورت فقطخواندنی پژوهش میکند — حافظه، نمایهٔ کد، فایلها
- یک بار
submit_planرا فراخوانی میکند، با یکgoalبهعلاوهٔnodes؛ هر گره یکkeyپایدار، یکtitle، یکdescriptionو کلید گرههایی را حمل میکند که به آنهاdependsOnدارد (همین است که کار مستقل را موازی اجرا میکند) - متوقف میشود
ابزار گراف را اعتبارسنجی میکند — کلیدهای تکراری، وابستگیهای آویزان، حلقهها — و بهجای پذیرفتن یک طرح شکسته، تخلفها را برمیگرداند تا عامل آنها را درست کند.
طرح در گفتگو بهصورت یک ردیف جمعوجور ظاهر میشود که هدف، وضعیت و شمار گامها را نشان میدهد. Plan Studio — گراف وابستگی، بازرس هر گره و برآورد هزینه — بهصورت زبانهای کنار گفتگو باز میشود: روی ردیف باز کردن را بزنید، یا بهسادگی صبر کنید، چون طرحی که تا ۳۰ ثانیه برسد و شما در حال تماشای گفتگو باشید، زبانهاش خودش باز میشود.
نثر در اینجا خروجی نیست. اجرایی که بدون فراخوانی submit_plan به پایان برسد،
یک خط نمایان «Ended without submitting a plan (no submit_plan call).» در گفتگو
ثبت میکند و اجرا را بهعنوان برآوردهنکردهٔ خروجیاش علامت میزند. وضعیت اجرا
عمداً completed میماند — این کار ماشینهای حالت پایپلاین و تیکت را
دستنخورده نگه میدارد — پس خط را بخوانید، نه نشان وضعیت را.
تأیید طرح
بخش با عنوان “تأیید طرح”از ردیف طرح در گفتگو، تأیید و اجرا را بزنید. از نوار تأیید Plan Studio، تأیید برنامه را بزنید (یا رد کنارش؛ تا وقتی گراف خطای اعتبارسنجی دارد، تأیید غیرفعال است).
سپس:
- Control Center طرح را به یک ارکستراسیون کامپایل و آن را مادیسازی میکند — تیکتها و اجرا. هیچ مدلی در این گام دخیل نیست؛ این کار قطعی است
- طرح بهعنوان همان عاملی که آن را نوشته اجرا میشود. اینکه کس دیگری وارد شود
یا نه، تصمیم همان عامل در زمان اجراست — میتواند یک گام را با
delegate_taskبه همتیمی مناسبتری واگذار کند، تا سقف عمق واگذاری فضای کاری - هدف طرح هدف همان گفتگو میشود و کار در همان گفتگو اجرا میشود: هر گام آنچه از عامل خواسته شده را ثبت میکند و نوبتش را بهصورت جریانی برمیگرداند، پس همانجایی که هستید دنبالش میکنید (و میتوانید یک نوبت را متوقف کنید)
- ردیف هدف در پنل کناری عمومی گفتگو (زیر کارها) پیشرفت اجرا را بهشکل
settled/totalو دکمهٔ توقفش را حمل میکند؛ Plan Studio وضعیت هر گره را روی گراف نشان میدهد و از همانجا هم لغو میکند
ادامهٔ کار بدون تأیید
بخش با عنوان “ادامهٔ کار بدون تأیید”اگر ترجیح میدهید بهجای تأیید طرح در همین گفتگو بمانید، عامل میتواند
exit_plan_mode را فراخوانی کند. این تنها خروج مجاز است: یک درخواست تأیید
ماندگار وابسته به گفتگو باز میکند و pending برمیگرداند — فضا در حالت برنامه
میماند و عامل نباید اقدام کند. بهمحض تأیید درخواست، فراخوانی بعدی
exit_plan_mode توسط عامل، فضا را از حالت برنامه به حالت عامل میچرخاند و
ابزارهای تغییردهندهاش را باز میکند. رد شدن به آن اجازه میدهد درخواست تازهای
برای طرحی بازنگریشده باز کند.
برای خارج شدن از حالت برنامه، فهرست بازشوی ویرایشگر پیام (یا Shift+Tab) را عوض
کنید، یا طرح ارسالشده را تأیید کنید. exit_plan_mode یک تأیید ماندگار باز
میکند که با ابزار MCP به نام decide_approval تصمیمگیری میشود. پوشانندهٔ
گاردریل برای فراخوانیهای ابزار مسدودشده صفی متفاوت و درونحافظه است و
درخواستهای خروج از حالت برنامه را حمل نمیکند.
حالت برنامه در یک گام پایپلاین
بخش با عنوان “حالت برنامه در یک گام پایپلاین”یک گرهٔ پایپلاین messaging.createSpace حالت گفتگو را از فیلد اضافیِ mode
در پیکربندی گره میخواند — extras['mode']: 'plan'. این کلید تطبیق دقیق دارد:
هر املای دیگری، از جمله conversationMode یا dispatchMode، بیصدا نادیده
گرفته میشود و اتاق به پیشفرض بدنه برمیگردد، که حالت بازبینی است، نه
گفتگو. یک گام promptAgent به اتاقی میپیوندد که خودش نساخته است و مجوزهایش
را دوباره تنظیم نمیکند. انتخابگر حالت اعزام در ویرایشگر پیکربندی گره
(allParallel / manager) برای گرههای اعزام تیم است. حالت گفتگو را با
extras['mode'] روی قالبی که فضا را باز میکند تنظیم کنید، یا از طریق API روی
پیکربندی همان گره.