Agent coordination

Цель

Цель

Цель — это одна долговременная задача, связанная с текущим сеансом OpenClaw. Она предоставляет агенту и оператору общую точку назначения для длительной работы, не превращая её в фоновую задачу, напоминание, задание Cron или постоянное поручение.

Цели являются состоянием сеанса: они перемещаются вместе с ключом сеанса, сохраняются после перезапуска процесса и отображаются в /goal, инструментах целей для модели и нижней панели TUI.

Быстрый старт

text
/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.
  • Отладка: воспроизвести ошибку, определить ответственную область, внести исправление и подтвердить его.
  • Работа с документацией: прочитать соответствующую документацию, написать новую страницу, добавить перекрёстные ссылки и проверить сборку документации.
  • Задача обслуживания: проверить текущее состояние, внести ограниченные изменения, выполнить необходимые проверки и сообщить, что изменилось.

Цель — не очередь задач. Используйте поток задач, задачи, задания Cron или постоянные поручения, если работа должна выполняться отдельно, повторяться по расписанию, разбиваться на управляемые подзадачи или сохраняться как политика.

Справочник команд

/goal без аргументов выводит сводку текущей цели:

text
ЦельСтатус: активнаЗадача: обеспечить успешное прохождение 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, только если одно и то же препятствие возникает как минимум в трёх последовательных ходах работы над целью, а не при обычных затруднениях или отсутствии окончательной доработки.

Контекст цели при каждом ходе

Каждый пользовательский ход или сообщение чата с активной целью содержит следующую строку контекста с ролью пользователя:

text
Активная цель: <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 регистрирует использование сеанса и итоговые значения, полученные из журнала сообщений.

См. также

Was this useful?
On this page

On this page