Plugin guides

Плагин Workboard

Плагин Workboard добавляет необязательную доску в стиле Kanban в интерфейс управления: рабочие карточки подходящего для агентов размера, назначение агентам и ссылки из карточки на связанную задачу, запуск и сеанс панели управления.

Workboard намеренно сделан компактным: он отслеживает локальную операционную работу одного OpenClaw Gateway. Он не заменяет GitHub Issues, Linear, Jira и другие командные системы управления проектами.

Включение

Workboard входит в комплект поставки, но по умолчанию отключён:

  1. Откройте Плагины в интерфейсе управления или перейдите по пути /settings/plugins относительно настроенного базового пути интерфейса управления. Например, для базового пути /openclaw используется /openclaw/settings/plugins.
  2. Найдите Workboard и выберите Включить. Поскольку Workboard входит в состав OpenClaw, действие Установить не требуется.
  3. Если интерфейс сообщает, что требуется перезапуск, перезапустите Gateway.

Вкладка Workboard появляется в навигации панели управления после загрузки среды выполнения плагина. Пока плагин отключён, вкладка остаётся скрытой в навигации. При прямом открытии маршрута /workboard, когда плагин отключён или заблокирован параметрами plugins.allow/plugins.deny, вместо данных карточек отображается состояние недоступности плагина.

Эквивалентный рабочий процесс в CLI:

bash
openclaw plugins enable workboardopenclaw gateway restartopenclaw dashboard

Конфигурация

У Workboard нет конфигурации, специфичной для плагина. Включайте и отключайте его с помощью стандартной записи плагина:

json5
{  plugins: {    entries: {      workboard: {        enabled: true,        config: {},      },    },  },}
bash
openclaw plugins disable workboardopenclaw gateway restart

Поля карточки

Поле Значения
status triage, backlog, todo, scheduled, ready, running, review, blocked, done
priority low, normal, high, urgent
labels строки в свободной форме
agentId необязательный назначенный агент
связанные ссылки необязательные ссылки на задачу, запуск, сеанс или исходный URL
execution необязательные метаданные запуска Codex/Claude, начатого из карточки (движок, режим, модель, сеанс, идентификатор запуска, состояние)

Карточки также содержат компактные метаданные попыток, комментариев, ссылок, подтверждений, артефактов, настроек автоматизации, вложений, журналов исполнителей, состояния протокола исполнителей, заявок, диагностики, уведомлений, идентификатора шаблона, состояния архива и обнаружения устаревших сеансов, а также список недавних событий (created, edited, moved, linked, specified, decomposed, claimed, heartbeat, execution_updated, attempt_started, attempt_updated, comment_added, link_added, proof_added, artifact_added, attachment_added, diagnostic, notification, dispatch, orchestration, protocol_violation, archived, unarchived, stale). Эти метаданные позволяют оператору увидеть, как карточка перемещалась по доске, не открывая связанный сеанс; это локальный операционный контекст, а не замена расшифровкам сеансов или истории задач GitHub.

Карточки хранятся в собственном состоянии Gateway плагина и перемещаются вместе с остальным состоянием OpenClaw этого Gateway (см. Хранилище).

Запуск работы из карточки

Из несвязанных карточек можно запускать работу напрямую:

  • Запустить Codex / Запустить Claude запускает отслеживаемый как задача агентский запуск с явно заданным движком, отправляет запрос карточки и помечает карточку как running. Запуски Codex используют openai/gpt-5.6-sol; запуски Claude используют anthropic/claude-sonnet-4-6.
  • Открыть Codex / Открыть Claude создаёт связанный сеанс панели управления без отправки запроса карточки или перемещения карточки — для ручной работы, которая остаётся привязанной к доске.

