Установка и быстрый старт
Что вы сможете сделать после прохождения
- ✅ Установить плагин DCP за 5 минут
- ✅ Настроить плагин и проверить успешную установку
- ✅ Увидеть эффект первой автоматической обрезки
Ваша текущая проблема
Со временем использования OpenCode对话и становятся всё длиннее:
- ИИ многократно читает один и тот же файл
- Сообщения об ошибках инструментов заполняют контекст
- Каждый对话消耗ет много токенов
- Чем длиннее对话, тем медленнее ответы ИИ
Вы хотели бы автоматически очищать冗余内容 в对话е, но не хотите делать это вручную.
Основная идея
DCP (Dynamic Context Pruning) — это плагин OpenCode, который автоматически удаляет冗余ные инструменты из истории对话а и сокращает потребление токенов.
Как это работает:
- Автоматическое обнаружение: Перед каждым сообщением自动чески анализирует историю对话а
- Интеллектуальная очистка: Удаляет重复ные инструменты, устаревшие ошибки, перезаписанные записи
- Управляемый ИИ: ИИ может主动но вызывать инструменты
discardиextractдля оптимизации контекста - Прозрачность и контроль: Команда
/dcpдля просмотра статистики обрезки, ручной запуск очистки
Основные преимущества
- Нулевые затраты: Автоматические стратегии не требуют вызовов LLM
- Нулевая настройка: Установил и используй, оптимизированные настройки по умолчанию
- Нулевой риск: Модифицируется только контекст, отправляемый LLM, история对话а не затрагивается
🎒 Подготовка перед началом
Перед установкой убедитесь, что:
- [ ] Установлен OpenCode (поддерживает плагины)
- [ ] Знаете, как редактировать конфигурационный файл OpenCode
- [ ] Понимаете базовый синтаксис JSONC (JSON с комментариями)
Важное напоминание
DCP изменяет контекст, отправляемый LLM, но не влияет на историю对话а. Вы можете отключить плагин в настройках в любое время.
Следуйте инструкциям
Шаг 1: Редактирование конфигурационного файла OpenCode
Зачем Нужно объявить плагин DCP в конфигурации OpenCode, чтобы OpenCode автоматически загружал его при запуске.
Откройте конфигурационный файл OpenCode opencode.jsonc и добавьте DCP в поле plugin:
// 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 автоматически создаст конфигурационный файл при первом запуске:
# Просмотр глобального конфигурационного файла
cat ~/.config/opencode/dcp.jsoncЧто вы должны увидеть: Конфигурационный файл создан, изначально содержит только поле $schema:
{
"$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,让 ИИ несколько раз读取同一个文件, или выполните一些 инструменты, которые завершатся неудачей.
Что вы должны увидеть:
- При каждой отправке сообщения DCP автоматически анализирует историю对话а
- Если есть重复ные инструменты, DCP автоматически очищает их
- После ответа ИИ могут появиться уведомления об обрезке (в зависимости от конфигурации
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 не перезапущен или неправильный путь к конфигурационному файлу
Решение:
- Полностью закройте OpenCode и перезапустите
- Проверьте правильность расположения
opencode.jsonc - Просмотрите журналы: файлы журналов в директории
~/.config/opencode/logs/dcp/daily/
Проблема 2: Конфигурационный файл не создан
Симптомы: ~/.config/opencode/dcp.jsonc не существует
Причина: OpenCode не вызывал плагин DCP или проблемы с правами доступа к директории
Решение:
- Убедитесь, что OpenCode перезапущен
- Создайте директорию конфигурации вручную:
mkdir -p ~/.config/opencode - Проверьте правильность имени плагина в
opencode.jsonc:@tarquinen/opencode-dcp@latest
Проблема 3: Уведомления об обрезке не отображаются
Симптомы: Уведомления об обрезке не видны, но /dcp stats показывает обрезку
Причина: pruneNotification настроен как "off" или "minimal"
Решение: Измените конфигурационный файл:
"pruneNotification": "detailed" // или "minimal"Итоги урока
Установка плагина DCP очень проста:
- Добавьте плагин в
opencode.jsonc - Перезапустите OpenCode
- Используйте команду
/dcpдля проверки установки - Конфигурация по умолчанию готова к использованию, дополнительная настройка не требуется
Функции DCP, включенные по умолчанию:
- ✅ Стратегия автоматического удаления дублей (удаление重复ных инструментов)
- ✅ Стратегия очистки ошибок (очистка устаревших错误输入)
- ✅ Инструменты, управляемые ИИ (
discardиextract) - ✅ Подробные уведомления об обрезке
Следующий шаг: Узнайте, как настроить конфигурацию и调整стратегии обрезки для различных сценариев.
Анонс следующего урока
В следующем уроке мы изучим Полную конфигурацию
Вы узнаете:
- Многоуровневую систему конфигурации (глобальная, переменные окружения, уровень проекта)
- Назначение и рекомендуемые настройки всех параметров конфигурации
- Защита раундов, защищённые инструменты, защищённые файловые паттерны
- Как включить/выключить различные стратегии обрезки
Приложение: Ссылка на исходный код
Нажмите, чтобы развернуть расположение исходного кода
Время обновления: 2026-01-23
| Функция | Путь к файлу | Номер строки |
|---|---|---|
| Вход плагина | index.ts | 12-102 |
| Управление конфигурацией | lib/config.ts | 669-794 |
| Обработка команд | lib/commands/help.ts | 1-40 |
| Расчёт токенов | lib/commands/context.ts | 68-174 |
Ключевые константы:
MAX_TOOL_CACHE_SIZE = 1000: Максимальное количество записей в кэше инструментов
Ключевые функции:
Plugin(): Регистрация плагина и настройка хуковgetConfig(): Загрузка и слияние многоуровневой конфигурацииhandleContextCommand(): Анализ использования токенов в текущей сессии