- BrainTools - https://www.braintools.ru -
Персистентные 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 [1]
Знакомо? Ты три часа работаешь с Claude Code над сложным рефакторингом. Создал план, разбил на подзадачи, выполнил половину. Закрыл терминал — и всё. На следующий день агент не помнит ни плана, ни что было сделано.
> Продолжи рефакторинг auth модуля
Claude: Какой рефакторинг? Можете дать контекст?
Старые Todos в Claude Code работали именно так. Задачи жили в памяти [2] сессии. Закрыл терминал — список исчез. Субагенты не видели задачи основного агента. Зависимостей не было.
Сообщество придумывало костыли: markdown-файлы с TODO, Beads (git-backed трекер), ручные промпты “вот твой контекст”.
В январе 2026 Anthropic наконец решили эту проблему. Tasks — это не косметический апгрейд. Это архитектурное изменение.
Сессия 1: Создал задачи → Работал → Закрыл терминал
Сессия 2: Задач нет. Агент не помнит.
Сессия 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 раскрываются по-настоящему.
Раньше:
Агент читает файл 1 → меняет → читает файл 2 → меняет → ...
Последовательно. Долго. Контекст забивается.
Теперь:
Главный агент: Создаёт план из 20 задач
Разбивает на "волны" по зависимостям
Спавнит 5 субагентов
Субагент 1: Берёт задачу #3 → выполняет → помечает completed
Субагент 2: Берёт задачу #4 → выполняет → помечает completed
...
Главный агент: Видит прогресс, координирует
Каждый субагент работает в своём контекстном окне. Не забивает контекст главного агента. Синхронизация — через общий 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 (ну, почти). Нет проблемы устаревших данных.
Проблема: Если не задать 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
Если новая система не нужна:
CLAUDE_CODE_ENABLE_TASKS=false claude
Вернётесь к старым Todos (но зачем?).
Покажу, как я использую Tasks для сложных задач.
> Мне нужно добавить систему нотификаций.
> Разбей на подзадачи с зависимостями.
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)
Задачи #4 и #5 не зависят друг от друга — их можно делать параллельно.
Терминал 1: Работает над WebSocket (#4)
Терминал 2: Работает над UI (#5)
Оба видят общий прогресс. Когда оба закончат — #6 разблокируется.
Закрыл терминалы, пошёл спать. На следующий день:
CLAUDE_CODE_TASK_LIST_ID=notifications claude
> Какие задачи остались?
Claude: Осталось 2 задачи:
5. [in_progress] Create notification UI components
6. [pending] Write integration tests (blocked by #5)
Контекст сохранился. Не нужно заново объяснять, что делаем.
20+ файлов, зависимости между изменениями, несколько дней работы. Tasks отслеживают прогресс и не дают забыть, что уже сделано.
Большая фича разбивается на подзадачи. Агент понимает порядок выполнения. Можно распараллелить независимые части.
Оркестратор раздаёт задачи, воркеры выполняют. Каждый в своём контексте, но синхронизированы через общий список.
Сегодня 2 часа, завтра 3 часа, послезавтра ещё час. Tasks помнят состояние между сессиями.
> Поправь опечатку в README
Не нужен task list. Просто сделай.
> Напиши скрипт для миграции данных
Одна сессия, одна задача. Tasks — оверкилл.
> Как работает useEffect в React?
Это не задача, это вопрос.
Tasks живут в ~/.claude/, не в проекте. Это значит:
Нельзя закоммитить в Git
Нельзя перенести на другую машину (просто так)
История задач не версионируется
Feature request на configurable path помечен как “not planned”. Жаль.
Закрытые задачи “уходят”. Нельзя сделать:
# Этого нет
claude tasks search "payment" --include-completed
Год назад решали похожую проблему? Не найдёшь через Tasks.
Если вам критичны:
Версионирование задач в Git
Поиск по истории решений
Переносимость между машинами
Посмотрите на Beads [3]. Это git-backed issue tracker для AI-агентов. Tasks и Beads можно комбинировать: Tasks для текущей работы, Beads для архива.
Задачи в памяти — пропадают при закрытии
Субагенты слепые — не видят общий план
Нет зависимостей — агент не понимает порядок
Одна сессия — один контекст
Персистентность — задачи на диске
Shared task list — субагенты синхронизированы
Dependency graph — агент понимает блокировки
Multi-session — параллельная работа
Есть список тикетов. Воркеры разбирают задачи. Прогресс виден всем. Зависимости учитываются.
Только без веб-интерфейса и митингов по статусу.
# 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-агентами развивается быстро, и лучшие практики ещё формируются.
Канал: https://t.me/maslennikovigor
[4] Прямой контакт: https://t.me/maslennikovig [5]
Репозиторий: https://github.com/maslennikov-ig/claude-code-orchestrator-kit [1]
Игорь Масленников
Пишу про AI-агентов, LLM-архитектуру и автоматизацию разработки.
А как вы решаете проблему “амнезии агента”? Используете Tasks, Beads, markdown-файлы или что-то своё?
Автор: Maslennikovig
Источник [6]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/24761
URLs in this post:
[1] github.com/maslennikov-ig/claude-code-orchestrator-kit: https://github.com/maslennikov-ig/claude-code-orchestrator-kit
[2] памяти: http://www.braintools.ru/article/4140
[3] Beads: https://steve-yegge.medium.com/introducing-beads-a-coding-agent-memory-system-637d7d92514a
[4] https://t.me/maslennikovigor
: https://t.me/maslennikovigor%EF%BF%BC
[5] https://t.me/maslennikovig: https://t.me/maslennikovig
[6] Источник: https://habr.com/ru/articles/989106/?utm_source=habrahabr&utm_medium=rss&utm_campaign=989106
Нажмите здесь для печати.