Как устроен агент в BAS фулл гайд

Articles
  • Агент и модуль AI в BAS

    Если удобнее смотреть, всё это есть у меня в видео на ютюбе: интерфейс агента с 4:05, ну а как он работает под капотом с 56:16

    Все материалы к ролику лежат у меня в тг-канале, залетайте: t.me/mustangbas

    План

    1. Интерфейс агента
      • Два режима работы Fast и Thorough
      • Как работают бэкапы
      • Как прочекать какие изменения сделал агент
      • Как скинуть лог разрабам
    2. Как агент работает под капотом
    3. Возможность писать код руками в Code Editor
    4. Откуда агент берёт инфу про модули
    5. Что агент пока не умеет
    6. Вывод

    Интерфейс агента

    Начнём с интерфейса агента и того, как он в целом сделан. Все фичи, которые тут есть, я собрал на схеме:

    Все функции интерфейса агента: запрос, чаты и лог, что сделал агент, инструменты

    На стартовом окне есть Tutorials & example prompts, там собрано реально много готовых промтов под разные задачи. Ну и есть бургер-меню, в нём новый чат, история, Code Editor и настройки

    Стартовое окно агента: бургер-меню, туториалы и поле ввода

    Два режима работы Fast и Thorough

    Переключатель режима в поле запроса, сейчас стоит Thorough

    • Fast: тут агент свою работу чекает не так тщательно, весь проект целиком не разбирает и старается побыстрее выдать результат. Этот режим для быстрых и лёгких задач, которым не нужен какой-то глубокий анализ
    • Thorough: тут агент проверяет проект намного тщательнее, поэтому и времени всё это занимает дольше. Это режим для тяжёлых задач, где нужна более тщательная работа: проект с нуля, какая-то большая новая фича или большие изменения в проекте. Если понятно, что задача уже хотя бы средней тяжести, то берём именно Thorough. Я его в целом юзал где-то в 80 или 90% своих запросов

    Как работают бэкапы

    Бэкап агент делает всегда, даже если я у него просто спросил, что он умеет. В чате это отдельные строчки с именем файла, и на запрос с изменениями их по сути два:

    • бэкап до изменений: тут проект ровно такой, каким был перед запросом
    • бэкап после изменений: тут уже проект с правками агента

    Два бэкапа вокруг одного запроса: до изменений и после

    Чтобы откатиться, надо нажать на строчку бэкапа. BAS при этом перезапустит проект, и браузер со всем состоянием потеряется. Дальше по шагам:

    1. Нажимаем OK
    2. В окне ресурсов жмём Enter
    3. Ждём пока проект запустится

    Между этими двумя бэкапами можно ходить в обе стороны. Я попросил добавить в самое начало лог Agent Backup и потом проверил, как это вообще работает:

    • откатился на бэкап до изменений, и лога в проекте просто не стало
    • вернулся на бэкап после изменений, и лог Agent Backup вот снова на месте

    Слева проект после отката без лога, справа после возврата на поздний бэкап

    Как прочекать какие изменения сделал агент

    Под каждым ответом есть три вкладки: Changes, Timeline и Statistics

    Вкладка Changes: в функцию Main добавился новый лог

    Changes показывает, что конкретно агент поменял в коде, прям по строчкам: зелёным добавленные строки, красным убранные. У меня добавилось четыре строки и убралась одна, и в этих строках как раз новый лог в Main

    В Timeline можно глянуть вообще все шаги агента по порядку:

    • запрос и бэкап
    • что решала модель
    • какие функции он смотрел
    • какие правки внёс
    • что в итоге ответил

    Например, когда агент чинил Rabby Wallet, тестов там была прям огромная куча. Он реально работал до конца, пока не поправил ошибку, ну и проект он в итоге доделал

    Вкладка Timeline: все шаги агента от запроса до ответа

    В Statistics можно посмотреть время, токены, модель, и в целом тут содержится вся инфа про наши запросы

    Вкладка Statistics: время, обращения к модели, токены и модель

    Ну и если ответ получился кривой, его можно отметить кнопкой Report a bad generation, и отчёт уйдёт разрабам

    Как скинуть лог разрабам

    Кнопка лога открывает весь диалог, и его можно скачать zip-архивом и скинуть разрабам, если нашёлся баг

    Кнопка скачивания полного лога диалога

    Как агент работает под капотом

    Если открыть адрес агента https://ai.bablosoft.com:5500/ в обычном браузере, откроется, кстати, тот же самый агент. То есть в BAS он сделан через веб-интерфейс. Просто в браузере он ни к чему не привязан, про проект ничего не знает и на запрос толком ничего не ответит

    Сам агент решений не принимает, он по сути передаёт на сервер разработчиков сам запрос и данные проекта:

    • действия
    • ресурсы
    • состояние браузера
    • логи
    • и даже бэкапы

    Дальше всё идёт по кругу, пока задача не готова:

    1. Сервер решает, что делать дальше, и по сути отдаёт агенту следующий шаг
    2. BAS уже на компе читает проект, меняет его и запускает
    3. Что получилось, снова уходит на сервер

    Как агент работает под капотом: решает сервер, читает и меняет проект BAS на компьютере

    Получается, мозг всей этой работы находится на сервере разработчика. Что конкретно там происходит, мы не знаем. Скорее всего, там стоят какие-то скилы и система, которая уже и решает, что нужно делать и как, и взаимодействует с агентом

    Дорабатывает это всё сам разработчик, и заложить в агента свои данные или правила мы никак не можем

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

    Возможность писать код руками в Code Editor

    Code Editor открывается из бокового меню, и это вещь вообще отдельная. Тут код пишется руками, и агент его никак не обрабатывает, он к этому окну, как бы, отношения не имеет. После Accept code или Ctrl+Enter BAS превращает каждый вызов функции в обычное действие проекта

    И это, короче, совсем не обычный JavaScript. Разработчик в шапке редактора прямо расписал, что можно и что нельзя:

    Шапка Code Editor: что можно и чего нельзя писать

    Если коротко, тут нельзя:

    • объявлять свои функции и стрелочные функции
    • юзать методы строк и массивов, вместо них по сути берутся функции BAS: ParseStringToList вместо .split, AppendElementToList вместо .push, find_substring вместо .indexOf
    • писать шаблонные строки и async/await

    Писать тут надо на ES5, если написать на ES6, он такой код просто не примет. Поэтому если код пишет нейронка, ей стоит скинуть эту шапку как контекст. И я бы ещё добавил, что ей надо отдельно написать про ES5, потому что новые методы тут не поддерживаются

    В шапке, кстати, среди переменных указан и let. Он как раз из ES6, поэтому переменные объявляем через var

    Пример разработчика я вставил как есть, и в проекте появились те самые действия: загрузка Google, поиск, клики по селекторам

    Ещё момент с комментариями. Если над строкой написать комментарий через //, он станет подписью действия

    Откуда агент берёт инфу про модули

    В Reference, она же Ctrl+J, можно посмотреть по сути всю документацию по модулям BAS

    Кнопка Reference и список модулей BAS с поиском

    Агент он на эту документацию и опирается. Описания модулей и действий он отсюда и берёт, и уже с их помощью собирает проект

    Ну и для самого Code Editor тут у каждого действия есть параметры, что оно возвращает и примеры, и кнопка Insert into editor сразу вставляет пример в редактор

    Действие из Date and Time: параметры, результат, примеры и кнопка вставки

    Пользовательские модули агент, кстати, тоже видит. Плюс если агент написал код с модулем, который в BAS не активирован, BAS предложит его активировать

    Что агент пока не умеет

    Что агент пока не умеет: вложения, несколько проектов сразу, автоподтверждение и очень большие задачи, и как с этим быть

    Вложения я проверял сам: перетащил картинку со второго экрана прямо в окно, и агент с ней ничего сделать не смог, ну и после этого ещё пришлось закрывать окошко агента и открывать заново. Про другие проекты я у него тоже прямо спросил, и он сам ответил, что видит только тот, который сейчас открыт в редакторе

    Вывод

    Если честно, сначала я думал, что агент ещё сырой и во многих местах будет работать плохо. Уже после второго проекта понял, что сильно ошибался

    Что по итогу по самой работе:

    • логику он в целом делает достаточно хорошо, есть только небольшая проблема, что иногда он делает больше кубиков, чем нужно
    • селекторы пишет хорошо, с динамическими сайтами тоже нормально справляется
    • все проекты, с которыми я работал, в итоге были выполнены. В проекте на 6500 действий мы не доделали некоторые задачи, просто у меня было мало времени

    Сделан он вообще хорошо, и самое приятное, что он реально бесплатный. Ничего не стоит, просто пишем промт, и он всё делает

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

    Короче, инструмент очень хороший. Я каждому советую переходить больше на нейронки и не писать код руками. Лучше писать хорошие промты и давать агенту как можно больше базы, то есть по факту надо просто хорошо составить техническое задание

    Где-то, может, придётся что-то подсмотреть и подсказать ему, как писать код. Ну это всё тоже со временем допилится