Автономные запуски используют путь агентского запуска с отслеживанием задач в Gateway (агент и модель по умолчанию, если Codex/Claude не выбран явно); затем Workboard связывает полученную задачу, идентификатор запуска и ключ сеанса с карточкой. Для каждого связанного выполнения также записывается сводка попытки (движок, режим, модель, идентификатор запуска, временные метки, состояние, скользящее число сбоев), чтобы повторяющиеся сбои оставались видимыми.

Панель управления обновляет состояние задачи из реестра задач Gateway, сопоставляя задачи с карточками по идентификатору задачи, идентификатору запуска или ключу связанного сеанса. Задача в очереди или в процессе выполнения поддерживает активность жизненного цикла карточки; завершённая, неудачная, превысившая время ожидания или отменённая задача переводит карточку к состоянию review или blocked по тому же правилу синхронизации, что и связанные сеансы (см. Синхронизация жизненного цикла сеанса).

Инструменты агента

Инструмент Назначение
workboard_list Вывести компактные карточки с состоянием назначения/диагностики; необязательный фильтр по доске.
workboard_read Вернуть одну карточку и ограниченный контекст исполнителя (заметки, попытки, комментарии, ссылки, подтверждения, артефакты, результаты родительских карточек, недавнюю работу назначенного исполнителя, активную диагностику).
workboard_create Создать карточку с необязательными родительскими карточками, арендатором, Skills, доской, метаданными рабочего пространства, ключом идемпотентности, ограничением времени выполнения и бюджетом повторных попыток.
workboard_link Связать родительскую карточку с дочерней. Дочерние карточки остаются в состоянии todo, пока каждая родительская карточка не достигнет состояния done, после чего повышение при диспетчеризации переводит их в состояние ready.
workboard_claim Назначить карточку вызывающему агенту; переводит backlog/todo/ready в running.
workboard_heartbeat Обновить Heartbeat назначения во время длительного выполнения.
workboard_release Освободить назначение после завершения, приостановки или передачи; может перевести карточку в следующий статус.
workboard_complete / workboard_block Структурированные инструменты жизненного цикла для итоговых сводок, подтверждений, артефактов и манифестов созданных карточек (должны ссылаться на карточки, связанные с завершённой карточкой) либо причин блокировки.
workboard_attachment_add / workboard_attachment_read / workboard_attachment_delete Хранить небольшие вложения карточек в состоянии плагина SQLite, индексировать их в карточке и предоставлять в контексте исполнителя.
workboard_worker_log / workboard_protocol_violation Записывать строки журнала исполнителя и блокировать карточку, если автоматический исполнитель останавливается без вызова workboard_complete/workboard_block.
workboard_board_create / workboard_board_archive / workboard_board_delete Управлять сохраняемыми метаданными доски (отображаемым именем, описанием, состоянием архивации, рабочим пространством по умолчанию).
workboard_runs Вернуть сохраняемую историю попыток выполнения для карточки.
workboard_specify Преобразовать черновую карточку разбора/очереди задач в уточнённую карточку todo; записать сводку спецификации в карточке.
workboard_decompose Разделить родительскую карточку оркестрации на связанные дочерние карточки с наследованием метаданных доски/арендатора; может завершить родительскую карточку с манифестом созданных карточек.
workboard_notify_subscribe / workboard_notify_list / workboard_notify_events / workboard_notify_advance / workboard_notify_unsubscribe Управлять подписками на уведомления. Чтение событий допускает безопасное повторное воспроизведение; advance перемещает сохраняемый курсор, чтобы вызывающие стороны могли продолжить работу без потери или повторного чтения событий завершённых, неуспешных или устаревших карточек.
workboard_boards / workboard_stats Просматривать пространства имён доски и статистику очереди.
workboard_promote / workboard_reassign / workboard_reclaim Восстанавливать или передавать зависшую работу.
workboard_comment / workboard_proof Добавлять заметки о передаче или прикреплять ссылки на подтверждения/артефакты.
workboard_unblock Возвращать заблокированную работу в состояние todo.
workboard_dispatch Запускать повышение зависимостей или очистку устаревших назначений.

