CLI commands

CLI تابلوی کار

openclaw workboard رابط ترمینالی Plugin ورک‌بورد همراه‌شده است. این رابط به اپراتور امکان می‌دهد کارت‌ها را فهرست کند، کارتی بسازد، یک کارت را بررسی کند و از Gateway در حال اجرا بخواهد کارهای آماده را برای اجراهای عامل فرعیِ کارگر ارسال کند.

پیش از استفاده از فرمان، Plugin را فعال کنید:

bash
openclaw plugins enable workboardopenclaw gateway restart

نحوه استفاده

bash
openclaw workboard list [--board <id>] [--status <status>] [--include-archived] [--json]openclaw workboard create <title...> [--notes <text>] [--status <status>] [--priority <priority>] [--agent <id>] [--board <id>] [--labels <items>] [--json]openclaw workboard show <id> [--json]openclaw workboard move <id> --status <status> [--json]openclaw workboard dispatch [--board <id>] [--max-starts <count>] [--admin] [--url <url>] [--token <token>] [--timeout <ms>] [--json]

این فرمان همان پایگاه داده SQLite متعلق به Plugin را می‌خواند و می‌نویسد که داشبورد و ابزارهای عامل ورک‌بورد از آن استفاده می‌کنند. شناسه‌های کارت UUID هستند؛ فرمان‌هایی که شناسه کارت می‌پذیرند، پیشوند بدون ابهام شناسه را نیز می‌پذیرند (خروجی متنی فشرده 8 نویسه نخست را نشان می‌دهد).

مقادیر معتبر status:‏ triage،‏ backlog،‏ todo،‏ scheduled،‏ ready،‏ running،‏ review،‏ blocked،‏ done. مقادیر معتبر priority:‏ low،‏ normal،‏ high،‏ urgent.

list

bash
openclaw workboard listopenclaw workboard list --board default --status readyopenclaw workboard list --json

خروجی متنی فشرده است:

text
7f4a2c10  ready     high    default agent-a  رفع Heartbeat قدیمی کارگر

ستون‌ها به‌ترتیب پیشوند شناسه، وضعیت، اولویت، شناسه برد، شناسه اختیاری عامل و عنوان هستند.

پرچم کاربرد
--board <id> محدودکردن نتایج به فضای نام یک برد
--status <status> محدودکردن نتایج به یک وضعیت ورک‌بورد
--include-archived گنجاندن کارت‌های بایگانی‌شده در خروجی متنی فشرده
--json چاپ فهرست کامل کارت‌ها به‌شکل JSON ماشینی

خروجی متنی فشرده به‌طور پیش‌فرض کارت‌های بایگانی‌شده را پنهان می‌کند تا CLI با /workboard list مطابقت داشته باشد. برای نمایش آن‌ها --include-archived را ارسال کنید. خروجی JSON برای سازگاری با خودکارسازی موجود، همیشه فهرست کامل کارت‌ها، از جمله کارت‌های بایگانی‌شده، را نگه می‌دارد.

create

bash
openclaw workboard create "Fix stale worker heartbeat" --priority high --labels bug,workboardopenclaw workboard create "Write Workboard docs" --status ready --agent docs-agent --board docs --notes "Cover CLI, slash command, dispatch, and SQLite state."
پرچم کاربرد
--notes <text> یادداشت‌های اولیه کارت
--status <status> وضعیت اولیه، پیش‌فرض todo
--priority <priority> اولویت، پیش‌فرض normal
--agent <id> واگذاری کارت به شناسه عامل یا مالک
--board <id> ذخیره کارت در فضای نام یک برد
--labels <items> برچسب‌های جداشده با ویرگول
--json چاپ کارت ساخته‌شده به‌شکل JSON ماشینی

create مستقیماً در وضعیت SQLite ورک‌بورد می‌نویسد. کارت بلافاصله در زبانه ورک‌بوردِ رابط کنترل و برای ابزارهای ورک‌بورد قابل مشاهده است.

show

bash
openclaw workboard show 7f4a2c10openclaw workboard show 7f4a2c10 --json

خروجی متنی، خط فشرده کارت و یادداشت‌ها را چاپ می‌کند. خروجی JSON رکورد کامل کارت را برمی‌گرداند که شامل فراداده اجرا، تلاش‌ها، نظرها، پیوندها، شواهد، مصنوعات، گزارش‌های کارگر، وضعیت پروتکل، عیب‌یابی‌ها و فراداده خودکارسازی است.

وضعیت‌های شواهد در JSON نتایج گزارش‌شده توسط کارگر هستند. passed خودارزیابی کارگر از فرمان یا بررسی پیوست‌شده را ثبت می‌کند؛ این نتیجه یک راستی‌آزمایی مستقل نیست.

move

bash
openclaw workboard move 7f4a2c10 --status reviewopenclaw workboard move 7f4a2c10 --status done --json

