Skip to main content

new-task-tool

---
title: "Инструмент New Task"
description: "Использование инструмента `new_task` в сочетании с `.agents/context` для управления контекстом и рабочими процессами."
---

### Инструмент `new_task` и стратегии управления контекстом

#### Обзор

Careti включает в себя мощный внутренний инструмент `new_task`, предназначенный для помощи в управлении непрерывностью рабочего процесса и сохранении контекста, особенно во время сложных или долго выполняющихся задач. Этот инструмент в сочетании с осведомленностью Careti об использовании собственного контекстного окна и гибкостью `.agents/context` позволяет разрабатывать сложные стратегии для разбиения работы и обеспечения плавных переходов между сеансами задач.

Понимание основных возможностей и того, как они взаимодействуют с пользовательскими правилами, является ключом к эффективному использованию этой функции.

#### Основные возможности

Две фундаментальные возможности обеспечивают расширенное управление контекстом:

1. **Инструмент `new_task`:**
- **Функция:** Позволяет Careti, после одобрения пользователем, завершить текущий сеанс задачи и немедленно начать новый.
- **Предварительная загрузка контекста (Context Preloading):** Крайне важно, что Careti может **предварительно загрузить** этот новый сеанс задачи с определенным контекстом, предоставленным в блоке `<context>` инструмента. Этот контекст может быть чем угодно, что определено Careti или файлом `.agents/context` - сводки, фрагменты кода, следующие шаги, состояние проекта и т. д.
2. **Осведомленность о контекстном окне (Context Window Awareness):**
- **Отслеживание (Tracking):** Careti внутренне отслеживает процент доступного контекстного окна, используемого в данный момент во время задачи.
- **Видимость (Visibility):** Эта информация отображается в `environment_details`, предоставленных Careti в его запросе.

#### Использование слеш-команды `/newtask`

В качестве быстрой альтернативы предложению Careti использовать инструмент `newtask` или определению сложных правил, вы можете напрямую инициировать процесс с помощью слеш-команды (Slash Command).

- **Как (How):** Просто введите `/newtask` в поле ввода чата.
- **Действие (Action):** Careti предложит создать новую задачу, обычно предлагая контекст на основе текущего сеанса (аналогично своему поведению по умолчанию при использовании инструмента). Вы все равно получите запрос `ask_followup_question` для подтверждения и потенциального изменения контекста перед созданием новой задачи.
- **Преимущество (Benefit):** Обеспечивает быстрый, инициированный пользователем способ использования функциональности `new_task` для разветвленных исследований или управления длительными сеансами без ожидания, пока Careti предложит это.

<Note>
Для получения более подробной информации об использовании слеш-команды `/newtask` см. документацию [New Task Command](/russian/features/slash-commands/new-task).
</Note>

#### Поведение по умолчанию (без `.agents/context`)

По умолчанию, без конкретного `.agents/context`, определяющего его поведение:

- **Доступность инструмента (Tool Availability):** Инструмент `new_task` существует, и Careti _может_ выбрать его использование.
- **Осведомленность о контексте (Context Awareness):** Careti _знает_ процент использования своего контекста.
- **Отсутствие автоматического триггера (No Automatic Trigger):** Careti **не будет** автоматически инициировать передачу задачи _только_ на основании достижения определенного процента использования контекста (например, 50%). Решение о предложении использования `new_task` исходит из рассуждений модели AI на основе общего прогресса задачи и инструкций запроса.
- **Базовая предварительная загрузка контекста (Basic Context Preloading):** Если `new_task` используется без определенных правил, определяющих структуру блока `<context>`, Careti попытается предварительно загрузить соответствующую информацию на основе своего текущего понимания (например, базовое резюме прогресса и следующие шаги), но это может быть менее полным, чем подход, основанный на правилах.

#### Сила `.agents/context`: Включение пользовательских рабочих процессов

Хотя основные возможности существуют по умолчанию, истинная мощь, автоматизация и настройка появляются, когда вы объединяете `new_task` и осведомленность о контексте с пользовательскими рабочими процессами, определенными в `.agents/context`. Это позволяет вам точно контролировать, _когда_ и _как_ Careti управляет контекстом и непрерывностью задач.

Ключевые преимущества использования `.agents/context` с `new_task`:

- **Автоматизированное управление контекстом (Automated Context Management):** Определите правила для автоматического запуска передачи задач при определенных процентах контекста (например, > 50%, > 70%) или количестве токенов, обеспечивая оптимальную производительность и предотвращая потерю контекста.
- **Оптимизация для конкретной модели (Model-Specific Optimization):** Настройте триггеры передачи задач на основе известных порогов для разных LLM (например, запускайте раньше для моделей, которые, как известно, ухудшаются после определенного количества токенов).
- **Интеллектуальные точки останова (Intelligent Breakpoints):** Поручите Careti с помощью правил находить логические точки останова (например, после завершения функции или теста) _после_ прохождения порога контекста, обеспечивая более чистую передачу задач.
- **Структурированное декомпозиция задач (Structured Task Decomposition):** Используйте Plan Mode для определения подзадач, затем используйте `.agents/context`, чтобы Careti автоматически создавал новую задачу через `new_task` после завершения каждой подзадачи, предварительно загружая контекст для _следующей_ подзадачи.
- **Пользовательская упаковка контекста (Custom Context Packaging):** Предпишите точную структуру и содержание блока `<context>` в `.agents/context` для очень подробной и последовательной передачи задач (см. пример ниже).
- **Улучшенная постоянность памяти (Improved Memory Persistence):** Используйте контекстные блоки `new_task` в качестве основного, интегрированного способа сохранения информации между сеансами, потенциально заменяя или дополняя файловые системы памяти.
- **Автоматизация рабочего процесса (Workflow Automation):** Определите правила для конкретных сценариев, например, всегда предварительно загружать определенные инструкции по настройке или шаблон проекта при запуске задач определенного типа.

#### Пример рабочего процесса, управляемого правилами: процесс передачи задач

Общий рабочий процесс, **управляемый конкретным `.agents/context`, как в примере ниже**, включает в себя следующие шаги:

1. **Идентификация триггера (на основе правил):** Careti отслеживает точки передачи задач, определенные в правилах (например, использование контекста> 50%, завершение задачи).
2. **Подтверждение пользователя:** Careti использует `ask_followup_question`, чтобы предложить создать новую задачу, часто показывая предполагаемый контекст, определенный правилами.

```xml
<ask_followup_question>
<question>Я завершил [конкретное достижение], и использование контекста велико (XX%). Хотите, чтобы я создал новую задачу для продолжения работы с [оставшаяся работа], предварительно загрузив следующий контекст?</question>
<options>["Да, создать новую задачу", "Сначала изменить контекст", "Нет, продолжить этот сеанс"]</options>
</ask_followup_question>
  1. Контроль пользователя: Вы можете одобрить, отклонить или попросить Careti изменить контекст перед созданием новой задачи.
  2. Упаковка контекста (инструмент new_task): В случае одобрения Careti использует new_task, упаковывая контекст в соответствии со структурой, предписанной .agents/context.
  3. Создание новой задачи: Текущая задача завершается, и немедленно начинается новый сеанс, предварительно загруженный указанным контекстом.

Блок контекста передачи задач (структура, определенная правилами)

Эффективность передачи задач, управляемой правилами, во многом зависит от того, как .agents/context определяет блок <context>. Комплексная структура часто включает в себя:

  • ## Выполненная работа: Подробный список достижений, измененных / созданных файлов, ключевых решений.
  • ## Текущее состояние: Статус проекта, запущенные процессы, состояния ключевых файлов.
  • ## Следующие шаги: Четкий, приоритетный список оставшихся задач, детали реализации, известные проблемы.
  • ## Справочная информация: Ссылки, фрагменты кода, шаблоны, пользовательские предпочтения.
  • Действенный старт: Четкая инструкция для немедленного следующего действия.

Потенциальные варианты использования и рабочие процессы

Гибкость new_task в сочетании с .agents/context открывает множество возможностей:

  • Проактивное управление контекстным окном: Автоматически запускайте передачу задач при определенных процентах (например, 50%, 70%) или количестве токенов для поддержания оптимальной производительности.
  • Интеллектуальные точки останова: Поручите Careti находить логические точки останова (например, после завершения функции или теста) после прохождения порога контекста, обеспечивая более чистую передачу задач.
  • Структурированная декомпозиция задач: Используйте Plan Mode для определения подзадач, затем используйте .agents/context, чтобы Careti автоматически создавал новую задачу через new_task после завершения каждой подзадачи.
  • Автоматизированные сводки сеансов: Настройте блок <context>, чтобы всегда включать сводку ключевых моментов обсуждения предыдущего сеанса.
  • Предварительная загрузка шаблона / настройки: Начинайте новые задачи, связанные с определенными проектами, с предварительно загруженными стандартными инструкциями по настройке или шаблонами файлов.
  • Поддержка системы контекста: Используйте контекстные блоки new_task в качестве основного метода передачи задач между сеансами, согласованного с AGENTS.md / .agents/context и work-logs/.

Эксперименты с .agents/context приветствуются, чтобы найти рабочие процессы, которые наилучшим образом соответствуют вашим потребностям!

Пример .agents/context: Руководство по стратегии передачи задач

Ниже приведен пример файла .agents/context, ориентированного конкретно на использование new_task для управления контекстным окном. Помните, что это всего лишь одна конкретная стратегия; основной инструмент new_task можно использовать по-разному с другими пользовательскими правилами.

# Вы ДОЛЖНЫ использовать инструмент `new_task`: Руководство по стратегии передачи задач

**КРИТИЧЕСКИЕ ИНСТРУКЦИИ - ВЫ ДОЛЖНЫ СЛЕДОВАТЬ ЭТИМ РУКОВОДСТВАМ**

Это руководство содержит **ОБЯЗАТЕЛЬНЫЕ** инструкции для эффективного разбиения сложных задач и реализации плавного процесса передачи задач между задачами. Вы **ДОЛЖНЫ** следовать этим руководствам, чтобы обеспечить непрерывность, сохранение контекста и эффективное выполнение задач.

## МОНИТОРИНГ КОНТЕКСТНОГО ОКНА - ТРЕБУЕТСЯ ОБЯЗАТЕЛЬНОЕ ДЕЙСТВИЕ

Вы **ДОЛЖНЫ** отслеживать использование контекстного окна, отображаемое в деталях среды. Когда использование превышает 50% доступного контекстного окна, вы **ДОЛЖНЫ** инициировать передачу задачи с помощью инструмента `new_task`.

Пример использования контекстного окна более 50% с контекстным окном 200K:

\`\`\`text

# Использование контекстного окна

105,000 / 200,000 tokens (53%)
Model: anthropic/claude-sonnet-4 (200K context window)
\`\`\`

**ВАЖНО**: Когда вы видите использование контекстного окна на уровне или выше 50%, вы ДОЛЖНЫ:

1. Завершить свой текущий логический шаг
2. Использовать инструмент `ask_followup_question`, чтобы предложить создать новую задачу
3. В случае одобрения использовать инструмент `new_task` с подробными инструкциями по передаче

## Разбивка задач в Plan Mode - ТРЕБУЕМЫЙ ПРОЦЕСС

Plan Mode специально разработан для анализа сложных задач и разбиения их на управляемые подзадачи. Находясь в Plan Mode, вы **ДОЛЖНЫ**:

### 1. Начальный анализ задачи - ТРЕБУЕТСЯ

- **ДОЛЖНЫ** начать с тщательного понимания полного объема запроса пользователя
- **ДОЛЖНЫ** определить все основные компоненты и зависимости задачи
- **ДОЛЖНЫ** учитывать потенциальные проблемы, крайние случаи и предпосылки

### 2. Стратегическая декомпозиция задач - ТРЕБУЕТСЯ

- **ДОЛЖНЫ** разбить общую задачу на логические, дискретные подзадачи
- **ДОЛЖНЫ** приоритизировать подзадачи на основе зависимостей (что должно быть завершено первым)
- **ДОЛЖНЫ** стремиться к подзадачам, которые можно завершить в течение одного сеанса (15-30 минут работы)
- **ДОЛЖНЫ** учитывать естественные точки разрыва, где переключение контекста имеет смысл

### 3. Создание дорожной карты задач - ТРЕБУЕТСЯ

- **ДОЛЖНЫ** представить пользователю четкий, пронумерованный список подзадач
- **ДОЛЖНЫ** объяснить зависимости между подзадачами
- **ДОЛЖНЫ** предоставить оценку времени для каждой подзадачи, когда это возможно
- **ДОЛЖНЫ** использовать Mermaid diagrams для визуализации потока задач и зависимостей, когда это полезно

\`\`\`mermaid
graph TD
A[Главная задача] --> B[Подзадача 1: Настройка]
A --> C[Подзадача 2: Основная реализация]
A --> D[Подзадача 3: Тестирование]
A --> E[Подзадача 4: Документация]
B --> C
C --> D
\`\`\`

### 4. Получение одобрения пользователя - ТРЕБУЕТСЯ

- **ДОЛЖНЫ** запросить у пользователя обратную связь по предлагаемой разбивке задач
- **ДОЛЖНЫ** скорректировать план на основе приоритетов пользователя или дополнительных требований
- **ДОЛЖНЫ** подтвердить, с какой подзадачи начать
- **ДОЛЖНЫ** попросить пользователя переключиться в Act Mode, когда он будет готов к реализации

## Реализация задач и процесс передачи задач - ОБЯЗАТЕЛЬНЫЕ ПРОЦЕДУРЫ

При реализации задач в Act Mode вы **ДОЛЖНЫ** следовать этим руководствам для эффективной передачи задач:

### 1. Сосредоточенная реализация - ТРЕБУЕТСЯ

- **ДОЛЖНЫ** сосредоточиться на полном завершении текущей подзадачи
- **ДОЛЖНЫ** четко документировать прогресс с помощью комментариев и сообщений коммитов
- **ДОЛЖНЫ** создавать контрольные точки в логических точках завершения

### 2. Распознавание точек завершения - КРИТИЧЕСКИ ВАЖНО

Вы **ДОЛЖНЫ** идентифицировать естественные точки передачи задач, когда:

- Текущая подзадача полностью завершена
- Вы достигли логической точки останова в более крупной подзадаче
- Реализация занимает больше времени, чем ожидалось, и может быть продолжена позже
- Объем задачи расширился за пределы первоначального плана
- **КРИТИЧЕСКИ ВАЖНО**: Использование контекстного окна превышает 50% (например, 100 000+ токенов для контекстного окна 200K)

### 3. Инициация процесса передачи задач - ОБЯЗАТЕЛЬНОЕ ДЕЙСТВИЕ

Когда вы достигли точки завершения, вы **ДОЛЖНЫ**:

1. Обобщить то, что было достигнуто до сих пор
2. Четко указать, что осталось сделать
3. **ОБЯЗАТЕЛЬНО**: Используйте инструмент `ask_followup_question`, чтобы предложить создать новую задачу:

\`\`\`xml
<ask_followup_question>
<question>Я завершил [конкретное достижение]. Хотите, чтобы я создал новую задачу для продолжения работы с [оставшаяся работа]?</question>
<options>["Да, создать новую задачу", "Нет, продолжить в этом сеансе", "Дайте мне подумать"]</options>
</ask_followup_question>
\`\`\`

### 4. Создание новой задачи с контекстом - ТРЕБУЕТСЯ ДЕЙСТВИЕ

Если пользователь соглашается создать новую задачу, вы **ДОЛЖНЫ** использовать инструмент `new_task` с подробными инструкциями по передаче:

\`\`\`xml
<new_task>
<context>

# Продолжение задачи: [Краткое название задачи]

## Выполненная работа

- [Подробный список выполненных элементов]
- [Включите конкретные измененные / созданные файлы]
- [Отметьте любые важные принятые решения]

## Текущее состояние

- [Описание текущего состояния проекта]
- [Любые запущенные процессы или настройка среды]
- [Ключевые файлы и их текущее состояние]

## Следующие шаги

- [Подробный список оставшихся задач]
- [Конкретные детали реализации, которые необходимо решить]
- [О любых известных проблемах, о которых следует знать]

## Справочная информация

- [Ссылки на соответствующую документацию]
- [Важные фрагменты кода или шаблоны, которым нужно следовать]
- [Любые пользовательские предпочтения, отмеченные во время текущего сеанса]

Пожалуйста, продолжите реализацию, выполнив [конкретное следующее действие].
</context>
</new_task>
\`\`\`

### 5. Подробная передача контекста - ОБЯЗАТЕЛЬНЫЕ КОМПОНЕНТЫ

При создании новой задачи вы **ДОЛЖНЫ** всегда включать:

#### Контекст проекта - ТРЕБУЕТСЯ

- **ДОЛЖНЫ** включить общую цель и назначение проекта
- **ДОЛЖНЫ** включить ключевые архитектурные решения и шаблоны
- **ДОЛЖНЫ** включить технологический стек и зависимости

#### Детали реализации - ТРЕБУЕТСЯ

- **ДОЛЖНЫ** перечислить файлы, созданные или измененные в текущем сеансе
- **ДОЛЖНЫ** описать конкретные функции, классы или компоненты, реализованные
- **ДОЛЖНЫ** объяснить шаблоны проектирования, которым следуют
- **ДОЛЖНЫ** наметить подход к тестированию

#### Отслеживание прогресса - ТРЕБУЕТСЯ

- **ДОЛЖНЫ** предоставить контрольный список выполненных элементов
- **ДОЛЖНЫ** предоставить контрольный список оставшихся элементов
- **ДОЛЖНЫ** отметить любые блокировщики или возникшие проблемы

#### Пользовательские предпочтения - ТРЕБУЕТСЯ

- **ДОЛЖНЫ** отметить предпочтения стиля кодирования, упомянутые пользователем
- **ДОЛЖНЫ** задокументировать конкретные подходы, запрошенные пользователем
- **ДОЛЖНЫ** выделить приоритетные области, определенные пользователем

## Рекомендации по эффективной передаче задач - ОБЯЗАТЕЛЬНЫЕ РУКОВОДСТВА

### 1. Поддерживайте непрерывность - ТРЕБУЕТСЯ

- **ДОЛЖНЫ** использовать согласованную терминологию между задачами
- **ДОЛЖНЫ** ссылаться на предыдущие решения и их обоснование
- **ДОЛЖНЫ** поддерживать один и тот же архитектурный подход, если явно не меняется направление

### 2. Сохраняйте контекст - ТРЕБУЕТСЯ

- **ДОЛЖНЫ** включать соответствующие фрагменты кода в передачу
- **ДОЛЖНЫ** обобщать ключевые обсуждения из предыдущего сеанса
- **ДОЛЖНЫ** ссылаться на конкретные файлы и номера строк, когда это применимо

### 3. Установите четкие следующие действия - ТРЕБУЕТСЯ

- **ДОЛЖНЫ** начинать передачу с четкого, действенного следующего шага
- **ДОЛЖНЫ** приоритизировать оставшиеся задачи
- **ДОЛЖНЫ** выделять любые решения, которые необходимо принять

### 4. Документируйте предположения - ТРЕБУЕТСЯ

- **ДОЛЖНЫ** четко указывать любые предположения, сделанные во время реализации
- **ДОЛЖНЫ** отмечать области, где может потребоваться ввод пользователя
- **ДОЛЖНЫ** определить потенциальные альтернативные подходы

### 5. Оптимизируйте для возобновляемости - ТРЕБУЕТСЯ

- **ДОЛЖНЫ** структурировать передачу, чтобы следующий сеанс мог начать работать немедленно
- **ДОЛЖНЫ** включать инструкции по настройке, если требуется настройка среды
- **ДОЛЖНЫ** предоставить краткий обзор вверху для быстрого восстановления контекста

## Пример передачи задачи

### Пример №1 эффективной передачи задачи:

\`\`\`xml
<new_task>
<context>

# Продолжение задачи: Реализация системы аутентификации пользователей

## Выполненная работа

- Создана базовая структура сервера Express.js
- Реализовано соединение MongoDB и схема пользователя
- Завершен endpoint регистрации пользователя с хешированием пароля
- Добавлена проверка ввода с использованием Joi
- Создан начальный набор тестов для endpoint регистрации

## Текущее состояние

- Сервер успешно работает на порту 3000
- Соединение MongoDB установлено
- Endpoint регистрации (/api/users/register) полностью функционален
- Набор тестов проходит для всех сценариев регистрации

## Следующие шаги

1. Реализовать endpoint входа в систему (/api/users/login)
- Использовать bcrypt для сравнения паролей
- Сгенерировать JWT token при успешном входе в систему
- Добавить правильную обработку ошибок для недействительных учетных данных
2. Создать middleware аутентификации
- Проверить JWT tokens
- Извлечь информацию о пользователе
- Обработать просроченные токены
3. Добавить защищенные маршруты, требующие аутентификации
4. Реализовать функциональность сброса пароля

## Справочная информация

- JWT secret должен храниться в файле .env
- Следуйте существующему шаблону обработки ошибок в routes/users.js
- Схема пользователя определена в models/User.js
- Шаблоны тестирования установлены в tests/auth.test.js

Пожалуйста, продолжайте, реализуя endpoint входа в систему, следуя тем же шаблонам, установленным в endpoint регистрации.
</context>
</new_task>
\`\`\`

### Пример №2 неэффективной передачи задачи:

_(Примечание: Пример, приведенный в исходных правилах, показывающий «Реализацию в режиме YOLO», кажется, меньше похож на прямой блок контекста передачи задач и больше похож на общее обновление статуса с будущими соображениями. Истинной неэффективной передаче может не хватать деталей в «Текущем состоянии» или «Следующих шагах»)._

## Когда использовать передачу задач - ОБЯЗАТЕЛЬНЫЕ ТРИГГЕРЫ

Вы **ДОЛЖНЫ** инициировать передачу задач в следующих сценариях:

1. **КРИТИЧЕСКИ ВАЖНО**: Когда использование контекстного окна превышает 50% (например, 100 000+ токенов для контекстного окна 200K)
2. **Длительные проекты**, превышающие один сеанс
3. **Сложные реализации** с несколькими различными фазами
4. **Когда ограничения контекстного окна** приближаются
5. **При переключении областей фокусировки** в рамках более крупного проекта
6. **Когда разные знания** могут быть полезны для разных частей задачи

**ПОСЛЕДНЕЕ НАПОМИНАНИЕ - КРИТИЧЕСКАЯ ИНСТРУКЦИЯ**

Вы **ДОЛЖНЫ** отслеживать использование контекстного окна в разделе сведений о среде. Когда оно превышает 50% (например, «105 000/200 000 токенов (53%)»), вы **ДОЛЖНЫ** активно инициировать процесс передачи задач с помощью инструмента `ask_followup_question`, за которым следует инструмент `new_task`. Вы ДОЛЖНЫ использовать инструмент `new_task`.

Строго следуя этим руководствам, вы обеспечите плавные переходы между задачами, поддержите динамику проекта и предоставите наилучший возможный опыт для пользователей, работающих над сложными проектами, состоящими из нескольких сеансов.

```markdown
## Взаимодействие с пользователем и соображения рабочего процесса

- **Линейный поток:** В настоящее время использование `new_task` создает линейную последовательность. Старая задача заканчивается, и начинается новая. История старой задачи остается доступной для возврата назад.
- **Одобрение пользователя:** Вы всегда имеете контроль, одобряя передачу и имея возможность изменить контекст, который Careti предлагает перенести.
- **Гибкость:** Основной инструмент `new_task` - это гибкий строительный блок. Экспериментируйте с `.agents/context`, чтобы создать рабочие процессы, которые наилучшим образом соответствуют вашим потребностям, будь то строгое управление контекстом, декомпозиция задач или другие творческие способы использования.
```