Skip to main content

Цель

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

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

start необязателен: /goal get CI green for PR 87469 также создаёт цель, поскольку любой текст после /goal, не являющийся известным словом действия, рассматривается как новая задача.

Для чего нужны цели

Используйте цель, когда у сеанса есть конкретный результат, который должен оставаться видимым на протяжении многих ходов:
  • Завершение работы над PR: исправить, проверить, выполнить авторевью, отправить изменения и открыть или обновить PR.
  • Отладка: воспроизвести ошибку, определить ответственную область, внести исправление и подтвердить его.
  • Работа с документацией: прочитать соответствующую документацию, написать новую страницу, добавить перекрёстные ссылки и проверить сборку документации.
  • Задача обслуживания: проверить текущее состояние, внести ограниченные изменения, выполнить необходимые проверки и сообщить, что изменилось.
Цель — не очередь задач. Используйте поток задач, задачи, задания Cron или постоянные поручения, если работа должна выполняться отдельно, повторяться по расписанию, разбиваться на управляемые подзадачи или сохраняться как политика.

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

/goal без аргументов выводит сводку текущей цели:
В одном сеансе одновременно может существовать только одна цель. Попытка создать вторую цель завершается ошибкой 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 предоставляет средам выполнения агентов три инструмента для работы с целями: Модель не может незаметно приостановить, возобновить, удалить или заменить цель. Эти действия остаются элементами управления оператора и сеанса через /goal и команды сброса, чтобы агент мог сообщить о достижении цели или реальном препятствии, не изменяя незаметно саму цель. update_goal должен отмечать цель как complete, только когда задача действительно выполнена. Он должен отмечать цель как blocked, только если одно и то же препятствие возникает как минимум в трёх последовательных ходах работы над целью, а не при обычных затруднениях или отсутствии окончательной доработки.

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

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

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

Если для расхода токенов отображается 0 или значение выглядит устаревшим, у активного сеанса может ещё не быть актуального снимка количества токенов. Данные об использовании обновляются, когда OpenClaw регистрирует использование сеанса и итоговые значения, полученные из журнала сообщений.

См. также