TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
курсор в сторону

14 Sep, 07:14

Открыть в Telegram Поделиться Пожаловаться

00:06
Видео недоступно для предпросмотра
Смотреть в Telegram
Как сжечь токены за 15 минут и получить дозу дофамина

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

Агенты для этого подходят на удивление хорошо, а регулярный аудит как раз из тех повторяющихся задач, которые автоматизируешь первыми. Эксперимент я запустил сразу на пяти репозиториях и, чего мелочиться, одновременно. Задача же однотипная))

Но на большой кодовой базе агент же будет пропускать код, и как это блин вообще проверить?

Поискал, как это решают другие, и нашёл RepoAudit, LLM-агента для аудита целых репозиториев. Авторы пишут, что контекст и галлюцинации портят отчёт. На деле агент выдаёт уверенный текст и молча пропускает половину кода. То есть легко получить отчёт с базовой информацией, что проект на React 19 и TypeScript, стили на SCSS, и всё, идите к клиенту, пускай платит деньги, но это он может посмотреть и сам.

RepoAudit и не пытается прочитать всё. Агент берёт место, где данные приходят извне (запрос, форма, файл), и идёт за ними по коду до места, где они реально что-то ломают. Например, строка из формы без проверки попадает в SQL-запрос. Находки перепроверяет валидатор. На 15 проектах так нашли 40 подтверждённых багов с точностью 78%, в среднем за 0,44 часа и $2,54 на проект.

Я пошёл прямолинейнее, через доказуемое покрытие. Сначала агент прогоняет линтер, проверку типов, тесты и сборку, если они уже настроены. Потом код режется на скоупы под размер контекста, и субагент читает все файлы своего скоупа, перечисляя, что открыл. Из этих списков собирается ledger, журнал покрытия, где видно, какой файл открыт, какой пропущен и почему.

Проверяет субагент семь категорий (выделил для себя столько, можно расширить или сузить от потребности).
– Корректность. Что сломается на пустом ответе API или граничном значении там, где считаются финансы и распределяются доступы.
– Безопасность. Не лежат ли в репе ключи и проверяет ли эндпоинт права, а не только логин.
– Архитектура. Циклические зависимости, дубли и мёртвый код.
– Тесты. Покрыты ли расчёты и не падают ли тесты через раз.
– Производительность. Запросы к базе в цикле и выборки без пагинации.
– Зависимости. Пакеты с известными уязвимостями.
– Документация. Поднимется ли проект у нового человека по README.

Около 3700 файлов агент нарезал на скоупы и запустил 15 субагентов параллельно, каждому досталось от 150 до 650 файлов. Шкала лимитов бежала быстро, как установка небольшого приложения на пк. Несколько субагентов упали и перезапустились с нуля, а один раздал свои 400 файлов собственным субагентам, и его работу доделывали остальные.

В итоге все проверки прошли, на работу агентов ушло около 15 минут. В самом большом репозитории на 1571 файл все 662 теста зелёные, но выяснилось, что тесты покрывают меньше 10% кода, а в коде 358 скопированных кусков. Набралось 52 находки со сценариями поломки, 10 из них уровня medium и покрытие 100% по файлам, вот тут я получил порцию дофамина.

Вернёмся к расходу токенов, у которого причина структурная. Каждый субагент живёт в своём контексте и оплачивает свои 400 файлов отдельно. RepoAudit дешёвый как раз потому, что не читает всё подряд. Упавший агент теряет всё прочитанное, и перезапуск оплачивает ту же работу второй раз.

Поэтому после прогона оптимизировал расход. Агент ищет подозрительные места, например пустой catch или прямой SQL запрос, а ещё сразу читает целиком всё про авторизацию и внешние интеграции. Так целиком читается примерно каждый восьмой файл, а сгенерированный код не трогается вовсе. Агенты идут волнами по 3–5, отчёт дописывается каждые 20–30 файлов, чтобы упавший агент не читал всё заново, а делегировать чтение запрещено. Полное чтение всё равно стоит денег, поэтому в начале скилла теперь предупреждение, во что обойдётся запуск. После повторного прогона разница сократилась в 2-4 раза.

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

#ai

94 0 1 3
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot