Персистентные Tasks, субагенты на общем списке, зависимости между задачами — разбираем обновление и подводные камни
Та самая одна настройка
Вот она:
CLAUDE_CODE_TASK_LIST_ID=my-project claude
Всё. Теперь задачи сохраняются между сессиями. Закрыл терминал, открыл снова с тем же ID — задачи на месте.
Что ещё появилось в новых Tasks:
Субагенты видят общий список: 5 воркеров на одном task list
Зависимости: "Задача 3 ждёт задачу 2" — агент понимает
Multi-session: Два терминала работают с одним списком
Для кого: Сложные рефакторинги, декомпозиция фич, параллельная работа субагентов.
Репозиторий: github.com/maslennikov-ig/claude-code-orchestrator-kit
Проблема: "Амнезия агента"
Знакомо? Ты три часа работаешь с Claude Code над сложным рефакторингом. Создал план, разбил на подзадачи, выполнил половину. Закрыл терминал — и всё. На следующий день агент не помнит ни плана, ни что было сделано.
> Продолжи рефакторинг auth модуля
Claude: Какой рефакторинг? Можете дать контекст?
Старые Todos в Claude Code работали именно так. Задачи жили в памяти сессии. Закрыл терминал — список исчез. Субагенты не видели задачи основного агента. Зависимостей не было.
Сообщество придумывало костыли: markdown-файлы с TODO, Beads (git-backed трекер), ручные промпты "вот твой контекст".
В январе 2026 Anthropic наконец решили эту проблему. Tasks — это не косметический апгрейд. Это архитектурное изменение.
Что изменилось: Файловая система вместо RAM
Было: Todos в памяти
Сессия 1: Создал задачи → Работал → Закрыл терминал
Сессия 2: Задач нет. Агент не помнит.
Стало: Tasks на диске
Сессия 1: Создал задачи → Работал → Закрыл терминал
Сессия 2: Задачи на месте. Агент знает, что сделано.
Задачи теперь сохраняются в ~/.claude/ и привязываются к TASK_LIST_ID. Это даёт персистентность между сессиями.
Таблица отличий
Аспект | Старые Todos | Новые Tasks |
|---|---|---|
Хранение | В памяти | На диске |
Закрыл терминал | Всё пропало | Задачи сохранились |
Субагенты | Не видят задачи | Видят через shared ID |
Зависимости | Нет |
|
Multi-session | Невозможно | Работает |
Новые инструменты агента
Claude Code получил 4 новых тула для работы с задачами:
TaskCreate — создать задачу с описанием
TaskList — показать все задачи
TaskGet — получить детали конкретной задачи
TaskUpdate — обновить статус, добавить зависимости
Пример создания задачи
> Создай задачу для рефакторинга auth модуля
Claude использует TaskCreate:
subject: "Refactor auth module"
description: "Разделить auth.ts на auth-service.ts, auth-middleware.ts, auth-types.ts"
activeForm: "Refactoring auth module"
Пример зависимостей
> Покажи задачи
TaskList:
1. [completed] Setup project structure
2. [in_progress] Create database schema
3. [pending] Implement API endpoints (blocked by #2)
4. [pending] Add authentication (blocked by #3)
5. [pending] Write tests (blocked by #3, #4)
Агент сам понимает: задачу 3 нельзя начинать, пока не закончена задача 2. Это граф зависимостей, как в реальном проектном менеджменте.
Киллер-фича: Субагенты и параллелизм
Вот где Tasks раскрываются по-настоящему.
Сценарий: Рефакторинг на 20 файлов
Раньше:
Агент читает файл 1 → меняет → читает файл 2 → меняет → ...
Последовательно. Долго. Контекст забивается.
Теперь:
Главный агент: Создаёт план из 20 задач
Разбивает на "волны" по зависимостям
Спавнит 5 субагентов
Субагент 1: Берёт задачу #3 → выполняет → помечает completed
Субагент 2: Берёт задачу #4 → выполняет → помечает completed
...
Главный агент: Видит прогресс, координирует
Каждый субагент работает в своём контекстном окне. Не забивает контекст главного агента. Синхронизация — через общий task list.
Как настроить shared task list
# Терминал 1 (основной агент)
CLAUDE_CODE_TASK_LIST_ID=my-project claude
# Терминал 2 (субагент или воркер)
CLAUDE_CODE_TASK_LIST_ID=my-project claude
Оба терминала видят один и тот же список задач. Изменения синхронизируются мгновенно через файловую систему.
Продвинутый кейс: Оркестратор и Наблюдатель
Это сценарий из видео от команды Claude Code, и он реально крутой.
Идея
Запускаем два терминала:
Терминал A (Worker): Выполняет задачи, пишет код
Терминал B (Checker): Наблюдает, тестирует, добавляет баги
Настройка
# Терминал A
CLAUDE_CODE_TASK_LIST_ID=feature-123 claude
> Возьми следующую задачу из списка и выполни её
# Терминал B
CLAUDE_CODE_TASK_LIST_ID=feature-123 claude
> Каждые 30 секунд проверяй completed задачи.
> Запускай тесты на изменённые файлы.
> Если тесты падают — создай новую задачу с описанием бага.
Что происходит
Терминал A: Выполнил задачу "Add login endpoint" → пометил completed
Терминал B: Увидел → запустил тесты → тесты упали
Терми��ал B: Создал задачу "Fix: login returns 500 on empty password"
Терминал A: Увидел новую задачу → взял в работу → исправил
Это как CI/CD, но внутри Claude Code. Worker не отвлекается на тесты — у него есть наблюдатель.
Почему это работает
Синхронизация через файловую систему мгновенная. Нет race conditions (ну, почти). Нет проблемы устаревших данных.
Практика: Как настроить
Фиксация task_list_id
Проблема: Если не задать ID явно, он привязывается к сессии и удаляется при /clear.
Решение: Задать ID в переменной окружения или конфиге.
# В .bashrc или .zshrc
export CLAUDE_CODE_TASK_LIST_ID="my-default-project"
# Или при запуске
CLAUDE_CODE_TASK_LIST_ID=feature-xyz claude
Структура хранения
~/.claude/
├── projects/
│ └── my-project/
│ └── sessions/
├── plans/
└── tasks/ # Здесь живут task lists
└── my-project.json
От��лючение Tasks
Если новая система не нужна:
CLAUDE_CODE_ENABLE_TASKS=false claude
Вернётесь к старым Todos (но зачем?).
Реальный workflow: Декомпозиция фичи
Покажу, как я использую Tasks для сложных задач.
Шаг 1: Создание плана
> Мне нужно добавить систему нотификаций.
> Разбей на подзадачи с зависимостями.
Claude создаёт:
1. [pending] Design notification schema
2. [pending] Create database migration (blocked by #1)
3. [pending] Implement notification service (blocked by #2)
4. [pending] Add WebSocket support (blocked by #3)
5. [pending] Create notification UI components (blocked by #3)
6. [pending] Write integration tests (blocked by #4, #5)
Шаг 2: Параллельная работа
Задачи #4 и #5 не зависят друг от друга — их можно делать параллельно.
Терминал 1: Работает над WebSocket (#4)
Терминал 2: Работает над UI (#5)
Оба видят общий прогресс. Когда оба закончат — #6 разблокируется.
Шаг 3: Продолжение через день
Закрыл терминалы, пошёл спать. На следующий день:
CLAUDE_CODE_TASK_LIST_ID=notifications claude
> Какие задачи остались?
Claude: Осталось 2 задачи:
5. [in_progress] Create notification UI components
6. [pending] Write integration tests (blocked by #5)
Контекст сохранился. Не нужно заново объяснять, что делаем.
Когда Tasks — это то, что нужно
Сложные рефакторинги
20+ файлов, зависимости между изменениями, несколько дней работы. Tasks отслеживают прогресс и не дают забыть, что уже сделано.
Декомпозиция фич
Большая фича разбивается на подзадачи. Агент понимает порядок выполнения. Можно распараллелить независимые части.
Работа с субагентами
Оркестратор раздаёт задачи, воркеры выполняют. Каждый в своём контексте, но синхронизированы через общий список.
Прерывистая работа
Сегодня 2 часа, завтра 3 часа, послезавтра ещё час. Tasks помнят состояние между сессиями.
Когда Tasks не нужны
Быстрые правки
> Поправь опечатку в README
Не нужен task list. Просто сделай.
Одноразовые скрипты
> Напиши скрипт для миграции данных
Одна сессия, одна задача. Tasks — оверкилл.
Простые вопросы
> Как работает useEffect в React?
Это не задача, это вопрос.
Ограничения и честный взгляд
Хранение — глобальное
Tasks живут в ~/.claude/, не в проекте. Это значит:
Нельзя закоммитить в Git
Нельзя перенести на другую машину (просто так)
История задач не версионируется
Feature request на configurable path помечен как "not planned". Жаль.
Нет поиска по истории
Закрытые задачи "уходят". Нельзя сделать:
# Этого нет
claude tasks search "payment" --include-completed
Год назад решали похожую проблему? Не найдёшь через Tasks.
Для git-backed истории — Beads
Если вам критичны:
Версионирование задач в Git
Поиск по истории решений
Переносимость между машинами
Посмотрите на Beads. Это git-backed issue tracker для AI-агентов. Tasks и Beads можно комбинировать: Tasks для текущей работы, Beads для архива.
Итого: Что изменилось
Раньше (Todos)
Задачи в памяти — пропадают при закрытии
Субагенты слепые — не видят общий план
Нет зависимостей — агент не понимает порядок
Одна сессия — один контекст
Теперь (Tasks)
Персистентность — задачи на диске
Shared task list — субагенты синхронизированы
Dependency graph — агент понимает блокировки
Multi-session — параллельная работа
Это похоже на Jira внутри терминала
Есть список тикетов. Воркеры разбирают задачи. Прогресс виден всем. Зависимости учитываются.
Только без веб-интерфейса и митингов по статусу.
Что попробовать прямо сейчас
# 1. Обновить Claude Code до последней версии
# (Tasks появились в v2.1.16+)
# 2. Запустить с явным task list ID
CLAUDE_CODE_TASK_LIST_ID=test-project claude
# 3. Попросить создать задачи
> Создай план для простого TODO-приложения на React.
> Разбей на задачи с зависимостями.
# 4. Посмотреть результат
> Покажи все задачи
# 5. Закрыть терминал и открыть снова
CLAUDE_CODE_TASK_LIST_ID=test-project claude
> Какие задачи есть?
# Спойлер: задачи на месте
Дисклеймер
Понимаю, что может быть критика:
"Tasks — это база, зачем статья?"
Для тех, кто пропустил обновление. Или использовал Claude Code раньше и забросил из-за "амнезии".
"Beads лучше, потому что git-backed!"
Согласен, для истории и переносимости — да. Но Tasks проще в setup и нативно интегрированы. Для многих задач этого достаточно.
"Это маркетинг Anthropic?"
Нет. Я честно показал ограничения: нет git-backed хранения, нет поиска по истории, feature requests на улучшения отклонены.
Если знаете лучший workflow — пишите в комментариях. Тема development с AI-агентами развивается быстро, и лучшие практики ещё формируются.
Контакты и обратная связь
Telegram
Канал: https://t.me/maslennikovigor
Прямой контакт: https://t.me/maslennikovig
GitHub (orchestrator kit — агенты, скиллы, команды)
Репозиторий: https://github.com/maslennikov-ig/claude-code-orchestrator-kit
Игорь Масленников
Пишу про AI-агентов, LLM-архитектуру и автоматизацию разработки.
А как вы решаете проблему "амнезии агента"? Используете Tasks, Beads, markdown-файлы или что-то своё?
