Agent coordination
هدف
هدف
یک هدف، مقصودی پایدار است که به نشست جاری OpenClaw پیوست میشود. این قابلیت، برای کارهای طولانیمدت مقصدی مشترک در اختیار عامل و اپراتور قرار میدهد، بیآنکه آن مقصد را به وظیفهای پسزمینه، یادآور، کار Cron یا دستور دائمی تبدیل کند.
هدفها بخشی از وضعیت نشست هستند: همراه با کلید نشست جابهجا میشوند، پس از
راهاندازی مجدد فرایند باقی میمانند و در /goal، ابزارهای هدفِ در دسترس مدل و
پابرگ TUI نمایش داده میشوند.
شروع سریع
/goal start get CI green for PR 87469 and push the fix/goal/goal edit get CI green for PR 87469, push the fix, and update docs/goal pause waiting for CI/goal resume/goal complete pushed and verified/goal clearاستفاده از start اختیاری است: /goal get CI green for PR 87469 نیز یک هدف
ایجاد میکند، زیرا هر متنی پس از /goal که واژه عملیاتی شناختهشدهای نباشد،
بهعنوان مقصودی جدید در نظر گرفته میشود.
کاربرد هدفها
هنگامی از هدف استفاده کنید که یک نشست نتیجهای مشخص دارد که باید طی نوبتهای متعدد قابل مشاهده باقی بماند:
- نهاییسازی یک PR: رفع مشکل، راستیآزمایی، بازبینی خودکار، ارسال تغییرات و باز کردن یا بهروزرسانی PR.
- یک اجرای اشکالزدایی: بازتولید اشکال، شناسایی بخش مالک آن، اعمال اصلاح و اثبات رفع مشکل.
- یک دور مستندسازی: خواندن مستندات مرتبط، نوشتن صفحه جدید، افزودن پیوندهای متقابل و راستیآزمایی ساخت مستندات.
- یک کار نگهداشت: بررسی وضعیت جاری، اعمال تغییرات محدود، اجرای بررسیهای مناسب و گزارش تغییرات.
هدف، صف وظایف نیست. هنگامی که کار باید بهصورت مستقل اجرا شود، طبق برنامه زمانی تکرار شود، به زیرکارهای مدیریتشده تقسیم شود یا بهشکل یک سیاست پایدار بماند، از TaskFlow، وظایف، کارهای Cron یا دستورهای دائمی استفاده کنید.
مرجع فرمانها
اجرای /goal بدون آرگومان، خلاصه هدف جاری را نمایش میدهد:
GoalStatus: activeObjective: get CI green for PR 87469 and push the fixTokens used: 12kToken budget: 12k/50k Commands: /goal edit <objective>, /goal pause, /goal complete, /goal clear| فرمان | اثر |
|---|---|
/goal یا /goal status |
هدف جاری را نمایش میدهد. |
/goal start <objective> |
برای نشست جاری هدفی جدید ایجاد میکند. |
/goal set <objective>، /goal create <objective> |
نامهای مستعار start هستند. |
/goal <objective> |
هدفی جدید نیز ایجاد میکند؛ هر متنی که واژه عملیاتی شناختهشدهای نباشد. |
/goal edit <objective> |
عبارتبندی مقصود جاری را تغییر میدهد؛ وضعیت و محاسبه توکنها ثابت میمانند. |
/goal pause [note] |
یک هدف فعال را متوقف میکند. |
/goal resume [note] |
هدف متوقف، مسدود، محدودشده از نظر مصرف یا محدودشده از نظر بودجه را از سر میگیرد. |
/goal complete [note] |
هدف را تحققیافته علامتگذاری میکند. |
/goal done [note] |
نام مستعار complete است. |
/goal block [note] |
هدف را مسدود علامتگذاری میکند. |
/goal blocked [note] |
نام مستعار block است. |
/goal clear |
هدف را از نشست حذف میکند. |
در هر نشست فقط یک هدف میتواند وجود داشته باشد. تا زمانی که هدف جاری پاک نشود،
شروع هدف دوم با خطای Goal error: goal already exists مواجه میشود.
/goal start پرچم بودجه توکن نمیپذیرد؛ بودجه فقط از طریق ابزار
create_goal در دسترس مدل قابل تنظیم است.
وضعیتها
active: نشست در حال پیگیری هدف است.paused: اپراتور هدف را متوقف کرده است؛/goal resumeآن را دوباره فعال میکند.blocked: عامل یا اپراتور وجود مانعی واقعی را گزارش کرده است؛ هنگامی که اطلاعات یا وضعیت جدیدی در دسترس باشد،/goal resumeآن را دوباره فعال میکند.budget_limited: بودجه توکن پیکربندیشده به پایان رسیده است؛/goal resumeپیگیری همان مقصود را با پنجره بودجهای تازه از سر میگیرد.usage_limited: برای وضعیت توقف ناشی از محدودیت مصرف در آینده رزرو شده است؛/goal resumeپیگیری را به همان روش از سر میگیرد.complete: هدف محقق شده است. هدفهای تکمیلشده نهایی هستند؛ پیش از شروع هدفی دیگر از/goal clearاستفاده کنید.
/new و /reset هدف نشست جاری را پاک میکنند، زیرا عمداً
زمینه نشستی تازه را آغاز میکنند.
بودجههای توکن
هدفها میتوانند بودجه توکن مثبت و اختیاری داشته باشند که از طریق پارامتر
token_budget ابزار create_goal تنظیم میشود. بودجه از شمار توکن تازه نشست
در زمان ایجاد هدف محاسبه میشود. اگر هنگام شروع هدف، نشست فقط یک نمای لحظهای
کهنه یا نامشخص از توکنها داشته باشد، OpenClaw منتظر نمای لحظهای تازه بعدی
میماند و آن را بهعنوان خط مبنا استفاده میکند؛ بنابراین توکنهای مصرفشده پیش از
ایجاد هدف به حساب آن منظور نمیشوند.
هنگامی که مصرف به بودجه برسد، هدف به وضعیت budget_limited میرود. این وضعیت
هدف را حذف یا مقصود را پاک نمیکند؛ بلکه به اپراتور و عامل اطلاع میدهد که
تا زمان ازسرگیری یا پاکشدن هدف، دیگر بهطور فعال پیگیری نمیشود.
ازسرگیری، پنجره بودجهای جدیدی را از شمار توکن تازه جاری آغاز میکند.
بودجههای توکن یک حفاظ برای هدف نشست هستند، نه سقف صورتحساب. سهمیه ارائهدهنده، گزارش هزینه و رفتار پنجره زمینه همچنان از کنترلهای عادی مصرف و مدل OpenClaw استفاده میکنند.
ابزارهای مدل
OpenClaw سه ابزار هدف را در اختیار چارچوبهای عامل قرار میدهد:
| ابزار | کاربرد |
|---|---|
get_goal |
خواندن هدف نشست جاری: وضعیت، مقصود، مصرف توکن و بودجه توکن. |
create_goal |
ایجاد هدف فقط هنگامی که دستورهای کاربر یا سیستم صریحاً آن را درخواست کرده باشند. اگر نشست از قبل هدفی داشته باشد، ناموفق است. |
update_goal |
علامتگذاری هدف بهعنوان complete یا blocked. |
مدل نمیتواند بدون اطلاع، هدفی را متوقف، از سر گرفته، پاک یا جایگزین کند. این موارد
از طریق /goal و فرمانهای بازنشانی در کنترل اپراتور و نشست باقی میمانند تا عامل
بتواند تحقق هدف یا وجود مانعی واقعی را گزارش کند، بیآنکه بیسروصدا
مقصد را تغییر دهد.
update_goal باید فقط زمانی هدف را complete علامتگذاری کند که مقصود
واقعاً محقق شده باشد. هدف باید فقط پس از آن blocked علامتگذاری شود که
همان وضعیت مسدودکننده در دستکم سه نوبت متوالی هدف تکرار شده باشد، نه بهدلیل
دشواری عادی یا نبود پرداخت نهایی.
زمینه هدف در هر نوبت
هر نوبت کاربر یا گفتوگو با هدفی فعال، این خط زمینه با نقش کاربر را دربر میگیرد:
Active goal: <objective> — advance it or update its status (get_goal/update_goal).OpenClaw با کوتاهکردن مقصودهای طولانی، این خط را فشرده نگه میدارد. هدفهای متوقف، مسدود، محدودشده از نظر بودجه، محدودشده از نظر مصرف و تکمیلشده تزریق نمیشوند؛ بنابراین توقف اپراتور تا زمان ازسرگیری هدف برقرار میماند.
رابط کاربری کنترل
رابط کاربری کنترل وب، هدف را بهصورت یک نشان فشرده بالای کادر نوشتن گفتوگو
نمایش میدهد: یک نماد وضعیت، برچسب وضعیت (برای مثال Pursuing goal)، مقصود
کوتاهشده و زمانسنج زنده مدت سپریشده.
این نشان کنترلهای درونخطی زیر را دارد:
- مداد کادر نوشتن را با
/goal edit <objective>از پیش پر میکند تا مقصود بازنویسی و ارسال شود. - توقف / ازسرگیری بر اساس وضعیت جاری میان
/goal pauseو/goal resumeجابهجا میشود. - سطل زباله فرمان
/goal clearرا ارسال میکند. - فلش بازشو نشان را گسترش میدهد تا مقصود کامل، آخرین یادداشت وضعیت، مصرف توکن و زمان سپریشده را نمایش دهد.
وقتی کادر نوشتن قادر به ارسال نباشد، دکمههای عملیات پنهان میشوند؛ برای مثال زمانی که اتصال Gateway قطع است. فلش بازشو همچنان کار میکند.
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 نمایش داده میشود یا کهنه به نظر میرسد، ممکن است نشست فعال هنوز
نمای لحظهای تازهای از توکنها نداشته باشد. با ثبت مصرف نشست و مجموعهای
استخراجشده از رونوشت توسط OpenClaw، مصرف بهروزرسانی میشود.