move وضعیت کارت را از همان مسیر اپراتور دستی تغییر می‌دهد که برای کشیدن کارت در داشبورد استفاده می‌شود. این فرمان شناسه کامل کارت یا پیشوند بدون ابهام آن را می‌پذیرد. توقف‌های فعال ناشی از وابستگی و زمان‌بندی همچنان اعمال می‌شوند. اپراتورها می‌توانند کارت ادعاشده را بدون توکن ادعای عامل آن جابه‌جا کنند؛ توکن‌های ادعا همچنان فقط برای تغییرات ابزار عامل معتبرند و از خروجی JSON حذف می‌شوند.

dispatch

bash
openclaw workboard dispatchopenclaw workboard dispatch --jsonopenclaw workboard dispatch --max-starts 10openclaw workboard dispatch --adminopenclaw workboard dispatch --url http://127.0.0.1:18789 --token "$OPENCLAW_GATEWAY_TOKEN"

dispatch ابتدا متد RPC ‏Gateway با نام workboard.cards.dispatch را فراخوانی می‌کند که از همان زمان‌اجرای عامل فرعیِ کنش ارسال داشبورد استفاده می‌کند؛ بنابراین کارت‌های آماده به اجراهای کارگرِ رهگیری‌شده به‌عنوان وظیفه با کلیدهای نشست پیوندخورده تبدیل می‌شوند. --max-starts از متد افزایشی workboard.cards.dispatchWithOptions استفاده می‌کند تا Gateway قدیمی پیش از شروع هر کارگری این گزینه را رد کند؛ پس از ارتقا و پیش از استفاده از این پرچم، Gateway را بازراه‌اندازی کنید. کارت‌هایی که عامل به آن‌ها اختصاص یافته است از کلیدهای نشست عامل فرعیِ محدود به عامل استفاده می‌کنند؛ کارت‌های بدون عامل اختصاص‌یافته کلید عامل فرعیِ بدون محدودیت دامنه را حفظ می‌کنند تا عامل پیش‌فرض پیکربندی‌شده Gateway حفظ شود.

حلقه ارسال:

  1. فرزندان دارای وابستگی آماده را به ready ارتقا می‌دهد.
  2. ادعاهای منقضی یا اجراهای کارگرِ دچار پایان مهلت را مسدود می‌کند.
  3. فراداده ارسال را روی کارت‌های آماده ثبت می‌کند.
  4. دسته کوچکی از کارت‌های آماده و ادعانشده را انتخاب می‌کند.
  5. هر کارت انتخاب‌شده را برای ارسال‌کننده یا عامل اختصاص‌یافته ادعا می‌کند.
  6. یک اجرای کارگرِ عامل فرعی را با زمینه محدود کارت و توکن ادعای کارت آغاز می‌کند.
  7. شناسه اجرای کارگر، کلید نشست، پیوند وظیفه در صورت گزارش‌شدن توسط دفتر وظایف Gateway، وضعیت اجرا و گزارش کارگر را روی کارت ذخیره می‌کند.

انتخاب محافظه‌کارانه است: هر ارسال به‌طور پیش‌فرض حداکثر سه کارگر را آغاز می‌کند، کارت‌های بایگانی‌شده یا ازپیش‌ادعاشده را نادیده می‌گیرد و در هر گذر فقط یک کارت برای هر مالک یا عامل آغاز می‌کند. کارت‌هایی که مالکشان از قبل کار فعال در حال اجرا یا بازبینی دارد، برای ارسال بعدی باقی می‌مانند. برای تغییر سقف هر گذر، --max-starts <count> را با یک عدد صحیح مثبت ارسال کنید؛ قاعده یک کارت برای هر مالک همچنان اعمال می‌شود، بنابراین تعداد مؤثر شروع‌ها ممکن است کمتر باشد.

اگر شروع کارگر پس از ادعای کارت ناموفق باشد، ورک‌بورد آن کارت را مسدود می‌کند، ادعا را پاک می‌کند و شکست را در فراداده اجرای کارت و گزارش کارگر ثبت می‌کند تا شروع‌های ناموفق به‌جای بازگرداندن بی‌سروصدای کارت به صف، قابل مشاهده بمانند.

اگر هیچ مقصد صریحی برای Gateway ارائه نشده باشد و Gateway محلی در دسترس نباشد یا هنوز متد ارسال ورک‌بورد را ارائه نکند، CLI به ارسال صرفاً داده‌ای روی وضعیت محلی ورک‌بورد بازمی‌گردد. ارسال صرفاً داده‌ای همچنان می‌تواند وابستگی‌ها را ارتقا دهد، ادعاهای قدیمی را پاک کند و اجراهای دچار پایان مهلت را مسدود کند، اما کارگری را آغاز نمی‌کند. خطاهای احراز هویت، مجوز و اعتبارسنجی، و همچنین خطاهای مقصد صریح --url یا --token، به‌جای فعال‌کردن مسیر جایگزین مستقیماً گزارش می‌شوند.

خروجی متنی شروع کارگرها را گزارش می‌کند:

text
ارسال کامل شد: شروع‌شده=2 شکست‌ها=0

خروجی مسیر جایگزین صریح است:

