avatar
IT Sabbatical • Стартаперская
@it_sabat
17.03.2025 16:24
Как решал проблему с жесткими лагами Cursor AI

Больше месяца использую 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