Agent coordination
Цель
Цель
Цель — это одна долговременная задача, связанная с текущим сеансом OpenClaw. Она предоставляет агенту и оператору общую точку назначения для длительной работы, не превращая её в фоновую задачу, напоминание, задание Cron или постоянное поручение.
Цели являются состоянием сеанса: они перемещаются вместе с ключом сеанса, сохраняются
после перезапуска процесса и отображаются в /goal, инструментах целей для модели и нижней
панели TUI.
Быстрый старт
/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 clearstart необязателен: /goal get CI green for PR 87469 также создаёт цель,
поскольку любой текст после /goal, не являющийся известным словом действия, рассматривается как
новая задача.
Для чего нужны цели
Используйте цель, когда у сеанса есть конкретный результат, который должен оставаться видимым на протяжении многих ходов:
- Завершение работы над PR: исправить, проверить, выполнить авторевью, отправить изменения и открыть или обновить PR.
- Отладка: воспроизвести ошибку, определить ответственную область, внести исправление и подтвердить его.
- Работа с документацией: прочитать соответствующую документацию, написать новую страницу, добавить перекрёстные ссылки и проверить сборку документации.
- Задача обслуживания: проверить текущее состояние, внести ограниченные изменения, выполнить необходимые проверки и сообщить, что изменилось.
Цель — не очередь задач. Используйте поток задач, задачи, задания Cron или постоянные поручения, если работа должна выполняться отдельно, повторяться по расписанию, разбиваться на управляемые подзадачи или сохраняться как политика.
Справочник команд
/goal без аргументов выводит сводку текущей цели:
ЦельСтатус: активнаЗадача: обеспечить успешное прохождение 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, только если одно и то же
препятствие возникает как минимум в трёх последовательных ходах работы над целью, а не при
обычных затруднениях или отсутствии окончательной доработки.
Контекст цели при каждом ходе
Каждый пользовательский ход или сообщение чата с активной целью содержит следующую строку контекста с ролью пользователя:
Активная цель: <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 регистрирует использование сеанса
и итоговые значения, полученные из журнала сообщений.