Skip to content

Установка и быстрый старт

Что вы сможете сделать после прохождения

  • ✅ Установить плагин DCP за 5 минут
  • ✅ Настроить плагин и проверить успешную установку
  • ✅ Увидеть эффект первой автоматической обрезки

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

Со временем использования OpenCode对话и становятся всё длиннее:

  • ИИ многократно читает один и тот же файл
  • Сообщения об ошибках инструментов заполняют контекст
  • Каждый对话消耗ет много токенов
  • Чем длиннее对话, тем медленнее ответы ИИ

Вы хотели бы автоматически очищать冗余内容 в对话е, но не хотите делать это вручную.

Основная идея

DCP (Dynamic Context Pruning) — это плагин OpenCode, который автоматически удаляет冗余ные инструменты из истории对话а и сокращает потребление токенов.

Как это работает:

  1. Автоматическое обнаружение: Перед каждым сообщением自动чески анализирует историю对话а
  2. Интеллектуальная очистка: Удаляет重复ные инструменты, устаревшие ошибки, перезаписанные записи
  3. Управляемый ИИ: ИИ может主动но вызывать инструменты discard и extract для оптимизации контекста
  4. Прозрачность и контроль: Команда /dcp для просмотра статистики обрезки, ручной запуск очистки

Основные преимущества

  • Нулевые затраты: Автоматические стратегии не требуют вызовов LLM
  • Нулевая настройка: Установил и используй, оптимизированные настройки по умолчанию
  • Нулевой риск: Модифицируется только контекст, отправляемый LLM, история对话а не затрагивается

🎒 Подготовка перед началом

Перед установкой убедитесь, что:

  • [ ] Установлен OpenCode (поддерживает плагины)
  • [ ] Знаете, как редактировать конфигурационный файл OpenCode
  • [ ] Понимаете базовый синтаксис JSONC (JSON с комментариями)

Важное напоминание

DCP изменяет контекст, отправляемый LLM, но не влияет на историю对话а. Вы можете отключить плагин в настройках в любое время.

Следуйте инструкциям

Шаг 1: Редактирование конфигурационного файла OpenCode

Зачем Нужно объявить плагин DCP в конфигурации OpenCode, чтобы OpenCode автоматически загружал его при запуске.

Откройте конфигурационный файл OpenCode opencode.jsonc и добавьте DCP в поле plugin:

jsonc
// opencode.jsonc
{
    "plugin": ["@tarquinen/opencode-dcp@latest"],
}

Что вы должны увидеть: В конфигурационном файле уже есть другие плагины (если есть), просто добавьте DCP в конец массива.

Подсказка

Используя тег @latest, OpenCode при каждом запуске будет автоматически проверять и загружать последнюю версию.

Шаг 2: Перезапуск OpenCode

Зачем Изменения конфигурации плагина требуют перезапуска для вступления в силу.

Полностью закройте OpenCode, затем перезапустите.

Что вы должны увидеть: OpenCode запускается нормально, без сообщений об ошибках.

Шаг 3: Проверка установки плагина

Зачем Убедиться, что плагин DCP загружен правильно, и просмотреть конфигурацию по умолчанию.

Введите в对话е OpenCode:

/dcp

Что вы должны увидеть: Справку по командам DCP, подтверждающую успешную установку плагина.

╭───────────────────────────────────────────────────────────╮
│                      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

Шаг 4: Просмотр конфигурации по умолчанию

Зачем Понять конфигурацию DCP по умолчанию и убедиться, что плагин работает как ожидалось.

DCP автоматически создаст конфигурационный файл при первом запуске:

bash
# Просмотр глобального конфигурационного файла
cat ~/.config/opencode/dcp.jsonc

Что вы должны увидеть: Конфигурационный файл создан, изначально содержит только поле $schema:

jsonc
{
    "$schema": "https://raw.githubusercontent.com/Opencode-DCP/opencode-dynamic-context-pruning/master/dcp.schema.json"
}

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

Объяснение конфигурации по умолчанию

Значения DCP по умолчанию в коде (не нужно записывать в конфигурационный файл):

  • deduplication: Автоматическое удаление重复ных инструментов
  • purgeErrors: Автоматическая очистка ошибок инструментов старше 4 раундов
  • discard/extract: Инструменты обрезки, доступные ИИ
  • pruneNotification: Показывать подробные уведомления об обрезке

Если需要自定义配置, вы можете добавить эти поля вручную. Подробное описание конфигурации см. в разделе Полная конфигурация.