Назначенные карточки отклоняют изменения через инструменты агента от других агентов, если вызывающая сторона не владеет токеном назначения, возвращённым workboard_claim. В каждой карточке, возвращаемой инструментом агента или вызовом RPC Gateway, значение metadata.claim.token скрывается как [redacted] (сам токен возвращается однократно на верхнем уровне только из workboard_claim), поэтому операторы панели управления и другие агенты могут просматривать состояние назначения, никогда не получая пригодный для использования токен. Восстановление выполняется через workboard_promote/workboard_reassign/workboard_reclaim, для которых токен не требуется.

Диспетчеризация

Диспетчеризация выполняется локально в Gateway: она не запускает произвольные процессы ОС. Выполнение по-прежнему обеспечивают обычные сеансы субагентов OpenClaw. Один проход диспетчеризации:

  1. Повышает карточки с готовыми зависимостями.
  2. Записывает метаданные диспетчеризации в готовые карточки.
  3. Блокирует истёкшие назначения или выполнения с превышенным временем ожидания.
  4. Помечает настроенные на доске карточки разбора как кандидаты на оркестрацию.
  5. Назначает небольшую группу готовых карточек и запускает выполнения исполнителей через среду выполнения субагентов Gateway.

Исполнители получают ограниченный контекст карточки и токен назначения, необходимый для отправки Heartbeat, завершения или блокировки карточки через инструменты Workboard.

Выбор исполнителей

Каждый проход по умолчанию запускает не более 3 исполнителей. Готовые карточки упорядочиваются по приоритету, затем по позиции, затем по времени создания. За один проход запускается только одна карточка для каждого владельца/агента; владельцы, у которых на доске уже выполняется работа или работа находится на проверке, пропускаются. Архивные карточки, карточки с активным назначением и карточки не в статусе ready никогда не выбираются для запуска исполнителей (при этом на них по-прежнему может влиять часть диспетчеризации, работающая с данными: очистка устаревших назначений, повышение зависимостей, очистка по превышению времени ожидания).

Ключи сеансов определяются детерминированно для каждой доски/карточки, поэтому повторные диспетчеризации направляют работу обратно в тот же канал исполнителя, а не создают несвязанные сеансы:

  • Назначенные карточки: agent:<agentId>:subagent:workboard-<boardId>-<cardId>
  • Неназначенные карточки: subagent:workboard-<boardId>-<cardId> (Gateway определяет настроенного агента по умолчанию)

Если исполнителя невозможно запустить после назначения карточки, Workboard блокирует карточку, снимает назначение, записывает ошибку запуска выполнения и добавляет строку журнала исполнителя, доступную в панели управления, JSON CLI, инструментах агента и диагностике карточки.

Точки входа

  • Действие диспетчеризации в панели управления
  • openclaw workboard dispatch
  • /workboard dispatch в канале с поддержкой команд

Все три используют среду выполнения субагентов Gateway, когда Gateway доступен. В CLI предусмотрен один резервный вариант для оператора: если вызов Gateway завершается ошибкой подключения/недоступности (или ошибкой unknown method для старых версий Gateway), при этом не задана явная цель --url/--token и не применяется настроенный удалённый Gateway (OPENCLAW_GATEWAY_URL или gateway.mode: remote), CLI выполняет диспетчеризацию только данных для локального состояния SQLite — он может повышать зависимости, очищать устаревшие назначения и блокировать выполнения с превышенным временем ожидания, но не может запускать исполнителей. Ошибки аутентификации, разрешений и проверки от доступного Gateway не считаются недоступностью; они отображаются как ошибки команды, как и любая ошибка Gateway, если была задана явная цель --url/--token.

В метаданных доски можно задать autoDecompose, autoDecomposePerDispatch, defaultAssignee и orchestratorProfile. OpenClaw записывает это намерение и предоставляет его в контексте исполнителя; фактическое создание спецификации/декомпозиция по-прежнему выполняется через обычные инструменты Workboard.

CLI и команда с косой чертой

bash
openclaw workboard list [--board <id>] [--status <status>] [--include-archived] [--json]openclaw workboard create "Исправить жизненный цикл устаревшей карточки" --priority high --labels bug,workboardopenclaw workboard show <card-id> [--json]openclaw workboard dispatch [--board <id>] [--json]

Текстовый вывод list по умолчанию скрывает архивные карточки (--include-archived переопределяет это поведение); --json всегда включает архивные карточки в соответствии с контрактом полной карточки, используемым существующими скриптами. show принимает однозначный префикс идентификатора. list, create и show всегда читают/записывают локальное состояние плагина напрямую. Только dispatch вызывает работающий Gateway с описанным выше резервным вариантом.

Полное описание флагов, вывода JSON, резервного поведения Gateway, обработки префиксов идентификаторов, правил выбора при диспетчеризации и устранения неполадок см. в разделе CLI Workboard.

/workboard list, /workboard show <card-id>, /workboard create <title> и /workboard dispatch соответствуют CLI. Операции просмотра списка и сведений доступны любому авторизованному отправителю команд. Для создания и диспетчеризации в чатах требуется статус владельца, а для клиента Gateway — operator.write/operator.admin.

Синхронизация жизненного цикла сеанса

Карточки можно связать с существующим сеансом панели управления или с сеансом, созданным при запуске работы из карточки. В связанных карточках жизненный цикл сеанса отображается непосредственно в карточке: выполняется, устарел, связан и бездействует, завершён, завершился с ошибкой или отсутствует. Существующий сеанс также можно добавить со вкладки Sessions с помощью Add to Workboard; карточка будет связана с этим сеансом, получит заголовок из метки сеанса или последнего запроса пользователя, а в заметки будут добавлены последний запрос пользователя и, при наличии, последний ответ ассистента.

Если связанный сеанс пропадает, карточка сохраняет связь для контекста и по-прежнему предоставляет элементы управления запуском, позволяющие перезапустить работу в новом сеансе. Если активный связанный сеанс перестаёт сообщать о недавней активности, Workboard помечает карточку как stale и сохраняет это значение в метаданных, пока оно не будет сброшено жизненным циклом.

Пока карточка находится в активном рабочем состоянии, Workboard отслеживает связанный сеанс:

Состояние связанного сеанса Статус карточки
активен running
завершён review
ошибка, принудительная остановка, истечение времени ожидания или прерывание blocked

Состояния ручной проверки имеют приоритет. Перемещение карточки в review, blocked или done останавливает её автоматическую синхронизацию, пока вы не вернёте её в todo или running.

При запуске карточки используются обычные сеансы Gateway; Workboard хранит только метаданные и связи карточки. Расшифровка беседы, выбор модели и жизненный цикл выполнения остаются в ведении стандартной системы сеансов. Чтобы прервать активное выполнение, используйте Stop в активной связанной карточке — Workboard пометит её как blocked, чтобы она оставалась видимой для последующих действий.

Новые карточки можно создавать из шаблонов Workboard (bugfix, docs, release, pr_review, plugin). Шаблоны предварительно заполняют заголовок, заметки, метки и приоритет; идентификатор шаблона сохраняется в метаданных карточки.

Рабочий процесс в панели управления

  1. Откройте вкладку Workboard в Control UI.
  2. Создайте карточку, указав заголовок, заметки, приоритет, метки, необязательного агента и необязательный связанный сеанс, либо откройте Sessions и выберите Add to Workboard для существующего сеанса.
  3. Перетаскивайте карточку между столбцами либо сфокусируйтесь на её компактном элементе управления статусом и используйте меню или ArrowLeft/ArrowRight.
  4. Запустите работу из карточки, чтобы создать или повторно использовать сеанс панели управления.
  5. Открывайте связанный сеанс из карточки, пока агент работает.
  6. Позвольте синхронизации жизненного цикла переместить выполняемую работу в review/blocked, а затем вручную переместите карточку в done после принятия результата.

