fast-jev-compaction: плагин для Claude Code для быстрой компакции данных

fast-jev-compaction: плагин для Claude Code для быстрой компакции данных

fast-jev-compaction — плагин для Claude Code, который заменяет сводку компакции решениями Jev и позволяет быстро обрабатывать результаты инструментов.

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

Проект написан на JavaScript и доступен как npm-пакет и встроенный плагин для Claude Code. Как и в случае с любым проектом, у которого есть свои особенности, имей в виду, что он может не подойти для всех случаев, и поддержка ограничивается работой с Jev. Запуск осуществляется через npm, однако подробности по интеграции и настройке лучше уточнить в документации.

Проект fast-jev-compaction представляет собой плагин для Claude Code, который заменяет стандартное резюме компактации на решения от Jev. Он направлен на оптимизацию обработки старых сообщений в диалогах с помощью LLM, сохраняя актуальные вызовы инструментов и результаты, которые действительно нужны, без потери важной информации.

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

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

Основные принципы работы плагина следующие:

  • Каждый tool_use соответствует своему tool_result по tool_use_id. Вызовы из первых сообщений или из последних preserveRecentMessages сообщений остаются неизменными.
  • К Jev отправляется полное состояние разговора, где каждый инструмент заменён краткой заметкой, а сами тексты представлены без потерь.
  • Чтобы вписаться в ограничения по количеству токенов, слишком длинные сообщения обрезаются, а старые и незащищённые сообщения сворачиваются в краткие заметки.
  • Для каждого вызова без пиннинга Jev задаёт два вопроса: оставлять ли вызов и сохранять ли результат в оригинальном виде.
  • Ответы от Jev собираются и обрабатываются, принимая во внимание максимальное количество токенов для запросов.

Установка и использование

Чтобы установить плагин, нужно выполнить следующие команды:

npm install fast-jev-compaction
export TYPESAFE_API_KEY=...

Пример использования в коде:

import { compactMessages, reductionRatio, type Message } from 'fast-jev-compaction';

const transcript: Message[] = [
  { role: 'user', text: 'Fix the failing test. Never edit src/generated.', toolUses: [] },
  {
    role: 'assistant',
    text: '',
    toolUses: [{ tool_use_id: 'toolu_1', tool: 'Read', input: { file_path: 'src/a.ts' } }],
  },
];

const result = await compactMessages(transcript, { preserveRecentMessages: 4 });
console.log(result.messages, result.decisions, result.stats);
if (reductionRatio(result) < 0.25) {
  // not worth it: keep the original transcript, or summarize instead
}

Плагин также предоставляет возможность использовать собственный транспорт для взаимодействия с Jev, что позволяет настраивать логику работы с запросами.

Ограничения

  • Возможности функции ограничены только вызовами инструментов и их результатами; текстовые сообщения не удаляются и не сокращаются в результирующем выводе.
  • Размеры токенов оцениваются лишь по количеству символов, что может привести к неточностям.
  • Несмотря на Калибровку, вероятность не гарантирует, что результат безопасен для удаления: функция может всегда повторно запустить инструмент.

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

Открыть на GitHub: tamaratran/fast-jev-compaction →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте