Funes сохраняет память ИИ-агентов локально, экономя токены и исключая утечки
Funes превращает историю диалогов с ИИ-агентами в локальную базу знаний, позволяя программам вспоминать принятые решения и избегать повторных ошибок. Это снижает затраты на токены и гарантирует конфиденциальность данных, так как вся обработка происходит непосредственно на компьютере разработчика.
Инструмент Funes решает проблему «амнезии» кодинг-агентов. Когда сессия завершается, контекст — найденные ошибки, принятые решения и отработанные гипотезы — обычно теряется. Новый агент начинает работу с чистого листа, повторяя те же ошибки. Funes индексирует логи работы популярных агентов (Claude Code, Codex, pi, Hermes) в локальный датасет, позволяя им «вспоминать» прошлый опыт.
Ключевое отличие от других решений: система не использует большие языковые модели (LLM) для суммаризации данных при сохранении. Она работает с исходным текстом диалога напрямую. Это гарантирует точность и конфиденциальность, так как данные не покидают локальную машину пользователя без явного разрешения.
Как работает память агента
Интеграция происходит через одну команду, которая устанавливает хуки для автоматического индексирования новых ходов. После этого агент получает доступ к двум основным инструментам:
- Recall (Вспоминание): Агент или пользователь запрашивает информацию по ключевым словам. Система возвращает ранжированные фрагменты из прошлых сессий, указывая точный источник и номер хода.
- Get (Получение контекста): Позволяет открыть конкретные диапазоны диалога (например, с 40-го по 60-й ход), чтобы увидеть полную картину размышлений агента.
Также есть функция Ask, которая извлекает нужные фрагменты локально и передает их выбранному агенту для формирования ответа на основе этих данных. Это полезно, когда нужна не сырая выдержка, а сформулированное решение.
Funes использует гибридный поиск: векторный анализ для понимания смысла и алгоритм BM25 для точного совпадения технических терминов, имен файлов и ошибок. Это позволяет находить не только семантически похожие ситуации, но и конкретные технические детали.
Почему выбран формат Lance
Разработчики выбрали Lance как хранилище данных из-за его эффективности для локальных задач. Вместо разрозненных систем (отдельно векторная БД, отдельно текстовый поиск), Funes упаковывает все в один артефакт:
- Единая структура: Данные, провенанс (источник) и векторные индексы хранятся в одной директории.
- Версионирование: Каждое добавление данных создает новую версию датасета, которую можно откатить.
- Производительность: Поддержка быстрого случайного доступа к данным для пере-ранжирования результатов поиска.
- Автономность: Система работает как библиотека в процессе (in-process), а не как отдельный сервис, требующий развертывания и обслуживания.
Безопасность и приватность
Локальные логи агентов часто содержат чувствительные данные: пути к файлам на диске, стек-трейсы, незапущенные планы или случайно вставленные ключи доступа. Funes закладывает защиту на уровне архитектуры:
- Детерминированное индексирование: Данные разбиваются на блоки и векторизуются локально. Никакая внешняя LLM не читает сессии для создания «памяти».
- Защита от утечек: Если в системе установлен инструмент TruffleHog, он сканирует данные перед сохранением и маскирует обнаруженные ключи доступа.
- Контроль экспорта: При попытке отправить данные наружу (
funes push) запускается обязательная проверка. Если в блоке все еще есть секрет, экспорт блокируется (fail-closed).
Практическое значение для разработчиков
- Снижение стоимости токенов: Агенту не нужно каждый раз загружать огромный контекст проекта заново. Он может запросить только релевантные прошлые решения через
recall. - Аудитируемость решений: Поскольку сохраняется исходный текст диалога, а не его ИИ-суммаризация, разработчик может проверить, почему агент принял то или иное решение, сверившись с оригиналом.
- Локальная изоляция: Для команд, работающих с закрытым кодом или данными клиентов, это критически важно. Память агента остается на рабочих станциях, а не в облаке провайдера ИИ.
Инструмент доступен для установки через скрипт из репозитория Hugging Face. Основная аудитория — разработчики, активно использующие AI-ассистентов для написания кода и сталкивающиеся с потерей контекста между сессиями.
Подтверждение: huggingface.co