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.
- Сеанс налагодження: відтворити помилку, визначити відповідальний компонент, внести виправлення та підтвердити його дієвість.
- Робота з документацією: прочитати відповідну документацію, написати нову сторінку, додати перехресні посилання та перевірити збирання документації.
- Завдання з обслуговування: перевірити поточний стан, внести обмежені зміни, виконати належні перевірки та повідомити, що змінилося.
Ціль — це не черга завдань. Використовуйте TaskFlow, завдання, завдання Cron або постійні вказівки, якщо робота має виконуватися відокремлено, повторюватися за розкладом, розгалужуватися на керовані підзавдання або зберігатися як політика.
Довідник команд
/goal без аргументів виводить зведення поточної цілі:
GoalStatus: activeObjective: get CI green for PR 87469 and push the fixTokens used: 12kToken budget: 12k/50k Commands: /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 лише після того, як та сама
блокувальна умова повторюється щонайменше протягом трьох послідовних кроків
роботи над ціллю, а не через звичайні труднощі чи відсутність остаточного
опрацювання.
Контекст цілі на кожному кроці
Кожен крок користувача або чату з активною ціллю містить такий рядок контексту з роллю користувача:
Active goal: <objective> — advance it or update its status (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 записує використання сеансу та підсумкові значення,
отримані з журналу діалогу.