Обновить

Codex жрёт контекст? Я дал ему локальную память на SQLite — и перестал кормить его простынями промптов

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели12K
Всего голосов 18: ↑15 и ↓3+18
Комментарии17

Комментарии 17

А чем использование БД лучше чем использование AGENTS.md + MEMORY.md ?
Модель все равно читает текст. Просто в одном случае с диска, в другом случае из БД.
Текст одинаковый для анализа моделью, экономии контекста нет.

+1 - хотел задать тот же вопрос

Если правильно понял вопрос, тут решалась моя головная боль с промтами между несколькими чатами (разными моими проектами), при этом чтобы кодекс мог учитывать мои прошлые пожелания по структуре и дизайну кода, поэтому все хранится внутри одной системы из которой он черпает эти знания, и нет этих различных файлов

Похожий подход пробовал с Claude Code — вместо SQLite файловый кэш с эмбеддингами и поиск релевантных кусков кода. Основная боль — инвалидация кэша после рефакторинга. Как у вас с этим?

Интересный подход. Я тоже держал контекст в SQLite с эмбеддингами для поиска. Больной вопрос — инвалидация кэша при изменении файлов. Как решаешь эту проблему? У меня — cron на mtime + переиндексация diff'а.

Работаю с hermes agent, всяких вспомогательных .md хранит кучу, токены улетают сильно быстрее, чем через родной codex cli, есть фичи, типа канбан доски, которые перевешивают.

Я для Hermes сделал память с нативной интеграцией, где есть горячий слой и долговременная память, которая хранится в Obsidian. Это общая память с Claude Code и Codex, все они работают на маке и VPS. Как и у вас используется SQLite с FTS5.

https://github.com/itechmeat/open-second-brain

Я чет прям описание своего проекта прочитал, пописываю потихоньку с февраля, на гитхабе в публичном доступе лежит. (если кому надо ссылку скину, может звездочку поставите :) Думаю, а почему его только боты скачивают, теперь знаю почему:) Если кому интересно, почему БД лучше чем использование AGENTS.md + MEMORY.md могу популярно в нескольких словах объяснить: Маркдаун файлы - это по сути статика, база данных - она живая. Затраты человека или агента на правку этих файлов сильно выше, чем через правильно приготовленный MCP rпростыми командами типа запиши правило X, или подними задачу Y. Более того, постановка задачи автоматизируется, превращаясь в непринужденный диалог с агентом. Кто пишет ручками пишет *.md для агента - срочно поднимайтесь с предыдущей ступени развития вайбкодинга :)
Я вот интервью агента попросил записать:
https://github.com/Utundry/sloplesscode/blob/master/docs/AGENT_MCP_INTERVIEW.md

Все равно не понял, чем бд в этом плане лучше. Запиши правило X в бд или в файл rules.md, в чем будет принципиальная разница?

md файл ещё и версионировать через git удобно и между командой делить проще

В базе данных можно хранить декомпозированно. и доставать только релевантные части

Markdown-файлов можно сделать несколько и связать их ссылками.

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

Не буду спорить, каждый выбирает то, что ему удобно, или то, к чему привык, в крайнем случает, то, к чему принуждают. Сам являюсь сторонником правила: хочешь понять как работает инструмент, сделай его сам.

Вопрос ведь был не про удобство и привычки, а про затраты токенов. Я сейчас работаю с md-файлами, и для меня это кажется проще и удобнее. Но хотелось бы понять, может использование БД в этом плане действительно лучше?

Про затраты токенов, они растут экспоненциально размеру проектов. Разные подходы к хранению памяти меняют эту зависимость. И как в графиках системы уравнений. в зависимости от сложности(объема) проекта различные методы имеют разные эффективности. На малых проектах .md достаточно, после определенного объема эффективность падает, либо ломается совсем. Tогда на сцену выходят более сложные методы, типа RAG, Cognition и т.д.

Для тех, кому действительно интересно разобраться, я опубликовал статью
https://dzen.ru/a/aikKRKfi_X16HSoD
опубликовал бы и на хабре, но инваайта нет.

Я работаю по принципу кодекс программист - чатжпт агент. Я написал с помощью него целую софтину сотруднику. И на данном этапе он работает без сбоев и багов. Единственное что на данный момент вношу правки, исправляю баги, дорабатываю ПО. Его память по проекту — это файлы документации внутри репозитория, которые мы специально ведём. А для экономии токенов использую: "Контекст проекта актуален в docs/AI_CONTEXT.md и docs/CURRENT_STATE.md. Прочитай только эти два файла и PATCH_RULES.md." А для маленьких исправлений достаточно "Прочитай docs/AI_CONTEXT.md, docs/CURRENT_STATE.md, docs/PATCH_RULES.md." И я уже прошел релиз, сделал кучу мелких исправлений. И уже расширил функционал, при этом он не сломал ничего при добавлении нового. Только он не всегда помни какие были исправления графический в старом и добавляет эти же самые баги графические в новом функционале.

Отлично, а какой размер проекта в строках?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации