Как устроено

Журнал и статусы

Как журнал хранит задачи агентов и что значат статусы от черновика до принятой задачи.

Журнал Actari записывает каждую задачу агента событиями, и по этим событиям видно, на каком этапе работа. Он живёт на вашей машине, в MCP-сервере actari-mcp, и по мере работы отправляется в облако. Главная мысль журнала одна: «исполнитель считает, что готово» и «проверено и принято» — разные факты, и журнал никогда не выдаёт первое за второе.

Что лежит в журнале

  • Проекты. Задачи и артефакты принимаются только для зарегистрированного проекта: имя проекта становится частью номера каждой задачи, а путь привязывает его к папке репозитория. Пока проект не зарегистрирован, журнал отказывает на любой запрос.
  • Задачи. У задачи есть задание для исполнителя, отчёт, статус и история событий. Номер имеет вид проект/дата-slug, например shop/2026-11-03-csv-export.
  • Артефакты. Спецификации, планы, ADR, решения и заметки. Запись с тем же названием создаёт новую версию, старая остаётся в истории.
  • Инциденты. Грабли и уроки: что случилось и как обойти в следующий раз.
  • Выпуски. Что уехало на прод. Они не привязаны к одной задаче, подробности — на странице Выпуски.

Все записи только добавляются: журнал ничего не переписывает, а облако получает копию и не меняет журнал на вашей машине. Данные лежат в ~/.actari/journal.db, путь можно заменить переменной ACTARI_DB.

Статусы

В коде и в инструментах статусы названы по-английски, в облаке у них русские подписи.

СтатусПодпись в облакеЧто это значит
DRAFTчерновик заданияЗадание записано, исполнитель ещё не назначен.
DELEGATEDв работе у исполнителяРабота передана исполнителю: субагенту, внешней программе или самому агенту.
REPORTEDотчёт сдан — не провереноИсполнитель считает, что готово. Это заявка, а не факт.
ACCEPTEDпроверено и принятоКто-то другой проверил и подтвердил.
REWORKвозвращена на доработкуПроверка нашла проблему, задача вернулась исполнителю.
FAILEDзакрыта неудачейЗадачу не удалось выполнить в таком виде.
DROPPEDотмененаЧерновик, от которого отказались, с указанной причиной.

Переходы между статусами проверяет сервер, поэтому нельзя принять задачу, у которой нет отчёта, и нельзя сдать отчёт по черновику:

DRAFT → DELEGATED → REPORTED → ACCEPTED
                 ↘            ↘ REWORK → DELEGATED …
                  FAILED       FAILED
DRAFT → DROPPED

Статус меняется только вызовами инструментов, напрямую его не поправить. Закрытая задача не открывается заново: продолжение пишется как новая задача, связанная с прежней вызовом link_tasks с видом связи continues. Работа, найденная по дороге, тоже становится новой задачей со связью discovered_from.

Пример жизни задачи

Агент ставит задачу, передаёт её исполнителю и сдаёт отчёт:

draft_task { project: "shop", slug: "csv-export", title: "Выгрузка отчёта в CSV",
             task_text: "Что должно стать правдой и чем это доказывается…" }
delegate { task_id: "shop/2026-11-03-csv-export", executor: "subagent" }
submit_report { task_id: "shop/2026-11-03-csv-export",
                report: "Команды, их вывод, список изменённых файлов" }

Теперь задача в статусе REPORTED. Чтобы она стала принятой, нужна проверка, и её описывает страница Приёмка.

Чтобы посмотреть состояние, агент вызывает list_tasks с фильтром по статусу или проекту, а get_task показывает одну задачу с хронологией событий. Полный текст задания и отчёта отдаётся с параметром full: true.

Поиск по истории

Перед новой задачей агент ищет похожие: search_precedents { query: "выгрузка отчёта", project: "shop" } находит задачи, артефакты и инциденты по всем проектам журнала. Слова сравниваются по основам, на русском и английском, поэтому «расписание» найдёт и «расписании». Проект текущей папки в выдаче выше остальных. В облаке тот же смысл имеет поиск по базе знаний.

Правила задаёт политика

Журнал сам ничего не оценивает: что должно быть в задании, что считать отчётом и когда можно принять, определяет политика проекта. Без политики журнал только записывает.

Что дальше

На этой странице

Для агентов: текстовая версия · llms.txt