IT Sabbatical • Стартаперская
@it_sabat
Как решал проблему с жесткими лагами Cursor AI
Больше месяца использую Cursor AI. Итоги позже еще расскажу. А сегодня про решение конкретной проблемы.
Когда вы долго используете диалог в Cursor AI, то можете заметить все больше и больше лагов. В конце концов, он начнет просто критично тормозить.
Сначала разбираемся в причине. Показал ее и последствия на приложенном скрине.
Cursor постоянно делает запись в sqlite-файл
И делает это не при отправке ответа, а просто всегда нон-стоп с интервалом примерно в минуту-две. На скрине пример, как он пытается писать 250 Мб в сек, а на деле и больше. Диск не может это переварить, курсор начинает страшно лагать.
Как результат, во время самого диалога Курсор просто не способен периодически провести поиск в проекте, спарсить код в файлах, идет левыми долгими путями. Ожидания возрастают до десятка минут, тратятся лишние запросы.
И жалоб на официальном форуме про это много. Люди психуют, не все выдерживают
Решение простое: начинайте новый диалог почаще )
Почему не все доходят, и я сам долго до этого шел. Потому что мы хотим сохранить контекст как можно дольше. А открытие нового диалога - минус контекст, ИИ вновь видит проект как в первый раз.
Отсюда НОВАЯ ЗАДАЧА - восстановить контекст для агента.
Это можно сделать по-разному.
И сам Курсор, кстати, дает уже для этого встроенный Summarized Composers - тоже не все знают. Просто бест практикс обращения с курсором еще не выработаны.
Для себя пошел таким путем - запилил тулзу легкую опенсорсную однофайловую. Для любых агентов.
��ИНДЕКСАТОР ДЛЯ PYTHON-ПРОЕКТОВ - https://github.com/KayumovRu/indexer-py
Там один файл
��tree_files - файловое дерево проекта
��map_definitions (самый крутой файл) - карта всех классов, функций проекта с аргументами, ретернами, и даже с комментами.
��dependencies - все зависимости проекта по файлам, включая библиотеки и импортируемые модули
��stat - статистика проекта, показывающая число папок, файлов и строк кода. Это больше для фана
Например, сейчас в одном проекте у меня такая стата:
Поддерживаются файлы и папки для игнора. В репозитории в readme есть примеры вывода по каждому файлику. И как пользоваться.
Но ок, получили данные индексатора, что дальше? Как восстанавливаем контекст агента?
А дальше:
Добавляю в README самого проекта курсора (+ в правила курсора можно) указание, что актуальную структуру проекта, зависимости, карту объектов смотри в таких то файлах.
В начале нового диалога с курсором пишу мини-промптик с описанием куда смотреть, особенно прошу смотреть на map_definitions. Пример запроса и как курсор реагирует - покажу в комменте.
Использовать подход можно с любым ИИ-агентом. Да и самому посмотреть на структуру проекта подробно с комментами и статой тоже бывает интересно и полезно.
+1 к контролю.
В общем, пробуйте, кому интересно. Тулза открытая, легкая, не выходит за пределы стандартных пакетов.
Или делитесь своими приемами и наблюдениями.
Стартаплюсь: 402 дня
#разработка #AI | #релиз@it_sabat
Больше месяца использую Cursor AI. Итоги позже еще расскажу. А сегодня про решение конкретной проблемы.
Когда вы долго используете диалог в Cursor AI, то можете заметить все больше и больше лагов. В конце концов, он начнет просто критично тормозить.
Сначала разбираемся в причине. Показал ее и последствия на приложенном скрине.
Cursor постоянно делает запись в sqlite-файл
AppData/Roaming/Cursor/User/globalStorage/state.vscdbИ делает это не при отправке ответа, а просто всегда нон-стоп с интервалом примерно в минуту-две. На скрине пример, как он пытается писать 250 Мб в сек, а на деле и больше. Диск не может это переварить, курсор начинает страшно лагать.
Как результат, во время самого диалога Курсор просто не способен периодически провести поиск в проекте, спарсить код в файлах, идет левыми долгими путями. Ожидания возрастают до десятка минут, тратятся лишние запросы.
И жалоб на официальном форуме про это много. Люди психуют, не все выдерживают
Решение простое: начинайте новый диалог почаще )
Почему не все доходят, и я сам долго до этого шел. Потому что мы хотим сохранить контекст как можно дольше. А открытие нового диалога - минус контекст, ИИ вновь видит проект как в первый раз.
Отсюда НОВАЯ ЗАДАЧА - восстановить контекст для агента.
Это можно сделать по-разному.
И сам Курсор, кстати, дает уже для этого встроенный Summarized Composers - тоже не все знают. Просто бест практикс обращения с курсором еще не выработаны.
Для себя пошел таким путем - запилил тулзу легкую опенсорсную однофайловую. Для любых агентов.
��ИНДЕКСАТОР ДЛЯ PYTHON-ПРОЕКТОВ - https://github.com/KayumovRu/indexer-py
Там один файл
indexer.py. Копируйте его себе, запускаете. Он формирует папку indexer_data, где будет 4 выходных файла:��tree_files - файловое дерево проекта
��map_definitions (самый крутой файл) - карта всех классов, функций проекта с аргументами, ретернами, и даже с комментами.
��dependencies - все зависимости проекта по файлам, включая библиотеки и импортируемые модули
��stat - статистика проекта, показывающая число папок, файлов и строк кода. Это больше для фана
Например, сейчас в одном проекте у меня такая стата:
Папок: 6
Файлов: 23
Строк кода: 7 837
Байт: 323 878
Поддерживаются файлы и папки для игнора. В репозитории в readme есть примеры вывода по каждому файлику. И как пользоваться.
Но ок, получили данные индексатора, что дальше? Как восстанавливаем контекст агента?
А дальше:
Добавляю в README самого проекта курсора (+ в правила курсора можно) указание, что актуальную структуру проекта, зависимости, карту объектов смотри в таких то файлах.
В начале нового диалога с курсором пишу мини-промптик с описанием куда смотреть, особенно прошу смотреть на map_definitions. Пример запроса и как курсор реагирует - покажу в комменте.
Использовать подход можно с любым ИИ-агентом. Да и самому посмотреть на структуру проекта подробно с комментами и статой тоже бывает интересно и полезно.
+1 к контролю.
В общем, пробуйте, кому интересно. Тулза открытая, легкая, не выходит за пределы стандартных пакетов.
Или делитесь своими приемами и наблюдениями.
Стартаплюсь: 402 дня
#разработка #AI | #релиз@it_sabat
🔥 6
👍 5
👨💻 1
7 7 317
Обсуждение 7
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram