Это руководство проходит воспроизводимую ежедневную рутину с AWR: проверьте состояние проекта, захватите или возобновите задачу, записывайте прогресс, создавайте контрольные точки и передавайте работу так, чтобы вы — или агент — могли продолжить ровно с того места, где всё остановилось.
Прежде чем начать, убедитесь, что ваш проект инициализирован и вы знаете основные концепции (элементы работы, сессии, захваты, контрольные точки) — см. Быстрый старт и Концепции. Та же рутина работает через MCP; см. MCP.
Замечание о версиях: некоторые возможности ниже (представление action и work edit) отражают текущее дерево исходников и могут быть не включены в выпущенный пакет. Выполните awr --help, чтобы увидеть, что поддерживает ваша установка.
1. Начните день: найдите следующее действие
Перед чем-либо ещё выполните проверку статуса:
awr status
awr status и инструмент MCP awr_project_status по умолчанию используют представление action (view="action"). Оно разделяет вашу открытую работу на четыре очереди, с не более чем пятью записями на очередь плюс точные счётчики всего и опущенных:
| Очередь | Значение | Что вы делаете |
|---|---|---|
current | Активная или захваченная работа без известного ожидания или блокировки | Продолжите с владеющей сессией или явно возобновите её |
ready | Структура и готовность к захвату проходят обе проверки | Подготовьте контекст и получите владение |
waiting | Ожидание пользователя, неразрешённая запись выполнения или незавершённая зависимость | Получите ответ или проинспектируйте предварительное условие перед повтором |
blocked | Недопустимая структура, недоступные зависимости, проблемы источника или явные блокировки | Проинспектируйте указанную работу и устраните причину |
Сузьте выбор повторяемыми селекторами — они пересекаются:
awr status --work GUIDE-1 --goal GOAL-1 --milestone M1
Очередь — это навигация, а не авторизация: захваты и проверки завершения по- прежнему обеспечиваются собственными действиями. awr ready сохраняет своё более узкое значение — пригодность для нового захвата — и опускает работу в процессе.
2. Захватите или возобновите задачу
Настройте один раз на оболочку, чтобы каждая команда была привязана к проекту и выводила JSON:
AWR_BIN=/absolute/path/to/awr
AWR_PROJECT=/absolute/path/to/initialized/project
AWR_WORK=EXAMPLE-001
AWR_AGENT=agent-primary
AWR_MODEL=your-current-model
AWR_NOTES=$(mktemp -d "${TMPDIR:-/tmp}/awr-session.XXXXXX")
awrj() { "$AWR_BIN" --project "$AWR_PROJECT" --json "$@"; }
Новая работа, захваченная под новой сессией:
AWR_REV=$(awrj status | jq -er '.project_revision')
awrj session start --work "$AWR_WORK" --agent "$AWR_AGENT" \
--provider generic --model "$AWR_MODEL" --claim --ttl-ms 3600000 \
--expected-revision "$AWR_REV" > "$AWR_NOTES/start.json"
AWR_SESSION=$(jq -er '.session.id' "$AWR_NOTES/start.json")
Захват — это владение во время выполнения; он не переписывает статус работы в источнике. Если сессия для работы уже существует, проинспектируйте её через session show и подтвердите владение — другой агент или модель продолжает через session resume в свою собственную сессию.
3. Скомпилируйте ваш контекст
Перед редактированием соберите контекстный пакет для сессии:
awrj context bootstrap --session "$AWR_SESSION" --budget 1000 \
> "$AWR_NOTES/bootstrap.json"
jq -e '.context.complete' "$AWR_NOTES/bootstrap.json"
awrj context compile --work "$AWR_WORK" --session "$AWR_SESSION" \
--budget 5000 > "$AWR_NOTES/context.json"
jq -e '.completeness.complete and (.work_context != null)' "$AWR_NOTES/context.json"
Читайте пакет, а не только булево значение. При BudgetExceeded расширьте бюджет или сузьте область; при SourceStale сначала выполните awr source reindex.
4. Работайте, затем создайте контрольную точку
Записывайте то, что действительно произошло — неудачи, недостающий контекст и открытые петли:
AWR_CONTEXT_HASH=$(jq -er '.work_context.context_hash' "$AWR_NOTES/context.json")
AWR_REV=$(awrj status | jq -er '.project_revision')
awrj session checkpoint --session "$AWR_SESSION" --agent "$AWR_AGENT" \
--context-hash "$AWR_CONTEXT_HASH" \
--digest "Record the work actually done; do not invent a passing review." \
--next-action "State the exact next operator or agent action." \
--open-loop "List every unresolved loop." \
--expected-project-revision "$AWR_REV" > "$AWR_NOTES/checkpoint.json"
Несколько вещей, которые нужно понимать о контрольных точках:
--agent— это заявление вызывающего. Не совпадающее с сессией отклоняется с рекомендацией по возобновлению; совпадающее остаётся непроверенным — CLI не может аутентифицировать реальную модель за меткой. Если его опустить, происхождение записывается какundeclared.- Выжимка и хеш контекста — ваши утверждения. Используйте реальный последний использованный хеш; сохранённая контрольная точка не доказывает проверенный контекст, проходящие тесты или завершённую работу.
- Для защиты по ревизии используйте
project_revisionверхнего уровня изsession show, а неsession.revision. При конфликте проинспектируйте промежуточные изменения перед повтором. - Контрольная точка никогда не переписывает следующее действие, подкреплённое источником. Чтобы изменить контракт, отредактируйте авторитетный источник.
5. Исправляйте мелкие поля без ручного редактирования YAML
Когда исходный план требует небольшой правки — скажем, источник говорит «Draft the guide», а реальный следующий шаг — «Review the conclusion» — просмотрите правку предварительно:
awr --json work edit GUIDE-1 --request-key guide-next-1 --actor writer \
--reason 'Clarify the review step' --next-action 'Review the conclusion'
Ответ показывает место в источнике, старое и новое значения и отпечатки, с которыми принимать. Проверьте их, затем повторите команду, добавив:
--accept --source-fingerprint SOURCE_FINGERPRINT \
--expected-preview PREVIEW_FINGERPRINT --expected-revision REVISION
Поддерживаемые поля: --title, --summary, --priority и --next-action. После неопределённого ответа проверьте host status --key guide-next-1; правка поля никогда не меняет владение, жизненный цикл или верификацию.
6. Завершите сессию — или передайте её
Когда вы заканчиваете на день:
AWR_REV=$(awrj status | jq -er '.project_revision')
awrj session end --session "$AWR_SESSION" --outcome incomplete \
--expected-revision "$AWR_REV"
Завершение освобождает захват; оно не завершает работу в источнике. Ваша контрольная точка из шага 4 — то, что позволяет работе возобновиться чисто.
7. Продолжите с того места, где остановились вы (или агент)
Позже — или от другого агента — возобновите из сессии-предшественника:
AWR_PREDECESSOR=the-recorded-awr-session-id
awrj session show "$AWR_PREDECESSOR"
AWR_REV=$(awrj status | jq -er '.project_revision')
awrj session resume --from-session "$AWR_PREDECESSOR" \
--agent "$AWR_AGENT" --provider generic --model "$AWR_MODEL" \
--budget 5000 --expected-revision "$AWR_REV" > "$AWR_NOTES/resume.json"
jq -e '.context_ready' "$AWR_NOTES/resume.json"
AWR_SESSION=$(jq -er '.resumed.session.id' "$AWR_NOTES/resume.json")
Возобновление создаёт новую сессию AWR; оно не переключает нативный чат вашего хоста. Затем скомпилируйте контекст снова (шаг 3) и продолжайте. После компактификации хоста, если та же сессия AWR всё ещё активна, просто скомпилируйте снова — приберегите session resume для реальной передачи.
Чтобы сравнить план с последним записанным, проверьте объект progress, предоставляемый status --view action и work show KEY:
source_next_action— авторитетный текст из исходного плана, с его указателем места, ревизией источника и свежестью.latest_checkpoint_next_action— самая последняя контрольная точка для этой точной работы, ветки и владения, или null, если её нет.differs_from_source— истинно, когда текст контрольной точки расходится с источником. Наблюдение, а не проблема: сохранение прогресса никогда не изменяет исходный контракт и не устанавливает завершение.
Текст прогресса ограничен 240 символами (помечается truncated); используйте work show KEY и session show SESSION для полного текста.
Когда что-то идёт не так
- Неопределённый ответ на сохранение → проверьте
host status --key REQUEST_KEY; используйтеhost recoverтолько для проинспектированной ожидающей операции. - Конфликт ревизий → прочитайте
statusдля текущейproject_revisionи повторите с ней. - Подозрительная контрольная точка → прочитайте полную запись через
session show SESSION; прерванное сохранение без квитанции о завершении — не контрольная точка восстановления.
О других режимах отказа см. Устранение неполадок. О словаре этой рутины см. Концепции.