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 رکورد کامل کارت، شامل فراداده اجرا، تلاش‌ها، دیدگاه‌ها، پیوندها، اثبات، مصنوعات، گزارش‌های کارگر، وضعیت پروتکل، اطلاعات تشخیصی و فراداده اتوماسیون را برمی‌گرداند.

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‏ workboard.cards.dispatch را روی Gateway در حال اجرا فراخوانی می‌کند که از همان محیط اجرای عامل فرعیِ کنش واگذاری داشبورد استفاده می‌کند؛ بنابراین کارت‌های آماده به اجراهای کارگرِ پیگیری‌شده به‌عنوان وظیفه با کلیدهای نشست پیوندخورده تبدیل می‌شوند. --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، اجازه‌دادن به وارسی دیگری روی میزبان و استفاده از راه‌اندازی عادی درخت کاری مدیریت‌شده، --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