Шаг 5:体验自动修剪效果

Зачем Практически использовать DCP и увидеть эффект автоматической обрезки.

Проведите一段对话 в OpenCode,让 ИИ несколько раз读取同一个文件, или выполните一些 инструменты, которые завершатся неудачей.

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

  1. При каждой отправке сообщения DCP автоматически анализирует историю对话а
  2. Если есть重复ные инструменты, DCP автоматически очищает их
  3. После ответа ИИ могут появиться уведомления об обрезке (в зависимости от конфигурации pruneNotification)

Пример уведомления об обрезке:

▣ DCP | ~12.5K tokens saved total

▣ Pruning (~12.5K tokens)
→ read: src/config.ts
→ write: package.json

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

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

检查点 ✅

После выполнения всех шагов вы должны:

  • [ ] Добавлен плагин DCP в opencode.jsonc
  • [ ] OpenCode работает нормально после перезапуска
  • [ ] Команда /dcp отображает справочную информацию
  • [ ] Конфигурационный файл ~/.config/opencode/dcp.jsonc создан
  • [ ] В对话е видны уведомления об обрезке или статистика через /dcp context

Если какой-то шаг не удался:

  • Проверьте правильность синтаксиса opencode.jsonc (формат JSONC)
  • Проверьте журналы OpenCode на наличие ошибок загрузки плагина
  • Убедитесь, что версия OpenCode поддерживает插件功能

⚠️提醒注意

Проблема 1: Плагин не работает

Симптомы: Конфигурация добавлена, но эффекта обрезки не видно

Причина: OpenCode не перезапущен или неправильный путь к конфигурационному файлу

Решение:

  1. Полностью закройте OpenCode и перезапустите
  2. Проверьте правильность расположения opencode.jsonc
  3. Просмотрите журналы: файлы журналов в директории ~/.config/opencode/logs/dcp/daily/

Проблема 2: Конфигурационный файл не создан

Симптомы: ~/.config/opencode/dcp.jsonc не существует

Причина: OpenCode не вызывал плагин DCP или проблемы с правами доступа к директории

Решение:

  1. Убедитесь, что OpenCode перезапущен
  2. Создайте директорию конфигурации вручную: mkdir -p ~/.config/opencode
  3. Проверьте правильность имени плагина в opencode.jsonc: @tarquinen/opencode-dcp@latest

Проблема 3: Уведомления об обрезке не отображаются

Симптомы: Уведомления об обрезке не видны, но /dcp stats показывает обрезку

Причина: pruneNotification настроен как "off" или "minimal"

Решение: Измените конфигурационный файл:

jsonc
"pruneNotification": "detailed"  // или "minimal"

Итоги урока

Установка плагина DCP очень проста:

  1. Добавьте плагин в opencode.jsonc
  2. Перезапустите OpenCode
  3. Используйте команду /dcp для проверки установки
  4. Конфигурация по умолчанию готова к использованию, дополнительная настройка не требуется

Функции DCP, включенные по умолчанию:

  • ✅ Стратегия автоматического удаления дублей (удаление重复ных инструментов)
  • ✅ Стратегия очистки ошибок (очистка устаревших错误输入)
  • ✅ Инструменты, управляемые ИИ (discard и extract)
  • ✅ Подробные уведомления об обрезке

Следующий шаг: Узнайте, как настроить конфигурацию и调整стратегии обрезки для различных сценариев.


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

В следующем уроке мы изучим Полную конфигурацию

Вы узнаете:

  • Многоуровневую систему конфигурации (глобальная, переменные окружения, уровень проекта)
  • Назначение и рекомендуемые настройки всех параметров конфигурации
  • Защита раундов, защищённые инструменты, защищённые файловые паттерны
  • Как включить/выключить различные стратегии обрезки

Приложение: Ссылка на исходный код

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

Время обновления: 2026-01-23

ФункцияПуть к файлуНомер строки
Вход плагинаindex.ts12-102
Управление конфигурациейlib/config.ts669-794
Обработка командlib/commands/help.ts1-40
Расчёт токеновlib/commands/context.ts68-174

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

  • MAX_TOOL_CACHE_SIZE = 1000: Максимальное количество записей в кэше инструментов

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

  • Plugin(): Регистрация плагина и настройка хуков
  • getConfig(): Загрузка и слияние многоуровневой конфигурации
  • handleContextCommand(): Анализ использования токенов в текущей сессии