Диагностика

Диагностика вычисляется на основе локальных метаданных карточек. Встроенные проверки выявляют:

Тип Условие
stranded_ready Назначенная карточка todo/backlog/ready не обновлялась более 1 часа.
running_without_heartbeat Карточка running не получала Heartbeat заявки или обновление выполнения более 20 минут.
blocked_too_long Карточка blocked не обновлялась более 24 часов.
repeated_failures Число отслеживаемых сбоев карточки достигло 2 или более.
missing_proof У карточки done отсутствуют подтверждения, артефакты и вложения.
orphaned_session У карточки running есть sessionKey, но отсутствуют метаданные execution.

Разрешения

Методы RPC Gateway находятся в пространстве workboard.*:

Область Методы
operator.read cards.list, cards.export, cards.diagnostics, просмотр списка и получение вложений, чтение событий уведомлений, boards.list, cards.stats, cards.runs
operator.write cards.diagnostics.refresh, создание/обновление/перемещение/удаление/комментирование/связывание/связывание зависимости/подтверждение/артефакт, добавление/удаление вложений, журнал исполнителя, нарушение протокола, получение заявки/Heartbeat/освобождение/повышение/переназначение/повторное получение/завершение/блокировка/разблокировка, cards.dispatch, cards.bulk, архивирование, boards.upsert/archive/delete, cards.specify/decompose, подписка на уведомления/удаление/продвижение

Ни один метод RPC не требует operator.admin. Браузеры, подключённые с доступом оператора только для чтения, могут просматривать доску, но не могут изменять карточки.

Хранилище

Workboard хранит постоянные данные в принадлежащей плагину реляционной базе данных SQLite в каталоге состояния OpenClaw: доски, карточки, метки, события жизненного цикла, попытки выполнения, комментарии, связи зависимостей, подтверждения, ссылки на артефакты, метаданные и двоичные данные вложений, диагностика, уведомления, журналы исполнителей, состояние протокола и подписки хранятся в таблицах Workboard (а не в записях хранилища ключей и значений плагина). Экспорт карточки сохраняет историю доски, не встраивая содержимое двоичных данных вложений.

В установках, где Workboard использовался в выпуске .28, можно запустить openclaw doctor --fix, чтобы перенести поставлявшиеся устаревшие пространства состояний плагина (workboard.cards, workboard.boards, workboard.notify и, при наличии, workboard.attachments) в реляционную базу данных.

Устранение неполадок

На вкладке указано, что Workboard недоступен

bash
openclaw plugins inspect workboard --runtime --json

Если настроен plugins.allow, добавьте в него workboard. Если plugins.deny содержит workboard, удалите это значение перед включением плагина.

Карточки не сохраняются

Убедитесь, что подключение браузера имеет доступ operator.write. Сеансы оператора только для чтения могут просматривать список карточек, но не могут создавать, редактировать, перемещать или удалять их.

При запуске карточки не открывается ожидаемый сеанс

Проверьте идентификатор агента и связанный сеанс карточки, затем откройте Sessions или Chat, чтобы проверить фактическое состояние выполнения.

Диспетчеризация не запускает исполнителя

Убедитесь, что существует хотя бы одна карточка ready без активной заявки:

bash
openclaw workboard list --status ready

Если CLI сообщает о диспетчеризации только данных, запустите или перезапустите Gateway и повторите попытку — диспетчеризация только данных обновляет локальное состояние доски, но не может запускать процессы исполнителей субагентов. Карточки также могут пропускаться, если другая карточка того же владельца или агента уже выполняется либо ожидает проверки; завершите, заблокируйте или освободите эту активную работу, прежде чем диспетчеризировать дополнительные задачи для того же владельца.

Связанные материалы

Was this useful?
On this page

On this page