Skip to content

Руководство по командам DCP: мониторинг и ручная очистка

Что вы научитесь делать

  • Использовать /dcp context для просмотра распределения токенов текущей сессии
  • Использовать /dcp stats для просмотра накопленной статистики очистки
  • Использовать /dcp sweep [n] для ручного запуска очистки
  • Понимать механизм защиты инструментов и файлов
  • Разбираться в стратегии подсчёта токенов и эффекте экономии

Ваша текущая проблема

В длинных диалогах токены расходуются всё быстрее, но вы не знаете:

  • На что тратятся токены текущей сессии?
  • Сколько именно сэкономил DCP?
  • Как вручную очистить ненужные выводы инструментов?
  • Какие инструменты защищены от очистки?

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

Когда использовать этот подход

Когда вы:

  • Хотите понять структуру токенов текущей сессии
  • Нужно быстро очистить историю диалога
  • Хотите проверить эффект очистки DCP
  • Готовитесь к новой задаче и хотите очистить контекст

Основная концепция

DCP предоставляет 4 Slash-команды для мониторинга и управления использованием токенов:

КомандаНазначениеСценарий использования
/dcpПоказать справкуКогда забыли команды
/dcp contextАнализ распределения токенов сессииПонимание структуры контекста
/dcp statsПросмотр накопленной статистикиПроверка долгосрочного эффекта
/dcp sweep [n]Ручная очистка инструментовБыстрое уменьшение размера контекста

Механизм защиты:

Все операции очистки автоматически пропускают:

  • Защищённые инструменты: task, todowrite, todoread, discard, extract, batch, write, edit, plan_enter, plan_exit
  • Защищённые файлы: пути файлов, соответствующие protectedFilePatterns в конфигурации

INFO

Настройки защищённых инструментов и файлов можно изменить через файл конфигурации. Подробнее см. Полное руководство по конфигурации.

Пошаговое руководство

Шаг 1: Просмотр справки

Введите /dcp в диалоговом окне OpenCode.

Вы должны увидеть:

╭───────────────────────────────────────────────────────────╮
│                      DCP Commands                         │
╰───────────────────────────────────────────────────────────╯

  /dcp context      Show token usage breakdown for current session
  /dcp stats        Show DCP pruning statistics
  /dcp sweep [n]    Prune tools since last user message, or last n tools

Контрольная точка ✅: Убедитесь, что видите описание 3 подкоманд.

Шаг 2: Анализ распределения токенов сессии

Введите /dcp context для просмотра использования токенов текущей сессии.

Вы должны увидеть:

╭───────────────────────────────────────────────────────────╮
│                  DCP Context Analysis                     │
╰───────────────────────────────────────────────────────────╯

Session Context Breakdown:
────────────────────────────────────────────────────────────

System         15.2% │████████████████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│  25.1K tokens
User            5.1% │████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│   8.4K tokens
Assistant       35.8% │██████████████████████████████████████▒▒▒▒▒▒▒│  59.2K tokens
Tools (45)      43.9% │████████████████████████████████████████████████│  72.6K tokens

────────────────────────────────────────────────────────────

Summary:
  Pruned:          12 tools (~15.2K tokens)
  Current context: ~165.3K tokens
  Without DCP:     ~180.5K tokens

Описание категорий токенов:

КатегорияСпособ расчётаОписание
SystemfirstAssistant.input + cache.read - tokenizer(firstUserMessage)Системный промпт
Toolstokenizer(toolInputs + toolOutputs) - prunedTokensВызовы инструментов (за вычетом очищенных)
Usertokenizer(all user messages)Все сообщения пользователя
Assistanttotal - system - user - toolsТекстовый вывод ИИ + токены рассуждений

Контрольная точка ✅: Убедитесь, что видите процентное соотношение и количество токенов по категориям.

Шаг 3: Просмотр накопленной статистики очистки

Введите /dcp stats для просмотра исторической статистики очистки.

Вы должны увидеть:

╭───────────────────────────────────────────────────────────╮
│                    DCP Statistics                         │
╰───────────────────────────────────────────────────────────╯

Session:
────────────────────────────────────────────────────────────
  Tokens pruned: ~15.2K
  Tools pruned:   12

All-time:
────────────────────────────────────────────────────────────
  Tokens saved:  ~284.5K
  Tools pruned:   156
  Sessions:       8

Описание статистики:

  • Session: данные очистки текущей сессии (в памяти)
  • All-time: накопленные данные всех сессий (сохранены на диске)

Контрольная точка ✅: Убедитесь, что видите статистику текущей сессии и историческую статистику.

Шаг 4: Ручная очистка инструментов

Есть два способа использования /dcp sweep:

Способ 1: Очистка всех инструментов после последнего сообщения пользователя

Введите /dcp sweep (без параметров).

Вы должны увидеть:

╭───────────────────────────────────────────────────────────╮
│                      DCP Sweep                            │
╰───────────────────────────────────────────────────────────╯

Swept 8 tool(s) since previous user message.
Tokens saved: ~12,345

  • Read: src/config.ts
  • Read: src/utils.ts
  • Bash: npm test
  • Read: package.json
  • Read: src/index.ts
  • Bash: git status
  • Read: README.md
  • Write: docs/tutorial.md

Способ 2: Очистка последних N инструментов

Введите /dcp sweep 5 для очистки последних 5 инструментов.

