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 →
RepoRadar