@rameezkhank557
If you didn’t understand the explanation, it’s just that there’s too much to explain.
Update bas to the latest version and ask the agent to do this.
Если задерживается конкретный сервер, проверяйте его ответы и лимиты соединений
Если одновременно замирают независимые потоки нужен минимальный пример для разработчика BAS с общей временной шкалой
You can buy Notletters/Tuta accounts in our bot using the link below
TG bot: https://t.me/Raccoonstockbots
Channel: https://t.me/Raccoon_off
Contact: https://t.me/changreta
Купить аккаунты Notletters/Tuta вы можете в нашем боте по ссылке ниже
TG bot: https://t.me/Raccoonstockbots
Channel: https://t.me/Raccoon_off
Contact: https://t.me/changret
@yetiarmynft update actions and copy all of them in new blank project
Состояние сети за 24 часа
image.png
coldsmsbot.t.me - удобный сервис для приема смс
coldvpnebot.t.me - надежный впн с обходом бс
https://coldvpn.vitrinka.net - сайт впн с обходом бс
Статистика по приходу смс на сервис Alibaba / 1688 / alipay за 24 часа
image.png
coldsmsbot.t.me - удобный сервис для приема смс
coldvpnebot.t.me - надежный впн с обходом бс
Мы рады всем клиентам!
Сегодня у нас обновления названий некоторых услуг, а также добавление новых!
Наша SMM-панель: smmpanelus.com/
Сервисы для раскрутки социальных сетей: smmpanelus.com/services
Free Trial
I offer a free trial for new clients so you can evaluate the service before making a purchase
100 Mbps - $14.99/day · $59.99/wk · $174.99/mo
250 Mbps - $34.99/day · $149.99/wk · $399.99/mo
500 Mbps - $69.99/day · $274.99/wk · $749.99/mo
1 Gbps - $124.99/day · $449.99/wk · $1,249.99/mo
🎁 FREE TRIALStart @proxiesfoodbot and get your FREE trial in ONE click!
📞 CONTACTWebsite: proxiesfood.com
Bot: @proxiesfoodbot
Channel: @proxiesfood
Support: @proxiesfoodsupport
Агент и модуль AI в BAS
Если удобнее смотреть, всё это есть у меня в видео на ютюбе: как я писал промт для парсера стима с 20:19, ну и разбор, из чего вообще собирать промт, с 28:58
Все материалы к ролику лежат у меня в тг-канале, залетайте: t.me/mustangbas
План Что будет с неправильным промтом Как правильно собирать промт Как я писал промт для парсера стима Что агент сделал по этому промту Что делать если непонятно как правильно составить промт Вывод Что будет с неправильным промтомЛюди привыкли писать нейронке маленький промтик в пару строк. Большие фронтир-модели в этом плане сделаны хорошо: какую-то часть работы они могут доделать и сами. Ну и к ним ещё можно поставить скилы, которые будут сами расспрашивать по проекту
Додумывать при этом будут и фронтир-модели. Чего мы им не сказали, они просто решают за нас, и так, на самом деле, работают вообще все модели. Если промт плохой, ошибаться в любом случае будут даже они, и проект, короче, может получиться не таким, как хотелось
Вот пример с парсером стима. Я прямо написал, что на каждую категорию нужна отдельная папка с файлом .csv. Если бы я этого не написал, он вполне мог бы сохранить всё в один большой текстовик, и разбирать такое было бы максимально неудобно
Поэтому промт лучше собирать по нескольким правилам, их я дальше и распишу
Как правильно собирать промтЧетыре части промта и как они легли в мой промт для парсера стима
Чтобы агент всё понял, в промте по шагам должны быть четыре части:
Контекст: что это за проект и что он вообще делает. То есть буквально рассказать, что делает проект и что в нём есть. Этот шаг ещё и типа страховка: если в других пунктах где-то оплошать, агент хотя бы как-то сможет всё сопоставить Что нужно сделать: сама задача, прямо и по шагам. Если она размытая, агент, по сути, запросто уйдёт куда-то не туда Что должно получиться: какой результат нужен на выходе. Формат лучше прям расписать, иначе агент сам решит, куда и как всё сохранять Что нельзя менять: это уже для готового проекта. Тут можно чисто запретить агенту трогать какое-то действие или настройкуПервые три пункта это основа, от них, в целом, и зависит, хороший промт получится или нет, ну и следом хороший результат
Почему расписывать надо так подробно. Модель она не знает, что у нас в голове. Всё, чего нет в промте, она либо додумает сама, либо, и так бывает чаще, просто не сделает. Тем более модель у агента стоит не самая топовая, так что всё нужное тут прям обязательно дорасписывать
Как я писал промт для парсера стимаПеред тем как что-то писать, я зашёл на страницу скидок стима и чисто глянул, как она устроена. Кнопку Show More, которая подгружает ещё игры, я решил объяснить отдельно, агент на ней вполне мог запутаться
Сам промт я надиктовал голосом, чтобы агент сделал мне проект. В итоге туда ушло:
ссылка на страницу и просьба её проанализировать формат данных Name Game|Discount|Price на каждую категорию отдельная папка, ну и в ней .csv ресурс с фильтрами и три категории, которые потом в целом можно поменять что делать с кнопкой Show MoreМой промт для парсера стима: формат данных, папка на каждую категорию, фильтры, категории и кнопка Show More
Что агент сделал по этому промтуРесурсы он собрал прям по промту, и подсказки к полям даже сам накидал
Ресурсы, которые агент сам добавил по промту: три категории и фильтр с подсказками
Когда он тестил, то выбрал Video Production и нажал ту самую кнопочку Show More, которую я прописывал. В итоге получились три папки, в каждой CSV, и все игры в том формате, который я указывал
Многопоточность я в промте не указал, и агент сделал всю работу в один поток, просто через циклы
На авторизации в стиме я отдельно писал, чтобы получение отпечатка он сделал в цикле While с обработкой ошибки. Он это реально сделал, ровно так, как я написал
Цикл с повторными попытками получить отпечаток, который я прямо попросил в промте
Там же я указал папку со всеми данными для ресурсов, и агент он сам всё по полям расставил
Что делать если непонятно как правильно составить промтБывает, что непонятно, как правильно составить промт или как вообще реализовать проект. Тогда можно попросить агента сначала написать план, как он видит ситуацию, и уже по нему решать, что делать дальше
На большом проекте другого разработчика в 6500 действий я так и сделал. Обрисовал агенту, по сути, всё, что хочу:
разложить всё по функциям убрать повторы подписать действия по-русски предложить функциям нормальные именаМенять сам проект я пока не просил, ждал от него чисто план, как это можно реализовать
Попросил агента посмотреть проект и предложить план, как навести в нём порядок, ниже начало его плана по этапам
План он прислал прям здоровенный, разбитый на этапы, от удаления неиспользуемого кода до переименования функций. Всё сразу я делать не стал, взял из плана три задачи и уже их отдал агенту
ВыводПолучается, чем больше в промте контекста, описания задачи и своих идей, как это реализовать, тем лучше потом выходит проект
Если расписывать всё это реально тяжело, всегда можно чисто спросить у самого агента: как это реализовать, какой он видит выход, какой промт ему написать. Проект агент и так видит, так что ответ он в целом сможет дать
Кстати, легко разочароваться в самом инструменте, когда ему по факту просто не дали нужных данных. С первого промта идеально всё равно не выходит, любая модель ошибается, так что ошибки в любом случае приходится объяснять и исправлять
Агент и модуль AI в BAS
Если удобнее смотреть, всё это есть у меня в видео на ютюбе: профиль стима с 2:08:56, ну и проект AI Room с 2:17:36
Все материалы к ролику лежат у меня в тг-канале, залетайте: t.me/mustangbas
План Профиль стима через запрос в чат Проект AI Room Вывод Профиль стима через запрос в чатЗа основу я взял проект авторизации в стиме, который до этого сделал агент: он входил в аккаунт и ставил аватарку. Его я решил доделать, и попросил агента, чтобы бот ещё:
заполнял весь профиль, страну ставил США ну и генерил имя профиля, настоящее имя и описание через запрос в чат из модуля AIТо есть раньше бот трогал в профиле, по сути, одну аватарку. Теперь он должен был заполнять профиль стима уже полностью, со всеми полями
Что бот делает в профиле стима: что было в проекте авторизации и что агент дописал с модулем AI
Короче, агент вынес всё это в отдельную функцию FillSteamProfile. Внутри неё три запроса в чат идут по очереди:
Имя профиля, то есть ник, который видят другие Настоящее имя Описание профиляКаждый ответ модели бот сразу вставляет в нужное поле. Страну, регион и город он ставит уже обычными действиями, без модели
Промты к этим запросам агент, кстати, тоже написал сам. Для описания, например, попросил короткий текст на английском в 2 или 3 предложения, до 280 символов, без эмодзи и хештегов, ну и только само описание без всяких вступлений
Когда агент всё доделал, я запустил проект, и профиль реально заполнился полностью. Так что задачу он выполнил, я считаю, на все 100%
Регион, город и Custom URL агент, кстати, докинул уже от себя, я просил только страну
Профиль после запуска: страну я просил, регион и город агент добавил сам, ниже описание от модели
Проект AI RoomТут я хотел задействовать все действия модуля в одной системе. Есть сайт с чат-комнатами, и у бота два режима:
Создать комнату и написать туда пару сообщений, плюс голосовое на ту же тему Зайти в комнату по сохранённой ссылке, ответить на сообщения по смыслу, ну и поставить подходящую реакциюДействия модуля я сначала настраивал руками и только потом отдавал логику агенту. Если ни разу самому это не настроить, непонятно, какие тут вообще пределы и как потом нормальный промт агенту составлять
Два режима AI Room: где работает модуль AI и где обычная логика проекта, которую написал агент
Первый режим по задумке работает цепочкой:
Запрос в чат в режиме Continue chat придумывает какую-то бытовую тему и пишет по ней три сообщения Второй запрос в том же чате пишет, по сути, текст для голосового по той же теме Модель озвучки превращает этот текст в голосовое Бот создаёт комнату и отправляет туда сообщения и голосовоеМоделей тут понадобилось две: текстовая и модель озвучки, её я нашёл в OpenRouter по тегу Speech
Тут я накосячил: оба запроса писали ответ в одну переменную, и текст для голосового затёр реплики. Переименовал переменную, и всё заработало
С озвучкой через модуль не вышло, ответ пришёл пустой. Модель ждёт запрос в другом виде и отдаёт аудио через другой API, ну и нужных параметров модуль в запрос не передаёт. Так что эту часть я отдал агенту, и минут через 10 он сделал отдельный HTTP-запрос, после которого в папке появился MP3
Кусок функции озвучки, которую написал агент: если запрос прошёл, аудио из base64 записывается в MP3
Для второго режима сначала надо достать переписку, это как раз извлечение данных из браузера. Вернулся, по сути, массив объектов, у каждого сообщения автор, текст, время и направление. Голосовое пропущено, как я и просил
Что вернуло извлечение: автор, текст, время и направление каждого сообщения, голосовое пропущено
Тип я тогда поставил string_list. По коду массив объектов он уже не пропустит, так что под такую переписку нужен object_list
Дальше переписка уходит в запрос в чат, и модель отвечает человеку по смыслу. Сначала я вставил в промт не ту переменную, и модель просила прислать ей историю. С правильной переменной ответ пришёл осмысленный: человек писал про кофе в новом месте, и модель спросила, ну как ему этот кофе
Обычным способом пришлось бы заранее заготовить сотку диалогов. Тут по факту два действия, и всё бесплатно
Реакцию ставит задача в браузере, логику кликов вокруг неё, кстати, написал агент. Он передаёт в задачу одно случайное сообщение собеседника, и модель выбирает под него эмодзи
На первом общем запуске сайт выкинул из аккаунта, и поток упал. Агент чинил это где-то полтора часа, и со второго раза всё отработало: комната с тремя сообщениями и голосовым на 14 секунд, плюс ответ из второго режима
Итог: три сообщения и голосовое на 14 секунд, ниже ответ из второго режима
Последним шагом задача в браузере нашла реакцию по слову coffee, это прям подходит под тему разговора
Задача в браузере ищет реакцию по слову coffee
ВыводВ целом модуль мне, честно, понравился. В AI Room я задействовал все его действия и две модели, одну на текст, вторую на озвучку, и всё это бесплатно. Получился реально живой диалог. Если бы мне скинули ссылку на такую комнату, я бы честно не отличил, писала это нейронка или живой человек
Не хватило мне, по сути, одного: аудио через модуль не получить, его пришлось генерить отдельным HTTP-запросом. В любом случае у модуля, я считаю, есть будущее
Годится он под узкие задачи, где всё динамическое и алгоритм просто так не прописать. По тому, что я на нём делал, это, например:
ответы клиентам и собеседникам, которые могут написать что угодно уникальные тексты под каждый аккаунт: имена, описания профиля, сообщения живая переписка между ботами в чатах и комнатах, по сути с продолжением темы выбор по смыслу прямо на странице, типа реакции под сообщение, где заранее непонятно, что кликать вытаскивание данных со страницы сразу в нужном виде, ну если вёрстка у сайтов разнаяВот вокруг таких мест автоматизацию на модуле AI и можно строить
Агент и модуль AI в BAS
Если удобнее смотреть, всё это есть у меня в видео на ютюбе: настройка модуля AI с 1:49:37, ну и OpenRouter с 2:03:00
Все материалы к ролику лежат у меня в тг-канале, залетайте: t.me/mustangbas
План Что умеет модуль AI Настройка модуля Три основных поля Дополнительные настройки Капча и SMS Действие запрос в чат Действие задача в браузере Действие извлечение данных из браузера Как подключить бесплатную модель через OpenRouter Вывод Что умеет модуль AIАгент пишет логику проекта. Модуль AI работает с внешней моделью прямо во время запуска, и, если коротко, на практике он может, в целом, вот что:
генерить тексты прямо во время работы скрипта, типа имени и описания профиля или ответа клиенту, который может написать что угодно вести переписку с продолжением истории, то есть модель помнит прошлые сообщения этого чата принимать файлы вместе с промтом и сохранять файлы из ответа в папку скрипта сам кликать по сайту там, где алгоритм заранее не написать, ну и по ходу решать капчу, принимать SMS и коды 2FA через подключённые сервисы читать и писать файлы в рабочей папке, ну если ему это, конечно, разрешить вытаскивать со страницы данные сразу в нужном виде, по сути: строкой, числом, списком или объектомНу и всё это делается четырьмя действиями:
Настройка: провайдер, модель и токен. Она всегда идёт первой в проекте, без неё остальные действия по коду просто остановятся с ошибкой Запрос в чат: отправить модели текстовый промт и получить в ответ текст Задача в браузере: дать модели задачу, чтобы она сама её прям в браузере сделала Извлечение данных из браузера: достать со страницы какую-то инфуКак работает модуль AI: проект доходит до действия, модуль отправляет промт и данные модели, BAS выполняет её ответы, итог сохраняется в переменную
По подсказке в BAS настройка действует в своём потоке, так что у каждого потока может быть свой провайдер, модель и токен. Если вызвать её ещё раз посреди скрипта, она переключит провайдера или модель
Настройка модуля Три основных поля AI provider: сервис, через который идёт обращение к моделям. Там можно, в целом, подключить что угодно, начиная от локальной машины и заканчивая Anthropic Token: API-ключ этого сервиса Model: сама модель. Список показывает только популярные модели, так что если нужной там нет, её просто вписываем рукамиНастройка модуля AI: провайдер, токен и модель, ниже дополнительные настройки
Дополнительные настройки Endpoint: свой адрес API, например локальной LLM. Ну или провайдера, которого в списке нет, с API как у OpenAI Temperature: около 0 ответы строгие и похожие, ближе к 1 они уже, по сути, разные и творческие Max tokens: максимальный размер ответа, я его вообще не трогаю Thinking: уровень размышления. low для простых задачек, high для тяжёлых, ну и auto стоит изначально System prompt: постоянная инструкция для модели, типа всегда писать на русском. По подсказке он уходит только в запрос в чат Extra headers: служебные HTTP-заголовки, мне они вообще не понадобились Капча и SMSТут выбирается сервис капчи (RuCaptcha, 2Captcha, Anti-Captcha) и сервис SMS, ключ и страна номера. Работает это, кстати, только в задаче в браузере и в извлечении данных
Плюс в проекте должно стоять хотя бы одно действие нужного модуля, например ReCaptcha или PhoneVerification. Можно прям в функции, которая никогда не вызывается, иначе BAS не включит модуль в сборку. Сам я капчу и SMS через модуль не пробовал
Действие запрос в чатЭто по сути обычное общение с моделью, как в окне чата. Режимов два:
New chat: каждый раз с нуля Continue chat: модуль отправляет сохранённую историю, и ответ продолжает разговорЗапрос в чат: новый чат или продолжение старого, ниже переменные с ответом, историей и статусом
Ответ падает в AI_REPLY, история в AI_CHAT_HISTORY. Ошибки лимита, оплаты или сети поток не роняют, просто AI_SUCCESS становится false, так что это лучше сразу проверять
Действие задача в браузереТут модели ставится задача прямо в браузере: кликнуть на поле, написать текст, что-то подтвердить. Вариантов, что ей поручить, реально море
Доступ к файлам у неё по уровням:
disable: доступа нет read: только читать, стоит по умолчанию write: создавать и править, удалять нельзя full: плюс удаление, без отменыЗадача в браузере: уровни доступа к файлам и поле рабочей папки
Я бы крайне не советовал давать модели доступ ко всей файловой системе, там может просто случиться беда. Если поле рабочей папки пустое, доступ открыт везде, так что папку ставим всегда, когда модели вообще нужны файлы
Лимиты задачи в браузере: 100 шагов, 600 секунд и 3 попытки, ниже переменные с результатом
По умолчанию у задачи 100 шагов, 10 минут и 3 попытки. Если модель сама решила, что задачу не сделать, действие проходит без ошибки, и это видно по AI_TASK_ACCOMPLISHED. Ну и если кончились шаги, время или попытки, действие просто падает с ошибкой
Действие извлечение данных из браузераЭто действие достаёт со страницы какую-то инфу, условно список цен или товаров. Тип ответа выбирается в поле проверки данных, там есть и строка, и число, и список, и объект
Извлечение данных: тип, в который модуль проверяет ответ модели
Данные падают в AI_EXTRACTER_DATA, в коде она реально так и написана. Если модель вернула не тот формат, действие останавливается с ошибкой
Ну и тут можно накосячить. Объект результата пишется в ту же AI_TASK_RESULT_OBJECT, что и у задачи в браузере. Если в проекте стоят оба действия, результат одного затрёт другой
Как подключить бесплатную модель через OpenRouterПочти все сервисы просят подписку или пополнение. OpenRouter это, по сути, агрегатор моделей, и там есть бесплатные модели с лимитом запросов. Подключается так:
Зарегистрироваться на OpenRouter и сразу скопировать ключ, потом его уже не посмотреть
Зайти во вкладку Models и в фильтре Prompt pricing поставить FREE, тогда в списке останутся, по сути, только бесплатные модели
Фильтр цены промта на FREE: в списке остаются только бесплатные модели с ценой $0
Выбрать подходящую модель. Выбирать можно по-разному, смотря под какую задачу, условно для текста есть отдельные текстовые модели
На странице модели скопировать её имя, там для этого есть кнопочка рядом с ним
Страница модели: кнопка рядом с именем копирует его для поля Model, сверху предупреждение, что промты может хранить провайдер
Ну и в настройке модуля поставить провайдер openrouter, вставить имя модели и токен
На бесплатном аккаунте лимит 50 запросов в сутки и 20 в минуту. Если закинуть 10 долларов, будет уже 1000 в день
Бесплатная модель намного слабее передовых, и промты с ответами, как видно на странице, может хранить провайдер. Так что пароли, куки и любые секретные данные в такие промты не пишем
ВыводВ целом модуль мне, честно, понравился. Работает он нормально, и задачи с ним реально можно решать
Модуль AI, как по мне, штука для узких задач. Он нужен там, где модели надо именно подумать, типа ответить клиенту, который может написать что угодно
Для таких штук, как описания профиля, хватает даже бесплатной модели через OpenRouter, ну если не отправлять ей ничего секретного
Агент и модуль AI в BAS
Если удобнее смотреть, всё это есть у меня в видео на ютюбе: все проекты с агентом с 20:19, ну и большой проект другого разработчика с 1:18:22
Все материалы к ролику лежат у меня в тг-канале, залетайте: t.me/mustangbas
План Какие проекты я делал с агентом Парсер стима Парсер Dribbble на запросах Авторизация в стиме Исправление Rabby Wallet Проект другого разработчика на 6500 действий Вывод Какие проекты я делал с агентомДелал я их от простого парсера до проекта другого разработчика на 6500 действий. Короче, вот сначала общая картинка: сколько вышло действий, сколько ушло промтов и где он споткнулся
Пять проектов агента: цифры, что получилось и где он споткнулся
Парсер стимаПервый проект это парсер скидок стима: три категории, фильтры и на каждую категорию своя папка с CSV. Всё это ушло в один промт
На проверке агент сам прогнал проект в режиме запуска и увидел, что в папке две категории из трёх. Дальше он запустил отладку и полез искать, почему одна пропустилась, ну и дебажил, пока всё не заработало
Лог во время проверки: агент сам увидел, что одна категория пропущена, и полез разбираться почему
Действий вышло 114, лишнего там хватает, плюс он зачем-то создаёт отдельные переменные под селекторы. Скрипт я при этом вообще не трогал. Руками такой парсер на динамических селекторах писать, наверное, час или два
Парсер Dribbble на запросахТут нужен был парсер Dribbble через HTTP, который:
заходит в каждую тему и сохраняет картинки держит лимит картинок проверяет блокировки работает в несколько потоковПервая версия вышла не совсем на запросах. Агент открывал сайт в браузере, забирал куки и только потом собирал ссылки через HTTP. Прокси для запросов он, кстати, добавил сам, я его об этом вообще не просил
Вторым промтом я попросил убрать браузер совсем. Для теста поставил 16 картинок, вставил прокси и очистил папку. Картинки начали качаться, и браузер при этом ни разу не открылся
Картинки Dribbble падают в папку прямо во время запуска, браузер при этом не открывается
На весь парсер ушло около 30 минут и два промта, действий вышло 111
Авторизация в стимеТут уже всё в куче:
браузер HTTP-запросы модуль Authenticator для Steam Guard платный отпечатокПо сути бот должен войти в аккаунт по логину с паролем или через maFile, скачать картинку с другого сайта и поставить её на аватар
В первой версии агент сам поймал у себя ошибку новичка с окном куки и исправил её. В режиме запуска он скрипт так и не прогнал, ни одного профиля не создал. Вторым промтом я попросил сделать нормальные ресурсы и оба вида входа
Действий получилось 234. Лишние есть, просто не прям чересчур много. С двухфакторкой он разобрался нормально: берёт время стима, получает код из maFile, и мусора там минимум
В режиме запуска оба аккаунта вошли и поставили аватарку. На всё ушло два или три промта
Исправление Rabby WalletГотовый проект ставит в браузер расширение Rabby Wallet, создаёт кошелёк и сохраняет сид-фразу в текстовик. Он падал с ошибкой, и я просто отдал её агенту
После первого фикса в режиме записи всё заработало. В режиме запуска с двумя потоками оба потока сразу крашнулись, и вот тут агент засел надолго. По логу один этот ответ занял 2462 секунды, это минут 40
Кусок лога по Rabby Wallet: агент раз за разом гоняет проект в отладке и в режиме запуска
Он чинил одну ошибку, вылезала вторая, потом снова первая, и так до конца. От меня требовалось, по сути, только подтверждать ресурсы. Потом я попросил добавить логи, ошибка вернулась, я её снова отправил, и после этого всё заработало
Rabby Wallet после исправления: оба потока запускаются и ставят расширение
Руками я тут практически ничего не трогал. Перезапускал и тестил он, на глаз, раз 30 точно
Проект другого разработчика на 6500 действийЭтот проект мне просто скинули: около 6500 действий и миллион ресурсов под русскоязычный сегмент. Руками только разобраться в таком часов 5 минимум, поэтому на фрилансе от таких проектов в 90% случаев просто отказываются
Сначала я попросил в режиме Thorough коротко объяснить, что это вообще за проект. Разобрал он его, в целом, нормально:
ферма под эйрдропы в крипте 161 функция и около 6400 действий регистрация кошельков, отработка проектов и отдельно ТГ-проектыНу и потом попросил разложить ресурсы по вкладкам и сделать русскую и английскую локализацию. Минут за 20 он всё раскидал, каждый ресурс перевёл и к каждому добавил описание. Руками это минут 30 или 40 тяжёлой рутины, так что эту часть оцениваю на все 100%
Ресурсы, которые агент разложил по вкладкам и перевёл на английский
С описаниями лучше сразу прописать в промте, к каким ресурсам они нужны. Я этого не указал, вот он и накидал их вообще везде
Дальше я попросил план, как переделать проект целиком. План вышел прям здоровенный, руками это дня три монотонной работы. Из него я взял три задачи:
Переименовать функции и переменные Привести функции к одному формату и добавить каждой описание Накидать побольше логов через модуль Logger и пояснить тяжёлые циклыЧерез 4 часа агент прислал отчёт: первая задача на 100%, вторая примерно на 85%, третья на 70%. Переименование и описания я проверил, всё на месте, старых имён в проекте больше нет
Функции после переименования, у каждой появилось описание, что она делает
С логами всё вышло интереснее. Агент сам написал, что крупные функции покрыл только частично. Я зашёл и в те функции, где он, по его словам, логи добавлял, и новых логов там тоже не увидел. Скорее всего, он потерял контекст и посчитал своими логи, которые до него писал человек
Отчёт агента по логам: закрыто около 70%, крупные функции с проектами покрыты только частично
Плюс он часто останавливался посреди работы, и его приходилось запускать заново. Почему так происходит, разберу в статье про контекст. По всему проекту я бы оценил результат процентов на 40, может на 50
ВыводЧестно, сначала я думал, что агент ещё сырой и будет много где косячить. Уже на втором проекте понял, что сильно ошибался
Больше всего запомнилось, что он не сдаётся. Словил ошибку, пошёл фиксить, словил следующую, опять фиксит. Парсер стима он сделал с одного промта, Rabby Wallet починил целиком. Лишние действия и переменные он плодит, ну и ресурсы местами раскладывает по-своему
Большой проект он, я уверен, вытянул бы, если разбить всё на этапы с планом и нормальным промтом
Минусы, над которыми разрабам ещё работать:
нет автоподтверждения, всё подтверждать приходится руками на большом проекте сильно теряется контекст задачи выполняются долгоАгент и модуль AI в BAS
Если удобнее смотреть, всё это есть у меня в видео на ютюбе, разбор контекста там идёт с 1:39:34
Все материалы к ролику лежат у меня в тг-канале, залетайте: t.me/mustangbas
План Что такое контекст Как потеря контекста выглядит на практике Как агент сжимает диалог Почему от длинного контекста агент тупит Сколько токенов уходит на большой проект Как уменьшить потерю контекста Вывод Что такое контекстКонтекст это, по сути, весь набор инфы, который доступен модели в какой-то момент. Туда входит:
данные нашего проекта наши запросы и сообщения документация всех модулей BASВот со всем этим на руках модель и принимает решение что делать с проектом, отдаёт его BAS, ну и уже BAS встраивает это в софт
Если совсем просто, это как рюкзак, в который влезает шесть книг. Шесть туда положили, и он полный. Захотели добавить седьмую, значит, какую-то из старых надо выкинуть, иначе она физически не влезет. Агент в BAS работает похожим образом: как только в него пытаются запихнуть новую инфу, он сбрасывает старую
Почему агент теряет задачу: рюкзак, в который новая задача влезает только вместо старой книги
Вместимость рюкзака у каждой модели своя. Считается она в токенах, один токен это примерно 4 символа английского текста, ну и 100 тысяч токенов выходит где-то 150 страниц. У каких-то моделей окно в миллион токенов, у других 200 тысяч или даже меньше
Как потеря контекста выглядит на практикеМне скинули проект другого разработчика на 6500 действий, и я захотел полностью его переделать. Задачи агенту я давал по очереди:
Объяснить, что это вообще за проект и как он устроен Разложить ресурсы по вкладкам и перевести их на английский Составить план, как переделать весь проект целиком Из этого плана сделать три задачи: переименовать функции и переменные ВСЕГО проекта (161 функция) добавить описание КАЖДОЙ функции (тоже 161 функция) накидать побольше логов по ВСЕМУ проекту (6438 действий)Первые две он сделал нормально, ну и самое интересное началось на третьей и четвёртой. Результата я там добивался далеко не одним сообщением. Если пролистать чат, там прям огромная куча промтов, и многие из них по сути про одно и то же
Тут логичный вопрос, зачем вообще писать агенту одно и то же, если всё уже было в первом промте. Всё дело в том самом рюкзаке, контекст у агента ограниченный. Чем дальше он делает работу, тем больше шанс, что он потеряет и сам проект, и изначальный промт
Выглядело это примерно так. План агент сам составил, там было расписано, какие переменные как переименовать. Потом в какой-то момент он пишет, что сохранённого плана в проекте нет, и просит прислать ему список. Ну и я скидываю ему тот самый список, который он же раньше и отправлял
Агент сам пишет, что сохранённого плана в проекте нет, и я заново скидываю ему список, который он же раньше и составил
Плюс он часто останавливался, и мне приходилось запускать его заново
Под конец ещё была история с логами: в отчёте агент написал, что задача по логам закрыта на 70%, при этом новых логов в проверенных функциях я не увидел. Скорее всего, он посчитал своими те логи, которые до него оставил человек
Как агент сжимает диалогВесь диалог целиком агент модели не отправляет. Он постоянно делает краткую выжимку по старым сообщениям, ну и дальше модель работает уже с ней. Какой там конкретно механизм, я не знаю, сервер от нас закрыт. Повлиять на это мы тоже никак не можем
Почему бы не отправлять всё целиком? Для разработчика это было бы очень дорого по ресурсам: обрабатывать такое число обращений и чатов, где каждое тянет за собой всю историю. Так что выжимка это, по сути, чисто оптимизация
Из-за этого при каждой выжимке часть деталей теряется. На длинном диалоге контекст теряется прям сильно, и в какой-то момент из выжимки вылетает что-то важное, типа того самого плана
Посмотреть, сколько контекста уже потерялось, кстати, негде. Во вкладке Statistics под ответом видно модель и токены по запросу, ну и всё. Какое у модели окно, сколько от него занято и что агент выкинул при выжимке, нигде не показано
Почему от длинного контекста агент тупитТут есть ещё один момент. Даже если шесть книг влезли, таскать такой рюкзак тяжело, и всё время хочется положить туда поменьше. С моделью то же самое: чем меньше в неё загружено токенов, тем лучше она распоряжается этой инфой и тем лучше решения принимает
Пока загрузка маленькая, условно тысяч 5 токенов, модель работает нормально. Чем больше задач на неё накидывать, тем хуже она соображает, и в какой-то момент она начинает галлюцинировать, то есть просто придумывать то, чего нет
На том большом проекте это было видно прям наглядно. Я нагрузил модель настолько, что у неё как бы вылетели две книги из шести, ну и как раз в них было всё самое важное: что это за проект и что он делает. После этого нить задачи она потеряла, и логи, которые раньше внёс человек, посчитала своими
Сколько токенов уходит на большой проектЦифры по этому диалогу есть в скачанном логе, и там хорошо видно, как раздувается каждое обращение к модели
Как растёт контекст в одном запросе: 25 обращений к модели подряд, размер со 145 до 503 тысяч токенов
Что там по цифрам:
в одном моём запросе агент сделал 25 обращений к модели подряд, и размер обращения вырос прям со 145 до 503 тысяч токенов в целом за диалог набежало 280 обращений, 732 вызова инструментов, 372 правки проекта и 40 бэкапов около 72 миллионов токенов это, по сути, сумма по всем 280 обращениям вместеЧто из этих цифр понятно:
даже один запрос, по сути, раздувается в три с лишним раза, потому что каждый прочитанный кусок кода и каждая правка добавляются в обращение 503 тысячи токенов это уже больше окна многих моделей, так что без выжимки тут никак, ну и часть деталей по дороге теряется большой проект съедает прям огромное количество токенов, для разработчика это реально дорого, поэтому он и экономит на контексте Как уменьшить потерю контекстаСразу скажу, взять и забустить решения модели в несколько раз мы никак не можем. Именно системой контекста агента занимается разработчик, и мы на неё в целом вообще никак не влияем
Кое-что под нашим контролем всё равно есть:
одна большая задача в одном чате большую задачу разбивать на этапы. Это реально правильный подход к работе с агентом, особенно если проект огромный или задача новая и здоровая держать короткий план. Если непонятно, как его вообще составить, можно спросить у самого агента, он распишет подробно, что можно сделать. Я на большом проекте так и сделал, он сам составил план, как переделать проект по этапам мелкие и средние задачи можно спокойно делать в одном чате, особой роли это, в целом, не сыграет. Разве что на слишком длинном чате модель, возможно, начнёт тупить. Это не на 100%, как там всё оптимизируется на сервере у разработчиков, непонятноПочему новый чат так помогает, удобно объяснить на тех же книгах. Допустим, в рюкзаке уже лежат математика, химия и биология, и туда докидывают физику с задачей именно по физике. Чтобы её решить, агент всё равно будет читать старые книги и брать их в расчёт, и это его путает
В новом чате старых книг нет. Мы начинаем с чистого листа, где лежит одна книга, и агент работает намного лучше, потому что не путается в том, что к задаче вообще не относится
ВыводТо, что контекст может так сильно теряться, я считаю одним из главных минусов агента. Выжимку диалога мы не контролируем, и сколько уже потерялось, нигде не видно. Пользователям это никто особо не объясняет, и тут разработчикам, если по уму, надо было бы рассказать, как с этим работать
На проекте другого разработчика из трёх задач агент справился с переименованием и описаниями функций, ну и с логами уже нет. По всему проекту вышло, как по мне, процентов на 40, может на 50
Если бы у меня реально была цель довести его до 90% и было время, ну, дня два сидеть только с ним, я бы разбил всё на этапы с планом, правильным контекстом и нормальным промтом. Я на 100% уверен, что тогда проект агент переделал бы полностью, это просто вопрос времени
Агент и модуль AI в BAS
Если удобнее смотреть, всё это есть у меня в видео на ютюбе: интерфейс агента с 4:05, ну а как он работает под капотом с 56:16
Все материалы к ролику лежат у меня в тг-канале, залетайте: t.me/mustangbas
План Интерфейс агента Два режима работы Fast и Thorough Как работают бэкапы Как прочекать какие изменения сделал агент Как скинуть лог разрабам Как агент работает под капотом Возможность писать код руками в Code Editor Откуда агент берёт инфу про модули Что агент пока не умеет Вывод Интерфейс агентаНачнём с интерфейса агента и того, как он в целом сделан. Все фичи, которые тут есть, я собрал на схеме:
Все функции интерфейса агента: запрос, чаты и лог, что сделал агент, инструменты
На стартовом окне есть Tutorials & example prompts, там собрано реально много готовых промтов под разные задачи. Ну и есть бургер-меню, в нём новый чат, история, Code Editor и настройки
Стартовое окно агента: бургер-меню, туториалы и поле ввода
Два режима работы Fast и ThoroughПереключатель режима в поле запроса, сейчас стоит Thorough
Fast: тут агент свою работу чекает не так тщательно, весь проект целиком не разбирает и старается побыстрее выдать результат. Этот режим для быстрых и лёгких задач, которым не нужен какой-то глубокий анализ Thorough: тут агент проверяет проект намного тщательнее, поэтому и времени всё это занимает дольше. Это режим для тяжёлых задач, где нужна более тщательная работа: проект с нуля, какая-то большая новая фича или большие изменения в проекте. Если понятно, что задача уже хотя бы средней тяжести, то берём именно Thorough. Я его в целом юзал где-то в 80 или 90% своих запросов Как работают бэкапыБэкап агент делает всегда, даже если я у него просто спросил, что он умеет. В чате это отдельные строчки с именем файла, и на запрос с изменениями их по сути два:
бэкап до изменений: тут проект ровно такой, каким был перед запросом бэкап после изменений: тут уже проект с правками агентаДва бэкапа вокруг одного запроса: до изменений и после
Чтобы откатиться, надо нажать на строчку бэкапа. BAS при этом перезапустит проект, и браузер со всем состоянием потеряется. Дальше по шагам:
Нажимаем OK В окне ресурсов жмём Enter Ждём пока проект запуститсяМежду этими двумя бэкапами можно ходить в обе стороны. Я попросил добавить в самое начало лог 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 он сделан через веб-интерфейс. Просто в браузере он ни к чему не привязан, про проект ничего не знает и на запрос толком ничего не ответит
Сам агент решений не принимает, он по сути передаёт на сервер разработчиков сам запрос и данные проекта:
действия ресурсы состояние браузера логи и даже бэкапыДальше всё идёт по кругу, пока задача не готова:
Сервер решает, что делать дальше, и по сути отдаёт агенту следующий шаг BAS уже на компе читает проект, меняет его и запускает Что получилось, снова уходит на серверКак агент работает под капотом: решает сервер, читает и меняет проект BAS на компьютере
Получается, мозг всей этой работы находится на сервере разработчика. Что конкретно там происходит, мы не знаем. Скорее всего, там стоят какие-то скилы и система, которая уже и решает, что нужно делать и как, и взаимодействует с агентом
Дорабатывает это всё сам разработчик, и заложить в агента свои данные или правила мы никак не можем
Ну и про деньги. Агент полностью бесплатный, ничего для него покупать или подключать не надо. За всё платит разработчик: он полностью обслуживает сервер, ну и сервер уже решает все задачи
Возможность писать код руками в Code EditorCode 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 действий мы не доделали некоторые задачи, просто у меня было мало времениСделан он вообще хорошо, и самое приятное, что он реально бесплатный. Ничего не стоит, просто пишем промт, и он всё делает
Из нюансов: задачи он выполняет немножко долго, и модель там стоит не самая топовая. Ну и какая разница, если это бесплатно и любой человек может с ним собирать свои скрипты
Короче, инструмент очень хороший. Я каждому советую переходить больше на нейронки и не писать код руками. Лучше писать хорошие промты и давать агенту как можно больше базы, то есть по факту надо просто хорошо составить техническое задание
Где-то, может, придётся что-то подсмотреть и подсказать ему, как писать код. Ну это всё тоже со временем допилится
Agent and the AI module in BAS
Prefer to watch? It's all in my YouTube video, it's available in English, Hindi and Turkish: the Steam profile from 2:08:56, and the AI Room project from 2:17:36
All the materials for the video are on my Telegram channel, come join: t.me/mustangbas
Plan Steam profile with a chat request The AI Room project Conclusion Steam profile with a chat requestAs a base I took the Steam login project the agent had built earlier: it logged in to the account and set the avatar. I decided to extend it and asked the agent to make the bot also:
fill in the whole profile, with the country set to the USA generate the profile name, real name and description through a chat request from the AI moduleSo before, the bot basically touched only the avatar in the profile. Now it had to fill in the Steam profile completely, with every field
What the bot does in the Steam profile: what the login project already had and what the agent added with the AI module
In short, the agent moved all of this into a separate function, FillSteamProfile. Inside it three chat requests run one after another:
Profile name, meaning the nickname other people see Real name Profile descriptionThe bot puts every model answer straight into the right field. The country, region and city it sets with normal actions, without the model
By the way, the agent wrote the prompts for these requests by itself too. For the description, for example, it asked for a short text in English of 2 or 3 sentences, up to 280 characters, no emoji or hashtags, and only the description itself with no intros
When the agent finished everything, I ran the project, and the profile really got filled in completely. So it did the task, in my view, at a full 100%
The region, city and Custom URL the agent, by the way, threw in on its own, I only asked for the country
Profile after the run: I asked for the country, the agent added the region and city itself, the model's description below
The AI Room projectHere I wanted to use all of the module's actions in one system. There's a site with chat rooms, and the bot has two modes:
Create a room and write a couple of messages there, plus a voice message on the same topic Join a room by a saved link, reply to the messages by meaning, and add a fitting reactionI set up the module's actions by hand first and only then gave the logic to the agent. If it's never been set up by hand even once, it's unclear what the limits even are here and how to write the agent a decent prompt later
The two AI Room modes: where the AI module works and where it's the normal project logic the agent wrote
The first mode works as a chain, by design:
A chat request in Continue chat mode comes up with some everyday topic and writes three messages on it A second request in the same chat basically writes the text for the voice message on the same topic A speech model turns that text into a voice message The bot creates a room and sends the messages and the voice message thereTwo models were needed here: a text one and a speech model, which I found on OpenRouter under the Speech tag
Here I messed up: both requests wrote their answer to the same variable, and the voice text overwrote the messages. I renamed the variable, and everything worked
Voice through the module didn't work out, the answer came back empty. The model expects the request in a different form and returns audio through a different API, and the module doesn't pass the needed parameters in the request. So I gave this part to the agent, and in about 10 minutes it made a separate HTTP request, after which an MP3 showed up in the folder
Part of the voice function the agent wrote: if the request went through, the base64 audio is written to an MP3
For the second mode the conversation has to be pulled first, and that's exactly data extraction from the browser. What came back was basically an array of objects, each message with an author, text, time and direction. The voice message was skipped, as I asked
What the extraction returned: author, text, time and direction of every message, the voice message skipped
I set the type to string_list back then. By the code it won't let an array of objects through anymore, so a conversation like this needs object_list
Next the conversation goes into a chat request, and the model replies to the person by meaning. At first I put the wrong variable into the prompt, and the model asked to be sent the history. With the right variable the answer made sense: the person wrote about coffee at a new place, and the model asked how they liked that coffee
The usual way, a hundred dialogs would have to be prepared in advance. Here it's in fact two actions, and all of it for free
The reaction is set by a browser task, and the click logic around it, by the way, was written by the agent. It passes one random message from the other person into the task, and the model picks an emoji for it
On the first full run the site logged the bot out of the account, and the thread crashed. The agent fixed this for about an hour and a half, and on the second try everything worked: a room with three messages and a 14-second voice message, plus a reply from the second mode
The result: three messages and a 14-second voice message, below is the reply from the second mode
As the last step the browser task found a reaction by the word coffee, which really fits the topic of the conversation
The browser task searches for a reaction by the word coffee
ConclusionOverall I honestly liked the module. In AI Room I used all of its actions and two models, one for text and the other for voice, and all of it for free. It came out as a really lively dialog. If someone sent me a link to a room like this, I honestly couldn't tell whether a neural network wrote it or a real person
There was basically one thing I missed: audio can't be gotten through the module, it had to be generated with a separate HTTP request. Either way, I think the module has a future
It's good for narrow tasks where everything is dynamic and an algorithm can't just be written out. From what I did with it, for example:
replies to clients and people in chats who can write anything unique texts for every account: names, profile descriptions, messages lively conversations between bots in chats and rooms, basically with the topic carried on choosing by meaning right on the page, like a reaction to a message, where it's unclear in advance what to click pulling data from a page straight in the needed shape, if sites have different layoutsThose are the places where automation on the AI module can be built
Agent and the AI module in BAS
Prefer to watch? It's all in my YouTube video, it's available in English, Hindi and Turkish. The context breakdown starts from 1:39:34
All the materials for the video are on my Telegram channel, come join: t.me/mustangbas
Plan What context is What losing context looks like in practice How the agent compresses the dialog Why the agent gets dumber with long context How many tokens a big project eats How to reduce context loss Conclusion What context isContext is basically the whole set of info the model has access to at a given moment. It includes:
the data of our project our requests and messages the documentation for all BAS modulesWith all of that in hand, the model decides what to do with the project, hands it to BAS, and BAS builds it into the software
To put it really simply, it's like a backpack that fits six books. Put six in, and it's full. Want to add a seventh, then one of the old ones has to go, otherwise it physically won't fit. The agent in BAS works in a similar way: as soon as new info is pushed in, it drops the old
Why the agent loses the task: a backpack where a new task only fits in place of an old book
Every model has its own backpack size. It's measured in tokens, one token is roughly 4 characters of English text, and 100 thousand tokens comes to about 150 pages. Some models have a window of a million tokens, others 200 thousand or even less
What losing context looks like in practiceSomeone sent me another developer's project with 6500 actions, and I wanted to completely rework it. I gave the agent tasks one at a time:
Explain what this project even is and how it's built Sort the resources into tabs and translate them into English Make a plan for reworking the whole project Turn that plan into three tasks: rename functions and variables across the WHOLE project (161 functions) add a description to EVERY function (also 161 functions) add more logs across the WHOLE project (6438 actions)It did the first two fine, and the most interesting part started on the third and fourth. I got the result there with far more than one message. Scrolling through the chat shows a huge pile of prompts, and many of them are basically about the same thing
The obvious question here is why write the same thing to the agent at all if it was all in the first prompt. It all comes down to that backpack, the agent's context is limited. The further it goes with the work, the higher the chance it loses both the project and the original prompt
It looked something like this. The agent made the plan itself, it laid out which variables to rename and how. Then at some point it writes that there's no saved plan in the project and asks me to send it the list. And I send it that same list it had sent me earlier
The agent writes that there's no saved plan in the project, and I send it the list it made itself earlier
Plus it often stopped, and I had to start it again
At the end there was also a story with the logs: in the report the agent wrote that the logs task was 70% done, yet I didn't see new logs in the functions I checked. Most likely it counted as its own the logs a person had left before it
How the agent compresses the dialogThe agent doesn't send the whole dialog to the model. It keeps making a short summary of the old messages, and then the model works with that. What exact mechanism is behind it, I don't know, the server is closed to us. We can't influence it in any way either
Why not send everything as is? For the developer it would be very expensive in resources: handling that many requests and chats where each one drags the whole history along. So the summary is basically just an optimization
Because of this, some details get lost with every summary. On a long dialog the context gets lost really badly, and at some point something important drops out of the summary, like that same plan
By the way, there's nowhere to see how much context has already been lost. The Statistics tab under an answer shows the model and the tokens for the request, and that's it. What window the model has, how much of it is used and what the agent threw out in the summary isn't shown anywhere
Why the agent gets dumber with long contextThere's one more thing here. Even if six books fit, carrying a backpack like that is heavy, and it's always tempting to put less in it. Same with the model: the fewer tokens loaded into it, the better it handles that info and the better decisions it makes
While the load is small, say around 5 thousand tokens, the model works fine. The more tasks get piled on it, the worse it thinks, and at some point it starts to hallucinate, meaning it just makes up things that aren't there
On that big project it was really easy to see. I loaded the model so much that it kind of dropped two books out of six, and those were exactly the ones with all the important stuff: what this project is and what it does. After that it lost the thread of the task and counted the logs a person had added earlier as its own
How many tokens a big project eatsThe numbers for this dialog are in the downloaded log, and it shows well how every model call swells up
How context grows in one request: 25 model calls in a row, size from 145 to 503 thousand tokens
What the numbers say:
in one of my requests the agent made 25 model calls in a row, and the call size grew from 145 all the way to 503 thousand tokens over the whole dialog it added up to 280 model calls, 732 tool calls, 372 project edits and 40 backups about 72 million tokens is basically the total over all 280 calls togetherWhat these numbers make clear:
even a single request basically swells more than three times, because every piece of code it read and every edit gets added to the call 503 thousand tokens is already more than the window of many models, so there's no way around the summary here, and some details get lost along the way a big project eats a truly huge number of tokens, that's really expensive for the developer, which is why they save on context How to reduce context lossLet me say right away, there's no way for us to boost the model's decisions several times over. The agent's context system is handled by the developer, and overall we have no influence on it at all
Some things are still under our control:
one big task per chat split a big task into stages. This really is the right way to work with the agent, especially if the project is huge or the task is new and massive keep a short plan. If it's unclear how to even make one, we can ask the agent itself, and it'll lay out in detail what can be done. That's what I did on the big project, it made the plan for reworking the project by stages itself small and medium tasks can easily share one chat, overall it won't make much difference. Except that on a very long chat the model might start getting dumber. That's not 100% certain, how it's all optimized on the developers' server is unclearWhy a new chat helps so much is easy to explain with the same books. Say the backpack already holds math, chemistry and biology, and physics gets added with a task specifically about physics. To solve it, the agent will still read the old books and take them into account, and that confuses it
A new chat has no old books. We start from a clean slate with one book in it, and the agent works much better because it doesn't get tangled in things that have nothing to do with the task
ConclusionThe fact that context can get lost this badly is, in my view, one of the agent's main downsides. We don't control the dialog summary, and how much has already been lost isn't shown anywhere. Nobody really explains this to users, and here the developers, if they did it right, should tell people how to work with it
On the other developer's project, out of three tasks the agent handled the renaming and the function descriptions, and with the logs it already didn't. Across the whole project it came out, as I see it, at around 40%, maybe 50
If I really had the goal of getting it to 90% and had the time, like two days of sitting only with it, I'd split everything into stages with a plan, the right context and a decent prompt. I'm 100% sure that then the agent would have reworked the project completely, it's just a matter of time
Browser Automation Studio Forum. English Version.
FingerprintSwitcher. English version.
Форум BrowserAutomationStudio. Русская версия.
Форум FingerprintSwitcher. Русская версия.
New versions, changelogs, site news.
Lifehacks, successful cases and articles from forum members.
Offtopic, services, private solutions and services from forum members