text
gateway در دسترس نیست؛ فقط ارسال داده‌ای: ارتقایافته=1 مسدودشده=0

خروجی JSON شامل نتیجه ارسال است. ارسال مبتنی بر Gateway می‌تواند شامل started و startFailures باشد؛ مسیر جایگزین صرفاً داده‌ای شامل gatewayUnavailable: true است. توکن‌های ادعا از خروجی JSON کارت حذف می‌شوند.

در داشبورد، همان نتیجه ارسال به‌شکل خلاصه‌ای کوتاه نمایش داده می‌شود تا اپراتور بدون بازکردن جزئیات کارت ببیند چند کارت آغاز، ارتقا، مسدود، بازپس‌گیری یا ناموفق شده‌اند.

هم‌ارزی فرمان اسلش

کانال‌های دارای قابلیت فرمان می‌توانند از فرمان اسلش متناظر استفاده کنند:

text
/workboard list/workboard show 7f4a2c10/workboard create رفع Heartbeat قدیمی کارگر/workboard move 7f4a2c10 --status review/workboard dispatch

ارسال با فرمان اسلش نیز از زمان‌اجرای عامل فرعیِ Gateway استفاده می‌کند، بنابراین همان رفتار ادعا، شروع کارگر و شکستِ مسیر Gateway در داشبورد و CLI را دنبال می‌کند.

/workboard list و /workboard show فرمان‌های خواندن برای فرستندگان مجاز فرمان هستند. /workboard create،‏ /workboard move و /workboard dispatch وضعیت برد را تغییر می‌دهند و در سطوح گفت‌وگو به وضعیت مالک، یا به یک کلاینت Gateway با operator.write یا operator.admin نیاز دارند.

مجوزها

مسیر ارسال CLI معمولاً محدوده‌های operator.write و operator.read را از Gateway درخواست می‌کند. کارت‌های متصل به فضای کاری مستقیماً در یک فضای کاری دقیقاً پیکربندی‌شده عامل اجرا می‌شوند؛ درخواست درخت کاری به همان پوشه محدود می‌شود، نه اینکه به میزبان اجازه دهد کد کنترل‌شده توسط مخزن را ایجاد کند. کارگر انتخاب‌شده باید به همان فضای کاری دسترسی نوشتنی و غیرمشترک به سندباکس Docker داشته باشد، هش کانتینر فعال آن با مانت‌ها و سیاست درخواستی مطابقت داشته باشد و هیچ قابلیت گریزی به میزبان نداشته باشد. برای درخواست صریح operator.admin، مجازکردن یک checkout دیگر روی میزبان و استفاده از راه‌اندازی عادی درخت کاری مدیریت‌شده، --admin را ارسال کنید؛ اگر این محدوده برای کلاینت تأیید نشده باشد، اتصال ناموفق می‌شود. توکن فقط‌خواندنی Gateway می‌تواند داده‌های ورک‌بورد را از طریق متدهای خواندن بررسی کند، اما نمی‌تواند کارت بسازد یا کارگرها را ارسال کند. محدودیت‌های فضای کاری در سایر موارد، جابه‌جایی دستی کارت را برای فراخوان‌هایی که مجوز تغییر ورک‌بورد دارند تغییر نمی‌دهند.

فرمان‌های محلی list،‏ create،‏ show و move روی پوشه وضعیت محلی OpenClaw که نمایه کنونی استفاده می‌کند عمل می‌کنند. هنگامی که به ریشه وضعیت دیگری نیاز دارید، از --dev یا --profile <name> در فرمان سطح‌بالای openclaw استفاده کنید.

عیب‌یابی

هیچ کارتی نمایش داده نمی‌شود

تأیید کنید Plugin برای همان نمایه و ریشه وضعیت فعال است:

bash
openclaw plugins inspect workboard --runtime --json

اگر داشبورد کارت‌ها را نمایش می‌دهد اما CLI نمایش نمی‌دهد، بررسی کنید هر دو فرمان از تنظیم یکسان --dev یا --profile استفاده کنند.

ارسال، صرفاً داده‌ای را گزارش می‌کند

Gateway را آغاز یا بازراه‌اندازی کنید:

bash
openclaw gateway restartopenclaw gateway status --deep

سپس openclaw workboard dispatch را دوباره امتحان کنید. مسیر جایگزین صرفاً داده‌ای برای پاک‌سازی وضعیت محلی مفید است، اما اجراهای کارگر به Gateway فعال نیاز دارند.

ارسال چیزی را آغاز نمی‌کند

وجود دست‌کم یک کارت ready بدون ادعای فعال را بررسی کنید:

bash
openclaw workboard list --status ready

همچنین هنگامی که همان مالک از قبل کار در حال اجرا یا بازبینی دارد، ممکن است کارت‌ها نادیده گرفته شوند. کار تکمیل‌شده را به done منتقل کنید، ادعاهای قدیمی را از طریق ابزارهای ورک‌بورد آزاد کنید یا پس از پایان کارگر فعال، ارسال را دوباره اجرا کنید.

مرتبط

Was this useful?
On this page

On this page