одноразовое чтение: Крючок Кода Клода, Предотвращающий Избыточное Чтение Файлов

✍️ OpenClawRadar📅 Опубликовано: 8 марта 2026 г.🔗 Source
одноразовое чтение: Крючок Кода Клода, Предотвращающий Избыточное Чтение Файлов
Ad

Разработчик создал PreToolUse-хук под названием read-once, который решает проблему склонности Claude Code многократно читать одни и те же файлы в течение сессии, что потребляет ненужные токены.

Проблема и решение

Claude Code часто перечитывает файлы, которые уже есть в контексте. Например, открытие файла на 500 строк, внесение небольшого изменения и повторное чтение Claude всего файла обходится примерно в 2000+ токенов за каждое чтение. В типичных сессиях одни и те же файлы могут читаться 5-10 раз.

Хук read-once отслеживает, какие файлы Claude уже прочитал в текущей сессии. Когда Claude пытается перечитать неизмененный файл, хук блокирует это и отображает сообщение типа: "read-once: config.rs (~3400 токенов) уже в контексте (прочитано 4 минуты назад, без изменений). Экономия за сессию: ~12 000 токенов."

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

  • При первом чтении: Записывает путь к файлу, время изменения и временную метку, затем разрешает чтение как обычно.
  • При повторном чтении неизмененного файла: Блокирует чтение, так как у Claude уже есть содержимое.
  • При повторном чтении измененного файла: Вместо разрешения полного перечитывания хук вычисляет разницу и возвращает только то, что изменилось. У Claude уже есть старая версия в контексте, и ему нужна только дельта. Для файла на 500 строк, где изменились 3 строки, это использует ~30 токенов вместо ~2000, экономя 80-95% на итерациях файлов.
Ad

Функции и конфигурация

Инструмент учитывает TTL с истечением срока действия записей кэша через 20 минут (настраивается). После истечения срока повторные чтения разрешены, потому что Claude мог сжать контекст и потерять предыдущее содержимое.

Конфигурация выполняется через переменные окружения:

  • READ_ONCE_TTL=1200 - секунды до истечения кэша (по умолчанию 20 минут)
  • READ_ONCE_DIFF=1 - включить режим различий
  • READ_ONCE_DIFF_MAX=40 - максимальное количество строк различий перед возвратом к полному перечитыванию
  • READ_ONCE_DISABLED=1 - полностью отключить

Технические детали

Весь инструмент составляет примерно 250 строк bash без зависимостей, кроме jq и diff. Он лицензирован под MIT и устанавливается путем добавления себя в ваши хуки .claude/settings.json.

Разработчик создал этот инструмент, потому что запускает Claude Code в автономном цикле, где затраты на токены быстро накапливаются. Только режим различий, по сообщениям, сократил использование токенов за сессию примерно на 30%.

📖 Read the full source: r/ClaudeAI

Ad

👀 Смотрите также

TeamHero v2.6.1: Открытая Платформа для Управления ИИ-Агентами Claude
Инструменты

TeamHero v2.6.1: Открытая Платформа для Управления ИИ-Агентами Claude

TeamHero v2.6.1 — это локально-ориентированная платформа с открытым исходным кодом, которая создаёт управляемую команду агентов Claude с такими функциями, как режим автопилота, вложенность подзадач, представления потоков и постоянная память. Инструмент работает на Node.js с простой панелью управления на HTML/CSS/JS и не требует базы данных.

OpenClawRadar
Извлечение компонентов OpenClaw: Опыт разработчика с очередью Lane и системой памяти
Инструменты

Извлечение компонентов OpenClaw: Опыт разработчика с очередью Lane и системой памяти

Разработчик попытался извлечь определённые компоненты из OpenClaw для использования в персональных AI-агентах, протестировав систему выполнения задач Lane Queue и изучив систему памяти memsearch. Lane Queue была успешно перереализована на Python с использованием документации, что выявило пробелы в ней и 13 проблем в реализации.

OpenClawRadar
Результаты тестирования: Когда использовать Claude Opus с Codex или чистый Opus для генерации кода
Инструменты

Результаты тестирования: Когда использовать Claude Opus с Codex или чистый Opus для генерации кода

Контрольный тест проверил подход 'Планирование с Opus, выполнение с Codex' на трех реальных задачах программирования. Результаты показывают точку пересечения затрат примерно на 600 строках кода с конкретными рекомендациями в зависимости от размера проекта.

OpenClawRadar
Calmkeep: Внешний слой непрерывности для противодействия дрейфу LLM в длинных сессиях
Инструменты

Calmkeep: Внешний слой непрерывности для противодействия дрейфу LLM в длинных сессиях

Calmkeep — это внешний слой непрерывности, предназначенный для противодействия дрейфу LLM в длинных сессиях. В тесте на 25 шагов при сборке бэкенда он показал 85% целостности против 60% у стандартного Claude, а в юридической сессии — 100% против 50%.

OpenClawRadar