Agent coordination
هدف
هدف
یک هدف، مقصودی ماندگار است که به نشست فعلی OpenClaw متصل میشود. این هدف، مقصدی مشترک برای کارهای طولانیمدت در اختیار عامل و اپراتور میگذارد، بدون آنکه آن مقصد را به یک وظیفه پسزمینه، یادآوری، کار Cron یا دستور دائمی تبدیل کند.
هدفها بخشی از وضعیت نشست هستند: همراه کلید نشست جابهجا میشوند، پس از راهاندازی
مجدد فرایند باقی میمانند و در /goal، ابزارهای هدف در دسترس مدل و پابرگ TUI
نمایش داده میشوند.
نتیجه تکمیل فرمانهای جداشده به رشته کاربری مبدأ بازمیگردد؛ بنابراین نوبت بعدی همچنان همان هدف را میبیند، حتی اگر اجرای فرمان از نشستی با سیاست سندباکس جداگانه استفاده کرده باشد.
شروع سریع
/goal start سبز کردن CI برای PR 87469 و ارسال اصلاح/goal/goal edit سبز کردن CI برای PR 87469، ارسال اصلاح و بهروزرسانی مستندات/goal pause در انتظار CI/goal resume/goal complete ارسال و تأیید شد/goal clearstart اختیاری است: /goal get CI green for PR 87469 نیز یک هدف ایجاد میکند،
زیرا هر متنی پس از /goal که واژه عملیاتی شناختهشدهای نباشد، بهعنوان
مقصودی جدید در نظر گرفته میشود.
کاربرد هدفها
وقتی یک نشست نتیجه مشخصی دارد که باید طی نوبتهای متعدد قابلمشاهده بماند، از هدف استفاده کنید:
- نهاییسازی یک PR: اصلاح، تأیید، بازبینی خودکار، ارسال و باز کردن یا بهروزرسانی PR.
- یک اجرای اشکالزدایی: بازتولید باگ، شناسایی سطح مالک، وصلهکردن و اثبات اصلاح.
- یک دور مستندسازی: خواندن مستندات مرتبط، نوشتن صفحه جدید، ایجاد پیوندهای متقابل و تأیید ساخت مستندات.
- یک وظیفه نگهداری: بررسی وضعیت فعلی، اعمال تغییرات محدود، اجرای بررسیهای مناسب و گزارش تغییرات.
هدف، صف وظایف نیست. وقتی کار باید بهشکل جداشده اجرا شود، طبق زمانبندی تکرار شود، به زیرکارهای مدیریتشده گسترش یابد یا بهعنوان یک سیاست ماندگار شود، از Task Flow، وظایف، کارهای Cron یا دستورهای دائمی استفاده کنید.
مرجع فرمانها
/goal بدون آرگومان، خلاصه هدف فعلی را نمایش میدهد:
هدفوضعیت: فعالمقصود: سبز کردن CI برای PR 87469 و ارسال اصلاحتوکنهای مصرفشده: 12kبودجه توکن: 12k/50k فرمانها: /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 علامتگذاری کند، نه بهدلیل
دشواری معمول یا پرداختکاری ناقص.
زمینه هدف در هر نوبت
هر نوبت کاربر/گفتوگو با هدف فعال، این خط زمینه با نقش کاربر را شامل میشود:
هدف فعال: <objective> — آن را پیش ببرید یا وضعیتش را بهروزرسانی کنید (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 تازهسازی میشود.