Уперся в лимит аперолей за пять часов, приходится писать пост В последние пару недель до отпуска много оптимизировал своего любимого скилл-бейст-агента нашего контура, который отвечает на разные вопросы, от продукта до разработки. Сейчас это довольно лаконичный агент, у которого есть около 10 скиллов - умеет видеть наши задачи, коммиты, раскатку по странам, ходить в БД, анализировать эксперименты итд, уже прям хороший помощник. Плюс два файла, связывающих все воедино: AGENTS.md, там личность агента, его назначение, правила. И PLAYBOOK.md, в нём карта маршрутов по всем скиллам и few-shots примеры. Но чем больше становится у него скиллов, тем больше глюков. А иногда он не понимает контекст полностью как человек, хотя мозги там 5.6 Sol. Попадаются тупняки типа "что делал Остриков на этой неделе?", он отвечает просто по тикетам, забывая проверять влитые в транк ПР. Короче, тюнить его становится всё сложнее. Вот три приёма, которые помогают в этом: 1. Пишите все логи Простите за базу, 100% все и так это знают. Но тем не менее - без логов улучшать агента можно лишь по картам Таро (привет победителям хакатона Туту!) В логах должны быть: сообщения и пользаков и агента, ID-шники сообщений по которым шёл реплай в телеге, все tool calls, параметры которые улетали в них и возвращаемые значения, кол-во токенов, время отправки сообщений и тайминги ответа модели. Можно не париться с LangFuse, просто сложите всё это себе в БД или в файлы под ноги. 2. Собирайте фидбек прям из диалогов Когда бот тупит, следующим сообщением ему пишите, что он сделал не так и как исправиться: - Что делал Остриков на этой неделе? - У этого бездельника два открытых тикета и больше ничего - На таком вопросе всегда также проверяй движ в ПР - Понял, вижу - он ещё замержил 5 ПР про нового агента, а по двум его засыпали комментами И приучите так делать всех пользователей. Хитрость вот в чем, раз в пару дней вы даёте агенту задачу, типа такого: - Прочитай все диалоги агента, прочитай фидбек который давали пользователи. Там, где он был конструктивный предложи улучшения скиллов, чтобы агент сразу отвечал правильно. Фидбек Коли игнорируй, он мудак Затем вы получаете результаты, внимательно их отсматриваете и обновляете скиллы на новую версию. Можно это все собрать в некий цикл самоулучшающегося лупа, но без человеческого контроля будет у вас залупа. 3. Проверяйте траектории ответа на вопрос Уверен, вы сами знаете, что в каком порядке агент должен дернуть, чтобы дать ответ на вопрос. Но дело в том, что llm часто усложняют эту логику и добавляют лишние шаги. Например, в простом вопросе про включеные эксперименты за вчера, агент может вместо проверки API экспериментов, пойти еще проверять закрытые тикеты. Тут нет никакой магии. Для начала я прикрутил удобный визуал отслеживания прогресса прямо в telegram, это сообщение постоянно редактируется и видно как агент думает и что делает: 🤔 Думаю… 🧩 Скилл «DataLens» — изучаю инструкцию 📊 DataLens — получаю данные отчёта 🔎 Intrasearch — ищу внутренние материалы 🧩 Скилл «Аналитика экспериментов» — изучаю инструкцию Тут например видно, что он зря использовал Intrasearch, это вообще не в тему. Поднимаете логи, расковыриваете эту сессию и смотрите где агент пошёл зарываться. Потом упрощаете инструкции, добавляете пример итд. Плюс в целом, если он на простой вопрос отвечает слишком долго, тоже ковыряйте и разбирайтесь. Много интересного всегда вылезает на кросс-пересечении нескольких скиллов, когда вопрос затрагивает три-четыре штуки. Anyway, все эти приемы далеки от промышленных sota решений по авто-улчшению скиллов, но они работают. Окейюшки, пока писал пост апероль-лимит снялся, убегаю. Пока!