Вы должны увидеть:

╭───────────────────────────────────────────────────────────╮
│                      DCP Sweep                            │
╰───────────────────────────────────────────────────────────╯

Swept last 5 tool(s).
Tokens saved: ~7,892

  • Read: src/index.ts
  • Bash: git status
  • Read: README.md
  • Write: docs/tutorial.md
  • Bash: npm run build

Уведомление о защищённых инструментах:

Если были пропущены защищённые инструменты, вывод покажет:

Swept 5 tool(s).
Tokens saved: ~7,892
(2 protected tool(s) skipped)

WARNING

Защищённые инструменты (такие как write, edit) и защищённые пути файлов автоматически пропускаются и не очищаются.

Контрольная точка ✅: Убедитесь, что видите список очищенных инструментов и количество сэкономленных токенов.

Шаг 5: Повторная проверка эффекта очистки

После очистки снова введите /dcp context для просмотра нового распределения токенов.

Вы должны увидеть:

  • Уменьшение доли категории Tools
  • Увеличение количества очищенных инструментов в Summary
  • Уменьшение общего Current context

Контрольная точка ✅: Убедитесь, что использование токенов заметно снизилось.

Типичные ошибки

❌ Ошибка: случайное удаление важных инструментов

Сценарий: Вы только что использовали инструмент write для создания важного файла, а затем выполнили /dcp sweep.

Неправильный результат: Инструмент write очищен, ИИ может не знать, что файл был создан.

Правильный подход:

  • Инструменты write, edit и другие защищены по умолчанию
  • Не изменяйте вручную конфигурацию protectedTools для удаления этих инструментов
  • После завершения критических задач подождите несколько ходов перед очисткой

❌ Ошибка: неподходящее время для очистки

Сценарий: Диалог только начался, всего несколько вызовов инструментов, а вы уже выполняете /dcp sweep.

Неправильный результат: Экономия токенов минимальна, при этом может нарушиться связность контекста.

Правильный подход:

  • Дождитесь определённого прогресса диалога (например, 10+ вызовов инструментов) перед очисткой
  • Очищайте выводы инструментов предыдущего раунда перед началом новой задачи
  • Используйте /dcp context для оценки целесообразности очистки

❌ Ошибка: чрезмерная зависимость от ручной очистки

Сценарий: Вы вручную выполняете /dcp sweep в каждом диалоге.

Неправильный результат:

  • Стратегии автоматической очистки (дедупликация, перезапись, удаление ошибок) не используются
  • Увеличивается операционная нагрузка

Правильный подход:

  • Включите стратегии автоматической очистки по умолчанию (конфигурация: strategies.*.enabled)
  • Используйте ручную очистку как дополнение, когда это необходимо
  • Проверяйте эффект автоматической очистки через /dcp stats

Итоги урока

4 команды DCP помогают мониторить и контролировать использование токенов:

КомандаОсновная функция
/dcpПоказать справочную информацию
/dcp contextАнализ распределения токенов сессии
/dcp statsПросмотр накопленной статистики очистки
/dcp sweep [n]Ручная очистка инструментов

Стратегия подсчёта токенов:

  • System: системный промпт (вычисляется из первого ответа)
  • Tools: ввод и вывод инструментов (за вычетом очищенных)
  • User: все сообщения пользователя (оценка)
  • Assistant: вывод ИИ + токены рассуждений (остаток)

Механизм защиты:

  • Защищённые инструменты: task, todowrite, todoread, discard, extract, batch, write, edit, plan_enter, plan_exit
  • Защищённые файлы: glob-паттерны из конфигурации
  • Все операции очистки автоматически пропускают эти элементы

Лучшие практики:

  • Регулярно проверяйте /dcp context для понимания структуры токенов
  • Выполняйте /dcp sweep перед новой задачей для очистки истории
  • Полагайтесь на автоматическую очистку, ручную используйте как дополнение
  • Проверяйте долгосрочный эффект через /dcp stats

Анонс следующего урока

В следующем уроке мы изучим Механизм защиты.

Вы узнаете:

  • Как защита раундов предотвращает ошибочную очистку
  • Как настроить список защищённых инструментов
  • Как настроить паттерны защищённых файлов
  • Особенности обработки сессий субагентов

Приложение: справочник по исходному коду

Нажмите, чтобы развернуть расположение исходного кода

Дата обновления: 2026-01-23

ФункцияПуть к файлуСтроки
Команда /dcp helplib/commands/help.ts19-32
Команда /dcp contextlib/commands/context.ts238-247
Стратегия подсчёта токеновlib/commands/context.ts5-38
Команда /dcp statslib/commands/stats.ts46-67
Команда /dcp sweeplib/commands/sweep.ts123-259
Конфигурация защищённых инструментовlib/config.ts461
Список защищённых инструментов по умолчаниюREADME.md150-151

Ключевые константы:

  • DEFAULT_PROTECTED_TOOLS: список защищённых инструментов по умолчанию

Ключевые функции:

  • handleHelpCommand(): обработка команды /dcp help
  • handleContextCommand(): обработка команды /dcp context
  • analyzeTokens(): подсчёт токенов по категориям
  • handleStatsCommand(): обработка команды /dcp stats
  • handleSweepCommand(): обработка команды /dcp sweep
  • buildToolIdList(): построение списка ID инструментов