Как я перестал программировать руками, и начал работать головой - как сделать также | OpenClaw
Я разрабатываю разные приложения (фронт/бек/моб/десктоп/блокчейн и тд) уже 12 лет, и с огромным сомнением относился к ИИшкам для программирования. Но все изменилось, меня пороботили))
Работаю головой
Сейчас моя разработка выглядит таким образом:
Я составляю Vision&Scope, максимально описываю важные моменты для меня, и как их надо реализовать
Отправлять это своему агенту
Он подтягивает все из памяти (репозитории, доступы, код-стайл и тд)
И через минут 5-40 - я получаю заветное сообщение
Начало ИИИнтеграции
Где-то 3 года назад я начал активно использовать GPT для составления базы текстов, дебага какой-то проблемы, изучение документации, написание SDK для взаимодействия со сторонними API, разъяснения сложных концепций, написание ТЗ/V&S/архитектуры и прочих "объемных" задач, ответить заказчику, узнать что с битком было исторически, да и еще для миллиона задач.
И на самом деле на этом уже моменте, я продался с потрохами)
Без GPT работать стало крайне сложно, да и вопрос - зачем работать без него?
В текущих реалиях - GPT это как Гугл в свое время, только он еще и собирает информацию из многих источников, склеивает и выжимает суть, еще и подстраивается под твою конкретную проблему, в общем сказка
Но у GPT всегда была одна проблема/особенность - он не может ничего сделать, они лишь советует, да и на самом деле не одна проблема - целый ворох:
- Он еще постоянно забывает контекст и ему каждый раз надо заново все описывать по полчаса
- Из России работать с ним - миллион танцев с бубном
- Он не может нормально анализировать риал-тайм информацию, а когда работаешь с новым/сложным - ты хочешь чтобы он дал тебе информацию ИМЕННО С ЭТОЙ СТРАНИЦЫ (например я чуть не умер, пока OpenStack разворачивал, он постоянно придумывал и не мог дать выдержку из конкретной документации)
- Ну а бесконечно копировать/вставить отдельный мазохизм - я и не понимал кто на кого работает
На фоне я слышал информацию про агентов, Cursor там и прочее, но опять же относился с сильным скепсисом к ним, да и лень было разбираться опять в новой нейронке, в чем смысл, в GPT и так в принципе работаю, ох как же я был неправ...
"А openclaw у нас же тоже можно разместить?"
Такое сообщение я получил от маркетолога: он предложил в нашем магазине приложений - добавить простую установку этого приложения (у нас компания по хостингу серверов и тд, и среди прочих - маркетплейс приложений)
Делать нечего, нам необходимо было добавлять как можно больше интересных приложений для установки, и я пошел изучать, что это за зверь такой
С этого начался мой путь, и продолжается по сей день)
В начале я загуглил(загптшил) всю информацию о нем, для чего он используется, как его устанавливать и прочее прочее
"Управлять вашим компьютером или приложениями" - меня это заинтересовало, но также и вызвало опасение, удалит еще чего-нибудь, или наделает что-то такого.
Но отступать было поздно, уже захотелось потыкать и посмотреть что это такое
Зашел на сайт openclaw.ai, ожидая потратить часок на запуск, но приятно удивился, что установка там за одну строку в терминале
С моей наработанной паранойей - я не захотел ставить его к себе на компьютер, поэтому взял VPSку и пошел играться там
Запустил скрипт, он позагружал все зависимости и в итоге начал установку через интерактивный Визард, условно выглядит это так
Идешь по шагам, отвечаешь на вопросы, натыкиваешь что тебе нужно и кажется полезным
И по итогу настроил его через работу с ТГ, и пошел с ним общаться и смотреть а что он может
А что ты можешь то?
В начале - он показался мне обычным GPT, только "манерным" и с закосом под ИИ-ассистента, спрашивал как его зовут, как зовут меня и тд
Заполнил все это и уперся в монитор
А что попросить то его сделать?
Ну так как я разработчик - решил проверить, а сможет ли он что-то сделать по разработке, попросил его запилить сервис, написал ему мини ТЗшку с бизнес требованиями
Он пошел изучать, и спустя время выдал стандартное ГПТшное: все изучил, могу сделать так или так, дай ответы.
Ясно, тот же ГПТ, только в профиль
Но вот после ответов на его вопросы - он "умер", ну точнее я так подумал
(тогда еще не было ТГ апдейта на частичные ответы и приходилось ждать пока он полностью закончит работу, прежде чем хоть что-то получишь)
Ну ладно, пока забил, пошел заниматься другими делами, но минут через 5 он пишет мне
ОН СДЕЛАЛ САМ СЕРВИС С НУЛЯ, СДЕЛАЛ, А НЕ СКАЗАЛ КАК СДЕЛАТЬ
Да, не без огрехов и багов, но это было на 90% работающее и с хорошей структурой приложение, надо было лишь подшлифовать. Такое ваш ГПТ не умеет, вот тут я понял потенциал и какие двери открываются
Через тернии к новой боли
Пришлось много потанцевать с бубном, прежде чем создать агента под себя, ниже конкретные шаги, как я его настроил и важные нюансы
Он все забывает
OpenClaw работает по принципу сессий, если сессия очищается (он делает это каждые Н времени, или если не было сообщений какое-то время) - то он забывает напрочь ВСЕ!
Но у него есть механизм "память", чтобы он мог помнить какую-то информацию между сессиями. Сохранение туда делается очень просто, надо написать ему ЗАПОМНИ ЭТО "то что запомнить", тогда он сохранит это к себе и будет дальше это использовать (хотя он иногда ленится и приходится тыкать его, чтобы вспомнил)
Моя настройка агента
1. 1 агент = 1 проект
Если я хочу завести новый проект - я завожу нового агента, тк OpenClaw очень быстро теряется и плохо понимает что к чему относится и начинает копаться не в тех проектах что надо
2. Контекст и Доступы
После создания агента - я задаю ему контекст проекта:
- Задаю название проекта в разных вариациях (на русском/англе/сокращенно и тд)
- Описываю максимально подробно флоу пользователей и возможности проекта основные
- Какие-то ссылки на сайты/тг ботов и тд с продом
- пишу ему ЗАПОМНИ ЭТО
Далее я даю ему самое вкусное - репозитории:
- Я заранее создал ему в гитлабе отдельного пользователя и добавил SSH ключ его машины - в гитлаб этого пользователя
- Я добавляю его в проект в гитлабе с правами разработчика (может пушить новые ветки, но не может пушить в защищенные ветки/читать Variables/Env и тд - опасные данные)
- Скидываю ему ссылку на репозиторий/репозитории (те которые с SSH доступом)
- И пишу "Изучи проект, составь краткую документацию по нему и опиши ее в README-AGENT.md, чтобы ты мог потом это использовать для работы над проектом и не нужно было заново индексировать весь проект, пришли мне МР"
- Дальше пишу ему стандартное: "ЗАПОМНИ ЧТО У ТЕБЯ ЕСТЬ РЕПОЗИТОРИИ "бла бла" И ЧТО ТЫ ДОЛЖЕН ЧИТАТЬ README-AGENT.md"
Флоу работы
После контекста + доступа - я описываю/задаю ему флоу работы:
Запомни наш флоу работы: я даю тебе задачу, ты затягиваешься с main/master, ты задаешь уточняющие вопросы необходимые для реализации, далее ты начинаешь выполнять все под ключ и в конце присылаешь мне ссылки на MR
Все, на этом базовая настройка проекта закончена, можно отдавать ему свою рутинную работу)
Главное хорошо и правильно написать ему ТЗ, чтобы он сделал именно то, что ты ожидаешь
P.S.
На самом деле я еще много для чего другого использую агентов, но пока не знаю, что еще может быть вам интересно узнать/попробовать самим)