Agent coordination
هدف
هدف
یک هدف یک مقصود پایدار است که به نشست فعلی OpenClaw متصل میشود. این به عامل و اپراتور یک مقصد مشترک برای کارهای طولانیمدت میدهد، بدون اینکه آن مقصد را به یک وظیفه پسزمینه، یادآور، کار Cron یا دستور دائمی تبدیل کند.
هدفها وضعیت نشست هستند. آنها همراه با کلید نشست جابهجا میشوند، پس از
راهاندازی دوباره فرایند باقی میمانند، در /goal نمایش داده میشوند، از
طریق ابزارهای هدف در دسترس مدل هستند، و وقتی نشست فعال هدفی داشته باشد در
پاورقی TUI ظاهر میشوند.
شروع سریع
یک هدف تنظیم کنید:
/goal start get CI green for PR 87469 and push the fixآن را بررسی کنید:
/goalوقتی کار عمدا در انتظار است، آن را متوقف کنید:
/goal pause waiting for CIآن را از سر بگیرید:
/goal resumeآن را کامل علامتگذاری کنید:
/goal complete pushed and verifiedآن را پاک کنید:
/goal clearهدفها برای چه هستند
وقتی یک نشست نتیجهای مشخص دارد که باید در طول چندین نوبت قابل مشاهده بماند، از هدف استفاده کنید:
- پایانبندی یک PR: اصلاح، راستیآزمایی، autoreview، push، و باز کردن یا بهروزرسانی PR.
- اجرای اشکالزدایی: بازتولید باگ، شناسایی سطح مالک، وصله، و اثبات اصلاح.
- مرور مستندات: خواندن مستندات مرتبط، نوشتن صفحه جدید، پیونددهی متقابل آن، و راستیآزمایی ساخت مستندات.
- وظیفه نگهداشت: بررسی وضعیت فعلی، اعمال تغییرات محدود، اجرای بررسیهای درست، و گزارش آنچه تغییر کرده است.
هدف صف وظایف نیست. وقتی کار باید جدا اجرا شود، طبق زمانبندی تکرار شود، به زیرکارهای مدیریتشده منشعب شود، یا بهعنوان یک سیاست پایدار بماند، از جریان وظیفه، وظایف، کارهای Cron، یا دستورهای دائمی استفاده کنید.
مرجع فرمان
/goal بدون آرگومان خلاصه هدف فعلی را چاپ میکند:
GoalStatus: activeObjective: get CI green for PR 87469 and push the fixTokens used: 12kToken budget: 12k/50k Commands: /goal pause, /goal complete, /goal clearفرمانها:
/goalیا/goal statusهدف فعلی را نشان میدهد./goal start <objective>یک هدف جدید برای نشست فعلی ایجاد میکند./goal set <objective>و/goal create <objective>نامهای مستعارstartهستند./goal pause [note]یک هدف فعال را متوقف میکند./goal resume [note]یک هدف متوقف، مسدود، محدودشده بر اساس مصرف، یا محدودشده بر اساس بودجه را از سر میگیرد./goal complete [note]هدف را محققشده علامتگذاری میکند./goal done [note]نام مستعارcompleteاست./goal block [note]هدف را مسدود علامتگذاری میکند./goal blocked [note]نام مستعارblockاست./goal clearهدف را از نشست حذف میکند.
در هر زمان فقط یک هدف میتواند روی یک نشست وجود داشته باشد. شروع هدف دوم تا زمانی که هدف فعلی پاک نشود، شکست میخورد.
وضعیتها
هدفها از یک مجموعه وضعیت کوچک استفاده میکنند:
active: نشست در حال دنبال کردن هدف است.paused: اپراتور هدف را متوقف کرده است؛/goal resumeدوباره آن را فعال میکند.blocked: عامل یا اپراتور یک مانع واقعی گزارش کرده است؛ وقتی اطلاعات یا وضعیت جدیدی در دسترس باشد،/goal resumeدوباره آن را فعال میکند.budget_limited: بودجه توکن پیکربندیشده به پایان رسیده است؛/goal resumeپیگیری را از همان هدف دوباره شروع میکند.usage_limited: برای وضعیتهای توقف ناشی از محدودیت مصرف رزرو شده است؛/goal resumeوقتی مجاز باشد پیگیری را دوباره شروع میکند.complete: هدف محقق شده است. هدفهای کاملشده نهایی هستند؛ پیش از شروع هدفی دیگر از/goal clearاستفاده کنید.
/new و /reset هدف نشست فعلی را پاک میکنند، چون عمدا زمینه نشست تازهای
را شروع میکنند.
بودجههای توکن
هدفها میتوانند یک بودجه توکن مثبت اختیاری داشته باشند. بودجه همراه با هدف ذخیره میشود و از شمارش توکن تازه نشست در زمان ایجاد اندازهگیری میشود. اگر نشست فعلی هنگام شروع هدف فقط مصرف توکن قدیمی یا نامعلوم داشته باشد، OpenClaw منتظر snapshot تازه بعدی از توکنهای نشست میماند و آن را بهعنوان خط مبنا استفاده میکند، بنابراین توکنهایی که پیش از وجود هدف مصرف شدهاند به هدف محاسبه نمیشوند.
وقتی مصرف توکن به بودجه برسد، هدف به budget_limited تغییر میکند. این
هدف را حذف نمیکند یا مقصود را از بین نمیبرد. به اپراتور و
عامل میگوید که هدف دیگر بهصورت فعال دنبال نمیشود تا زمانی که از سر گرفته
یا پاک شود.
بودجههای توکن یک محافظ برای هدف نشست هستند، نه سقف صورتحساب. سهمیه ارائهدهنده، گزارش هزینه، و رفتار پنجره زمینه همچنان از کنترلهای عادی مصرف و مدل OpenClaw استفاده میکنند.
ابزارهای مدل
OpenClaw سه ابزار اصلی هدف را در اختیار harnessهای عامل قرار میدهد:
get_goal: خواندن هدف نشست فعلی، شامل وضعیت، مقصود، مصرف توکن، و بودجه توکن.create_goal: ایجاد یک هدف فقط وقتی دستورهای کاربر، سیستم، یا توسعهدهنده صراحتا چنین چیزی را درخواست کنند. اگر نشست از قبل هدفی داشته باشد شکست میخورد.update_goal: علامتگذاری هدف بهعنوانcompleteیاblocked.
مدل نمیتواند بیصدا یک هدف را متوقف، از سر بگیرد، پاک، یا جایگزین کند. اینها
کنترلهای اپراتور/نشست از طریق /goal و فرمانهای reset هستند. این باعث میشود
عامل نتواند بیسروصدا مقصد را جابهجا کند، در حالی که مسیر تمیزی برای
گزارش تحقق یا یک مانع واقعی توسط عامل حفظ میشود.
ابزار update_goal باید فقط وقتی هدف را complete علامتگذاری کند که مقصود
واقعا محقق شده باشد. فقط وقتی باید هدف را blocked علامتگذاری کند که همان
شرط مسدودکننده تکرار شده باشد و عامل نتواند بدون ورودی جدید کاربر یا تغییر
در وضعیت خارجی پیشرفت معناداری داشته باشد.
TUI
TUI هدف نشست فعال را در پاورقی کنار عامل، نشست، مدل، کنترلهای اجرا، و شمارش توکنها قابل مشاهده نگه میدارد.
نمونههای پاورقی:
Pursuing goal (12k/50k)برای یک هدف فعال با بودجه توکن.Goal paused (/goal resume)برای یک هدف متوقف.Goal blocked (/goal resume)برای یک هدف مسدود.Goal hit usage limits (/goal resume)برای یک هدف محدودشده بر اساس مصرف.Goal unmet (50k/50k)برای یک هدف محدودشده بر اساس بودجه.Goal achieved (42k)برای یک هدف کاملشده.
پاورقی عمدا فشرده است. برای مقصود کامل، یادداشت، بودجه توکن، و فرمانهای
در دسترس از /goal استفاده کنید.
رفتار کانال
فرمان /goal در نشستهای OpenClaw که قابلیت فرمان دارند کار میکند، از جمله
TUI و سطوح چت که فرمانهای متنی را مجاز میکنند. وضعیت هدف به کلید
نشست متصل است، نه به انتقال. اگر دو سطح از یک نشست یکسان استفاده کنند، همان
هدف را میبینند.
وضعیت هدف دستورالعمل تحویل نیست. پاسخها را مجبور نمیکند از طریق یک کانال ارسال شوند، رفتار صف را تغییر نمیدهد، ابزارها را تأیید نمیکند، یا کاری را زمانبندی نمیکند.
عیبیابی
Goal error: goal already exists یعنی نشست از قبل هدفی دارد. برای بررسی آن از
/goal استفاده کنید، اگر انجام شده از /goal complete استفاده کنید، یا پیش از
شروع یک مقصود متفاوت از /goal clear استفاده کنید.
Goal error: goal not found یعنی نشست هنوز هدفی ندارد. یکی را با
/goal start <objective> شروع کنید.
Goal error: goal is already complete یعنی هدف نهایی است. پیش از شروع یا از سر گرفتن
مقصودی دیگر آن را پاک کنید.
اگر مصرف توکن مانند 0 یا قدیمی به نظر میرسد، نشست فعال ممکن است هنوز snapshot
تازهای از توکن نداشته باشد. با ثبت مصرف نشست و مجموعهای مشتقشده از transcript توسط
OpenClaw، مصرف تازهسازی میشود.