AI агенты для школьного проекта: первое знакомство

AI агенты для школьного проекта: первое знакомство

⏱ 1:11:39

Надоело писать код руками? Хотите узнать, как заставить искусственный интеллект делать школьный (или пет-) проект за вас, причем совершенно бесплатно? В этом видео погружаемся в мир настоящего вайб-кодинга и ИИ-агентов!

Мы не просто поболтаем с чат-ботом, а развернем полноценных автономных помощников. Протестируем три разных инструмента: браузерный Lovable, терминальный MIMO Code от Xiaomi и OpenCode (с моделью DeepSeek). В качестве реальной задачи попробуем с нуля написать браузерный симулятор оптики для школьного проекта по физике.

В этом видео вы узнаете:
🔹 Почему для вайб-кодинга жизненно необходим Linux (и как спасает виртуалка).
🔹 Как получить API-ключи для ИИ-моделей, если у вас нет денег.
🔹 Почему вайб-кодер — это не лентяй, а строгий тимлид и прораб.
🔹 Главная ошибка новичков при общении с нейросетями: что такое MVP (минимально жизнеспособный продукт) и почему нельзя просить ИИ сделать "всё и сразу".

Делитесь в комментариях: какими агентами вы уже пользуетесь и какую тему разобрать в следующем ролике?

Kate Archer cosplay: https://www.youtube.com/watch?v=K3K0QbBSico

🔔 Не забудьте подписаться на канал, поставить лайк и нажать на колокольчик!

—

⏱ Тайм-коды

00:00:04 — Вступление. ИИ-агенты в помощь для школьных проектов
00:01:28 — Главное правило вайб-кодера: почему вам нужен Linux и виртуальная машина
00:03:45 — Базовая подготовка: зачем нужен аккаунт Google и где брать агентов
00:04:35 — Тестируем сервис Lovable: создаем симулятор оптики прямо в браузере
00:08:15 — Проверяем результат от Lovable. Как работает первая версия?
00:12:53 — Как вытащить (скачать) файлы проекта из Lovable к себе на ПК
00:16:54 — Иллюзия лени: кто такой вайб-кодер на самом деле?
00:20:18 — Переходим в терминал Linux и создаем правильную структуру папок
00:22:00 — Установка и запуск бесплатного агента MIMO Code (от Xiaomi)
00:24:51 — Регистрация и получение API-ключа для MIMO Code
00:28:11 — Про лимиты токенов и где искать бесплатных ИИ-агентов
00:30:58 — Тестируем симулятор оптики от MIMO Code. Что пошло не так?
00:38:13 — Как исправлять баги: отправляем скриншоты ошибок агенту MIMO
00:44:58 — Архиважно! Концепция MVP (Minimal Viable Product) при работе с ИИ
00:50:15 — Установка агента OpenCode и подключение модели DeepSeek V4 Flash
00:55:58 — Тестируем работу DeepSeek: почему результат оказался хуже?
00:58:13 — Сталкиваем агентов лбами: просим MIMO исправить код от DeepSeek
01:02:08 — Итоги по агентам: кто справился с задачей лучше всего?
01:07:45 — Развиваем MVP: просим Google Gemini придумать улучшения для нашего симулятора
01:11:09 — Заключение. Жду ваши вопросы в комментариях!

—
Заходите на портал ПедОбраз:
https://педобраз.рф

Подписывайтесь на YouTube канал:
https://www.youtube.com/@PedObraz

Подписывайтесь на TG канал:
https://t.me/mongolian_hut

Подписывайтесь на Boosty:
https://boosty.to/bormotoon

▶ Смотреть на YouTube

Конспект

О чём это видео

Оглавление конспекта
  1. Вступление
  2. От чат-ботов к агентам
  3. Выбор операционной системы
  4. Подготовка рабочего окружения
  5. Поиск и использование агентов
  6. Практический пример: создание симулятора
  7. Запуск и возможности Lovable
  8. Тестирование оптического симулятора
  9. Работа с линзами и лучами
  10. Стоимость и экспорт проекта
  11. Как скачать проект из Lovable
  12. Проблема ручного скачивания и решение через плагин
  13. Запуск проекта на локальной машине
  14. Особенности сервиса Lovable и роль вайб-кодера
  15. Проблема доверия к агентам
  16. Переход к терминалу
  17. Подготовка рабочей среды
  18. Установка MIMO Code
  19. Безопасность и запуск
  20. Регистрация и настройка API-ключа
  21. Тестирование агента и анализ работы
  22. Проблема платных провайдеров и поиск бесплатных решений
  23. Выбор инструментов: модели и агенты
  24. Проверка созданного файла
  25. Исправление ошибок через агента
  26. Результат работы и тестирование симуляции
  27. Эксперименты с оптикой
  28. Работа с агентом через скриншоты
  29. Исправление ошибок и проверка линз
  30. Итоги работы с MIMO 2.5
  31. Завершение работы с сессиями
  32. О понятии MVP
  33. Ошибка при создании сайта «Педобраз»
  34. Поэтапная разработка системы
  35. Принцип построения продукта
  36. Установка и запуск OpenCode
  37. Выбор модели и хитрости с аккаунтами
  38. Получение API-ключа
  39. Работа с моделями DeepSeek и MIMO
  40. Управление агентом и контроль процесса
  41. Особенности работы модели Flash
  42. Попытка исправления через скриншот
  43. Исправление ошибок с помощью MIMO
  44. Результаты работы и итоги
  45. Сравнение работы MIMO и DeepSeek
  46. О выборе основного агента
  47. Анализ исправлений и текущего состояния проекта
  48. Стратегия развития проекта
  49. Идеи для функционала
  50. Путь к MVP
  51. Завершение разбора

Вступление

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

Я подумал, что надо бы сделать что-то в помощь обычному школьнику. Чем мы можем помочь обычному школьнику, готовящему школьный проект? Конечно же, рассказать ему, как заставить кого-нибудь делать проект за него. Лучше всего, если это не другой человек, а искусственный интеллект, ибо пашут роботы, а не счастливый человек. Поэтому сегодня мы поговорим о том, как быстро и безболезненно — самое главное, бесплатно — начать пользоваться искусственным интеллектом по-настоящему. Что касается денег, то денег нет.

От чат-ботов к агентам

Я понимаю, что многие из вас уже наверняка пользовались DeepSeek, использовали Qwen, ChatGPT в бесплатной версии. Может быть, кто-то даже смог достучаться до Google Gemini и других чат-ботов. Но это не совсем то, что нам нужно, потому что для настоящей работы чат-бота недостаточно. Нам нужны агенты. Где их взять и как использовать — сегодня и поговорим.

И тут я хочу сказать вот что: прежде чем вкатываться в байт-кодинг, пожалуйста, обзаведись Linux. Я как человек, который целый год буквально с нуля, не имея никакого специального образования и не пройдя никаких курсов, всё постигал руками — то, что называется Hard Way, — сразу скажу: наличие Linux во много тысяч раз упрощает работу с агентами.

Винда привычнее, удобнее и всё такое, и можно в игрушечки играть, пока ты ждешь своих агентов. Да, но вообще-то нет. Поэтому, пожалуйста, обзаведитесь Linux. Если не хотите ставить вторую систему и боитесь что-то напортачить, хорошо, поставьте виртуальную машину. Кстати говоря, замечу, что VirtualBox, мой любимый, в последнее время скатился и работает намного медленнее, чем VMware. Поэтому используйте VMware Fusion Pro 13-й версии, тем более что теперь он бесплатный для некоммерческого использования.

Выбор операционной системы

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

Я сам использую Linux Mint 22.3, версия LTS, то есть длительной поддержки. Значит, мне её не нужно будет перекатывать на новый дистрибутив каждые полгода — она до 29 года будет одинаковая, и это меня полностью устраивает. Графическая оболочка XFCE (он же X-Face, как вам удобнее), потому что у меня слабое железо, и для слабого железа это идеально подойдёт. Если хотите красивее, используйте Cinnamon. Он красивее, плавнее и круче, но «ожирет» ресурсы.

Подготовка рабочего окружения

Итак, считаем, что с операционкой вы уже обзавелись и у вас есть вот такой рабочий стол. С чего стоит начать? Работу стоит начать, конечно же, с системных обновлений и всякого такого, но будем считать, что всё уже готово, вы уже готовы работать и прямо хотите обзавестись собственным агентом.

С чего начнём? Откроем Chrome. И прежде всего нужно обязательно залогиниться в гугловском аккаунте. Несмотря на то, что наше правительство очень этого не любит, а с недавних пор это теперь ещё и запрещено — логиниться на наших сайтах с помощью Google, — во всем прогрессивном человечестве аккаунт Google принимается как дефолтный логин. Поэтому, чтобы вам удобнее жилось, у вас обязательно должна быть почта на gmail.com. Обзаведитесь ею, чтобы везде удобно заходить.

Поиск и использование агентов

Итак, теперь, когда у нас есть логины в Google, можем приступать к поиску подходящих агентов. В хорошем случае мы берём Claude Code, и это полностью решает нашу проблему. В случае похуже мы можем использовать ChatGPT Codex, который почти так же хорош, но всё-таки, с моей точки зрения, немного уступает Клоду. Если есть возможность, пользуйтесь Google Antigravity, но камон, зачем усложнять?

Проще всего использовать замечательный сервис, который называется Lovable. Это буквально агент внутри вашего браузера, который позволяет строить и запускать всё сразу очень быстро. Итак, залогинимся. Залогинимся с помощью Google, как ни странно. Как только залогинились, можно сразу что-нибудь построить с помощью запроса на любом известном вам языке.

Практический пример: создание симулятора

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

Итак, напиши: «Браузерный симулятор оптики». И пусть он будет сразу хорошо упакован. Поэтому добавим, что пусть он будет в одном HTML-файле. Пусть вот так будет. Добавь источник лазерного луча. Что ещё? Призмы добавим, какие-нибудь зеркала и другие оптические приборы, потому что ему виднее. Я не знаю, какие ещё существуют оптические приборы.

Реализуй свойства света. Какие у нас есть? Преломление, например, отражение. Чего ещё? Рассеивание. Как это? Фокусировку. Добавь возможность перетаскивать все элементы. Сделай красивый интерфейс в стиле моего любимого Material Design 3.0. Оставляем Build, то есть планировать ничего не будем, сразу пусть работает.

Можем приложить какие-нибудь картинки, если у нас есть базы данных. Если мы хотим что-нибудь, мы можем привязать сюда какой-нибудь свой GitHub или ещё что-либо, если у вас что-то уже есть. Вот здесь, конкретно в Lovable, нет — для этого требуется платный аккаунт, но вообще, например, у Клода есть своя дизайн-система. Клод Дизайн — вы можете привязывать туда существующий свой дизайн, например, из Figma.

Запуск и возможности Lovable

Оставляем Build, то есть планировать ничего не будем, сразу пусть работает. Можем приложить какие-нибудь картиночки, если у нас есть база данных. Если мы хотим что-нибудь, мы можем привязать сюда какой-нибудь свой GitHub или еще что-либо, если у вас что-то уже есть.

Вот здесь конкретно в Lovable нет, для этого требуется платный аккаунт, но вообще, например, у Claude есть своя дизайн-система — Claude Design. Вы можете привязывать туда существующий свой дизайн из Figma, например. Можете приложить какие-нибудь файлики, картиночки или что-нибудь такое. Сейчас всё в голом виде. Запускаем и посмотрим, что получится.

Я, честно говоря, не ожидаю ничего особо пафосного, потому что всё-таки это очень ограниченная версия для тех, кто не оплатил Enterprise или премиум-план. Можем нажать вот сюда и посмотреть, чего он там себе думает. Он думал 6 секунд. В принципе, он просто пересказал, чего от него хотят.

Тестирование оптического симулятора

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

«Оптический симулятор. Перетащите инструмент из левой панели на холст. Кликните на элемент». Готово! Пишет нам: «Наша система Lovable. Симулятор оптики доступен на главной странице». Нажмём превью. Вот, смотрите, так у нас будет выглядеть окно браузера.

Управление: перетащите инструмент на холст, клик, выбрать. Мы можем что-нибудь, например... А можем выкинуть? Давайте всё выкинем. Тут, я так понимаю, что это зеркало, а это ширма, экран. Окей, берем монохромный лазер. Его можно всяко двигать. Shift, к сожалению, не работает, то есть и по 15 градусов не получится. Ну ладно.

Давайте, чтобы ровненько и красиво, пусть у нас будет новый лазер. Поставим плоское зеркало. Повернем вертикально. А, 89 — ну, почти вертикально. Что-то я не понял, это у нас 90? А вот так? Это сколько он засчитывает градусов? 69? Мне не кажется, что градусная мера здесь похожа. Давайте подвинем вот сюда к квадратику, типа 45 градусов примерно, а он считает, что это 69. Ну ладно, неважно, это потом дорабатывается в процессе.

Работа с линзами и лучами

Вогнутое зеркало. Видите? О, смотри-ка, правда работает, только там луч немножко заезжает. Ладно, это неинтересно. Призма, можем что-нибудь сделать? О! Огонь! Так, раз у нас это собирающая линза, радиус кривизны... Хорошо. Давайте добавим белый свет. Сделаем эту штуку подлиннее. А, нельзя растягивать, понятно.

О, смотрите, что у нас там получилось. У нас что? Это Deep Opal. Воу-воу-боу! Что творится-то? Отлично! Смотрите, работает. Ну, экран понятный, он просто заблочит это всё. Что такое веер лучей? Йоу! И они считаются типа цветными? Нет, они не считаются многоцветными. То есть это не белый цвет. Ну ладно, неважно.

Ха! Смотрите-ка, линза не засчиталась. Видимо, он просто не обновил. Смотрите, видите, что происходит? Он типа считает: попадает он на зеркало или не попадает? Ну ладно, неважно. Главное — работает.

Стоимость и экспорт проекта

Что тут стоит сказать? Мы видим, что эта штука работает, и вы показываете — этого может быть вполне достаточно для того, чтобы на предзащите у вас уже всё было. Здесь можно, кстати, посмотреть, сколько вы потратили на это кредитов — больше половины. Ну ничего страшного, вы просто каждый день возвращаетесь, они в полночь обновляются, и вы просто используете заново.

Я вам так скажу, друзья: оно того не стоит. Подписка на Lovable за 25 долларов в месяц этого не стоит, потому что Lovable всё-таки не универсальный инструмент. И теперь зададимся вопросом: а где это всё забрать? Как это можно скачать себе на комп и работать с этим где-то ещё или взять с собой на конференцию?

А вот тут всё хитро. Всё сделано так, чтобы было максимально неудобно, чтобы вы работали со своим проектом только внутри Lovable. Но законный и легальный способ есть, хоть и неочевидный. Учитывая, что у нас всего лишь один файл, который называется Optics.html (мы его просили сделать в одном файле, он сделал в одном файле), мы можем вот здесь просто нажать кнопочку «Скопировать», вставить себе в блокнот, сохранив с нужным расширением, и всё заработает.

Но это, конечно, годится только на тот случай, если у вас файлов один, два, ну, может быть, пять, и вам не лень это делать. Вам же нужно как-то будет забрать весь проект к себе. Так вот, как же нам забрать наши файлы? Вот здесь...

Как скачать проект из Lovable

При желании, конечно. Учитывая, что у нас всего лишь один файл, который называется Optics.html — то есть мы его просили сделать в одном файле, он сделал в одном файле, — мы можем вот здесь просто нажать кнопочку «Скопировать», скопировать и вставить себе в блокнот, сохранив с нужным расширением, и всё заработает. Но это, конечно, годится только на тот случай, если у вас файлов один, два, ну, может быть, пять, и вам не лень это делать.

Вам же нужно как-то будет забрать весь проект к себе. Так вот, как же нам забрать наши файлы? Здесь не очень понятно, потому что кнопочки Download Project здесь нет. И всё очень хитро. Вот здесь кнопочка Back to Latest. Нажимаем сюда. Здесь можно ещё раз посмотреть, как там у нас всё работает. И вот здесь можем переключаться между вкладочками Preview, Files, которые мы уже видели, и Code. Вот то, что нам нужно.

Проблема ручного скачивания и решение через плагин

И вот у нас файлики — это всё то, что нам нужно. Во-первых, первое, что бросается в глаза, это то, что у нас вовсе не один HTML-файл всего лишь, а целый вокеновый проект, да ещё и с TypeScript. Ну окей, значит, нам тем более нужно как-то всё это скачать. А раз нам нужно это всё скачать, есть кнопочка Download File. А значит, нам придётся скачивать каждый файл по отдельности, раскладывать их, соблюдая структуру и всё такое.

А ещё сверху здесь написано Read Only, а значит, редактировать вручную эти документы, эти файлы с конфигами и всем остальным вы не можете прямо здесь. Это может делать только сам агент. Это очень неудобно. Сейчас мы об этом ещё поговорим, а пока что с этим делать? К счастью для нас, люди уже позаботились об этом, потому что неудобно же, и сделали для нас очень удобный плагинчик для Хрома, который можно поставить и использовать. Это довольно удобная штука.

Возвращаемся обратно. Напоминаю, что для того, чтобы активировался плагин на этой странице, нужно обновить страницу. Теперь, когда страница обновилась, можем залезть в плагины, нажать кнопочку, и ready to download your project. Download as zip. Наконец-то мы сможем это скачать в формате небольшого архивчика. Вот он сейчас как сохранится, сохранится. Отлично! Целых 73 файла он нам заархивировал и скачал.

Запуск проекта на локальной машине

Давайте сразу на него посмотрим. Закроем. Да, вот два файлика, которые мы скачали по отдельности. Вот наш замечательный архив со всем, что нам нужно. Создадим папку Optics и закинем всё туда. Залезем внутрь и попробуем запустить у нас прямо на локальной машине. Всё работает. Можем всё покрутить. Всё работает, как и прежде.

Ну, что тут может сломаться? Ломаться тут, в общем-то, нечему. Рассеиватель. Что он делает? Он что-то рассеивает. Он как-то рассеивать должен что-либо. Но он ничего не рассеивает. Почему так? Может быть, он должен рассеивать лазер? Может, он может рассеять веер лучей? Ой! Ну, видимо, да. Видимо, он всё-таки рассеивает. Что-то здесь из этого. Слушайте, мне нравится играться с этой штукой. Это прямо потрясающе. Да, всё отлично. Всё рассеивается. То есть он попадает на вот эти точечки, видимо, считается, и во все стороны там всё рассеивает. Ну прекрасно. Проект работает, можно его доделать.

Особенности сервиса Lovable и роль вайб-кодера

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

И тут давайте поговорим вот о чём. Бытует мнение, что вайб-кодер — это такой ленивый человек, который всё просто свалил на агента и говорит: «Сделай за меня вот это всё», и потом просто получает готовый результат. С высоты своего небольшого опыта должен сказать, что это правда... первые две недели. Либо до того момента, как такой агент сотрет вам что-нибудь очень ценное, чему полно свидетельств в интернете. С этим сталкивалось уже много народу, когда агент случайно удалял либо весь продакшен, либо все биткоины, что намного страшнее, конечно. И много-много чего.

Правильный подход такой. Это, опять же, я выяснил сложным путем, сообщаю вам сейчас сразу: стоит сразу понять важную штуку, что вайб-кодер — это, в общем-то, такой продукт-менеджер, тимлид, прораб, программист, инженер, дизайнер архитектуры и всё остальное — всё в одном, а самое главное — такой себе дирижёр. Не стоит воспринимать агента как полную замену себе или замену всем разработчикам сразу. Так не работает. Ну, или по крайней мере на нашем с вами уровне так не работает.

Может быть, почти наверняка какой-нибудь Mythos или Fable 5, если ему дать бесконечное количество токенов, бесконечное количество ресурсов, дать ему возможность создавать субагентов, оркестрировать это всё самому и просто сказать: «Делай вот это, а дальше там типа разберетесь»? Может быть. У нас с вами такой возможности нет. Нам нужно экономить токены, иначе мы с вами разоримся. Кроме того, сегодня у нас с бесплатными агентами они по определению хуже, чем какой-нибудь платный Claude Fable, поэтому нам с вами придется выполнять много работы.

Еще раз: вайб-кодер обязательно следит за тем, что происходит с его проектом. Он сам дает задание, сам смотрит, что делает его агент, и сам решает, разрешать ли агенту что-нибудь делать, и оценивает его результаты работы. Поэтому вообще-то, если у вас нет никаких знаний и никаких умений в области программирования, вы используете какой-нибудь Lovable.

Проблема доверия к агентам

Он существует именно для этого, то есть для тех людей, которые вообще ничего не понимают. Им не надо. В том смысле, в котором я его понимаю, [процесс] начинается тогда, когда ты устанавливаешь себе агента и начинаешь с ним работать вместе. При этом ты должен понимать, что он делает, и уметь как минимум читать код на некотором уровне. Ты должен уметь отличить команду rm -rf от, я не знаю, какого-нибудь cat.

Просто по той причине, что агент сам себя проверить по определению не может. Он делает то, что он делает, и когда он сам себя проверяет, он считает это правильным. Это как дать школьнику проверять его же домашнюю работу: он поставит себе пять и будет ужасно рад.

Переход к терминалу

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

Терминал — это лучший друг любого линуксоида, это знают все и каждый. Вдаваться в подробности о том, как пользоваться терминалом, я не буду, потому что считаю, что так же, как с установкой операционной системы семейства Linux, вы справитесь сами. Мы будем здесь рассматривать только нужные нам команды, как обычно я делаю это в своих роликах. Если вдруг вам что-то нужно разбирать, то погуглите, пожалуйста, сами либо напишите в комментариях — сделаю про это отдельный ролик.

Подготовка рабочей среды

Давайте посмотрим вот на что. Мы сейчас с вами находимся в нашей домашней папке, и в ней лежит всякое. Нам обязательно понадобится создать отдельную папку для того, чтобы в ней хранить наши будущие проекты, связанные с этим нашим вайб-кодингом. Для этого используем команду mkdir и создадим вот такую вот папочку, которая называется vibe-coding.

Посмотрим, создалась ли она. Да, вот она у нас здесь есть. И давайте туда сразу перейдем. Папочка пустая, отлично. В ней создадим, конечно же, папочку optics и сразу в неё тоже сходим. Вот у нас есть папочка optics, мы в ней будем работать с нашим будущим проектом.

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

Установка MIMO Code

В любом случае, прямо сейчас откроем Chrome. Агент, которого я хочу с вами сейчас рассмотреть, называется MIMO Code. Это семейство агентов от Xiaomi. Прелесть в том, что он довольно часто обновляется, у них частенько выходят новые модельки. Конечно же, они сильно уступают Claude и всякому такому, но для кодинга вполне годятся, а самое главное — абсолютно бесплатно.

Команда для Linux сразу готова, мы можем её скопировать и вставить в терминал. Если вы работаете на винде, тоже можете поставить. Пожалуйста, не делайте этого: не занимайтесь вайб-кодингом внутри операционки Windows. Это кончится плохо. Копируем, вставляем в терминал и запускаем выполнение команды. Ну и подождём немного, сейчас это всё дело прогрузится.

Отлично! Всё поставилось и готово. Смотрите, есть небольшая инструкция: чтобы начать, запустите следующие команды или откройте новый терминал, зайдите в папку с проектом и запустите с помощью алиаса MIMO. Это нужно для того, чтобы алиас MIMO, который запускает систему MIMOCode, прописался у нас в терминале.

Безопасность и запуск

Давайте просто откроем новый терминал. И смотрите что: мы теперь можем запустить MIMO прямо сразу. Если мы будем работать из домашнего каталога, то есть из папки Home, нам выпадет предупреждение, потому что это небезопасно. Это как раз то, о чем я говорил. Нам нужно обязательно для каждого проекта создавать отдельную папку, потому что внутри будет храниться всякое полезное и важное.

Нет никакой гарантии, что в один прекрасный момент агент не сойдёт с ума и не поудаляет вам чего-нибудь. Поэтому давать ему доступ к вашей домашней папке, где хранится вообще ваше всё, не стоит. Мы на самом деле риски понимаем, и поэтому выйдем. Мы перейдем в нашу папку vibe-coding, в папку optics.

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

Откроем это дело. Все готово, у нас есть даже некий интерфейс. Мы можем здесь что-нибудь сразу, например, написать. По умолчанию у нас выбран агент MIMO 2.5 — это их самая свежая версия, бесплатная. Дело вот в чём: сразу же без входа нам дадут совсем мало токенов, и через некоторое время всё будет быстро отваливаться. Поэтому давайте используем команду login и залогинимся с помощью Xiaomi. Сейчас откроется браузер, и нам будет предложено где-нибудь залогиниться.

Регистрация и настройка API-ключа

Откроем это дело. Все готово. У нас есть даже некий интерфейс. Мы можем здесь что-нибудь сразу, например, написать. По умолчанию у нас выбран агент MIMO 2.5. Это их самая свежая версия, бесплатная. Дело вот в чём: сразу же без входа нам дадут совсем мало токенов, и через некоторое время всё будет быстро отваливаться. Поэтому давайте используем команду login и залогинимся с помощью Xiaomi.

Сейчас откроется браузер, и нам будет предложено где-нибудь залогиниться. Аккаунт Xiaomi, заходим с помощью Google, подтвердив, конечно же, согласие со всеми вот этими штуками. Да, на вашем запросе и на вашей работе с MIMO-кодом их нейронка будет обучаться. Думаю, мы это как-нибудь переживём.

Отлично, мы зарегистрировались с помощью Google, у нас спросят, в какой стране мы находимся. Обязательно посмотрим, в какой стране у нас последний выпуск КВМ, и отправляемся дальше. Придумаем себе какой-нибудь пароль. Теперь нас спросят, каким образом мы будем пользоваться этим нашим MIMO: с помощью API-ключа или с помощью покупки токенов? Мы будем использовать API-ключ. Нам сказали, что у нас нет денег, но это нормально, мы всё равно можем создать API-ключ.

Лучше держать всегда несколько отдельных API-ключей для разных агентов и для разных систем. Во-первых, вы будете знать, какой агент подключен и сколько чего он там у вас потратил, если вы будете использовать платный аккаунт. Но в целом так для безопасности лучше. Итак, нам показан API-ключ, который мы не увидим больше ни разу. Поэтому нужно его скопировать и куда-нибудь положить в какое-нибудь полезное место, ваше хранилище, какие-нибудь свитки с келоса. И, конечно, ставить его вот сюда, нажать Enter. Вроде бы ничего не изменилось, но зато у нас теперь чуть побольше токенов, и это хорошо.

Тестирование агента и анализ работы

Давайте попробуем дать нашему агенту то же самое задание, которое мы давали в Lovable, и посмотрим, что получится. Поехали. Принимаем условия и смотрим, что происходит. Мы видим справа, сколько токенов в секунду у нас скорость работы. Размышления можно здесь открыть с помощью мышки. Разверни на весь экран. Вот, можно посмотреть, что произойдёт.

То есть вот это внутри — это его мысли, это то, что он отвечает нам вслух. Иногда они, кстати, расходятся между собой, и почитать мысли довольно забавно. Иногда он отпускает комментарии про себя или про пользователя — это смешно. Итак, у нас есть показатели контекста. Контекст у нас обычно около миллиона токенов в MIMO 2.5. Сколько контекста потрачено? То есть 3%, ну да, получается типа миллион.

Скорость его работы — 4 токена в секунду, это довольно мало. Наверное, он что-то там такое изобретает. Ну да, видимо. То есть он работает над кодом, это помедленнее обычно. Обычное рассуждение в режиме чат-бота — это 25–35 токенов в секунду, это неплохой показатель. И вот эта последняя строчка показывает, сколько мы потратили денег. Раз у нас сейчас всё бесплатно, то, в общем-то, нисколько денег мы не потратим. Обратите внимание, что тут написано «временно», «бесплатно».

Проблема платных провайдеров и поиск бесплатных решений

Пока мы ждём, я расскажу вам вот о чём. Сейчас, к сожалению, наступило такое время, когда все провайдеры берут деньги за использование своих агентов. То есть даже мой любимый GitHub со своим Copilot, который был прекрасен в моём учительском аккаунте с функцией PRO, он давал что-то типа 100 так называемых премиум-запросов в месяц. То есть можно было 100 раз вызвать, например, какой-нибудь Opus 4.8. 100 раз за месяц — это типа 3–4 раза в день, это довольно много.

Если грамотно составить запрос, например, если там две итерации, можно было добавить в конце: «Не останавливайся, пока не пройдёшь по списку» или типа того. То есть можно было скормить ему большой To-Do, сказать: «Вот у тебя 10 задач в To-Do, и выполни все, повторяй, пока ты не закончишь». И это считалось одним запросом. Это было потрясающе, потому что можно было делать большие проекты буквально за один запрос.

К сожалению, два месяца назад GitHub перешёл на строгий учёт токенов, и теперь получается всего 3–4 запроса в месяц. Представляете, какая колоссальная разница? И так с большим количеством разных облачных провайдеров. Поэтому стало грустненько. Что я делаю? Если мне вдруг нужно где-то достать бесплатный агент, который работает прямо сейчас, я иду в Telegram. В Telegram есть полно всяких каналов, посвящённых ИИшкам, агентам и прочему вайб-кодингу. Их довольно просто найти. Может быть, я даже сделаю на сайте Perplexity отдельный каталог, который будет обновляться и показывать, где там что есть бесплатное. Это, кстати, хорошая идея, мне нравится.

Так вот, теперь все агенты учитывают токены, и найти бесплатный хороший можно не всегда. К счастью, Xiaomi, OpenCode, DeepSeek и все остальные периодически выкатывают бесплатное использование своими какими-нибудь моделями. Иногда сверхсовременными, то есть как раз чтобы все могли потестить и проверить, насколько это прекрасно. И это вообще отличное время для того, чтобы что-нибудь сделать эпическое, потому что вам дают мощную модель, например, на неделю. И за эту неделю вы можете целый проект сделать. Это очень круто. В остальных случаях вы пользуетесь моделями попроще, типа вот этого Gemini 1.5 или какой-нибудь DeepSeek V4. Он немножко устарел, зато...

Выбор инструментов: модели и агенты

Например, на неделю. И за эту неделю вы можете целый проект сделать. Это очень круто. В остальных случаях вы пользуетесь моделями попроще, типа вот этого Gemini 1.5 или какой-нибудь DeepSeek V4. Он немножко устарел, зато бесплатный почти всё время. И да, всякие Квены, Дипсики и прочие Сяоми работают бесплатно в режиме чат-ботов. Вы можете скормить им какие-то куски кода и что-то попросить исправить и всё такое. Это можно.

Но мы сейчас говорим именно про агентов, то есть то, что Ишка делает сама, и нам не требуется руками править код. Поэтому ищите в Телеге, ищите в интернете, в GitHub иногда встречаются целые репозитории, посвящённые именно тому, где достать бесплатную ИИшку, где взять токены и всё такое.

Проверка созданного файла

Итак, пока я всё это говорил, файл создан. Смотрите-ка, он что, сделал правда один файл всего? Ну-ка давайте сходим. Сразу видно большое удобство. У нас всё создалось именно там, где мы захотели. То есть вот в папке, в которой мы работали и откуда запускали агента, всё там сразу создалось, и нам не надо ничего скачивать. Оно всё делается у вас на компе.

Открываем Хром. Опа! Ну-ка, у нас есть лазер. Его можно включить. Так, это немножко неудобно прокручивается. А как включить лазером? Что это за кнопочки? Показать лучи, сетка, включить и выключить сетку, пауза воспроизведения. Ой, большая кнопка. А это что? Длина волны. А этот типа весь экран? Не работает его весь экран. А, это призма, которую можно крутить. А лазер не работает. Цвет белый. Видите, там что-то... То есть типа не влезает текст.

Так, может быть, дело в том, что это Firefox глючит. Давайте с помощью Хрома откроем специально. Ну, стало немножко получше. Видно лучше, но всё ещё какая-то фигня. Параллельный источник света. Всё почистили. Ещё раз открою. Достанем лазером, и его можем покрутить. И всё. Ничего не работает. Коэффициент отражения? Даже так? Глючит ползунок? Ладно, окей, хорошо.

Исправление ошибок через агента

Итак, главная, основная проблема — лазер не светится. Лазер не работает? Нет, пучка даже нет. Мы же проверили все эти штуки. Световые приборы не работают. Нет луча света. Исправь, пожалуйста. Ну, почему бы и нет? Окей.

Так, посмотрим. Вообще мне уже нравится больше. Потому что здесь нет вот этого вот огорода гигантского с TypeScript'ом и всем остальным. Просили в одном HTML-файле. Вот один HTML-файл. Отлично. Смотрим. Что тут у нас? Мысли какие? Ага. Юзер говорит, что не работают источники света, не видно луч. Так, давайте-ка я прочитаю файл, чтобы понять, в чём проблема, а потом всё поправить. Окей, рассуждение.

Смотрите-ка. Так. Давайте-ка посмотрю на весь файл, что там происходит. Надо подумать о том, что могло пойти не так. Может быть, проблема в том, как начинается луч, как он стартует и так далее. Вот это всё. Хорошо. Это всё рассуждение, напоминаю. То есть он нам не говорит вслух, это он думает в голове. То, что он думует в головке, не всегда совпадает с тем, что будет по итогу. Поэтому мы можем читать и вдохновляться, это интересно. Либо просто, опять же, подождём.

Результат работы и тестирование симуляции

Смотрите-ка, тем временем показатель 72 токена в секунду, он там что-то мощное строит. Ага, 75 токенов в секунду. Нашёл проблему, говорит? Нашёл проблему, говорит. И сразу что-нибудь там поправил. Что он там поправил? Давайте посмотрим, у него в мыслях. То есть он ничего не сказал, видите? Запнулся и ничего не написал. Исправлено. Что-то подглючивает всё это. Ну ладно. С помощью кнопки Tab можно получить готовый ответ, который нам сам себе... Спасибо, лучи появились. Сам себя похвалил.

Итак, обновляем. О! Смотрите, лучи появились, и правда. Смотрите. В прямом эфире, то есть как с TypeScript, это не работает. Или работает? А, типа... То есть вот так вот это не зависит. Да, ну хорошо. Ладно. Самое главное, что у нас поворот. Что там? Ага. Где? Глючит. Поворот, ладно. Зато мы можем вот так поменять угол.

Окей. У нас есть плоское зеркало, которое... Что? Не работает? Угу. Зеркало не отражает. Или отражать? Оно, видите, как странно? Ага. Такое вот качество. Ладно. Выпуклая линза. Выпуклость, видимо, мы не сможем, опять же, руками, да? То есть фокус мы можем настраивать, но от этого... Ну да, от этого форма не меняется. Ой, дичь какая.

Слушайте, ну, оно работает как-то. Зеркало что-нибудь отражает вообще? А, вот так вот, да. Хм. Ну понятно. Ладно, давайте последнее что-нибудь вместо лазера поставим. Подождите, а если мы возьмём какой-то другой цвет? А, ну правильно, он не рассеивается на другие цвета. Правильно. Так, возьмём параллельный источник. Они все будут, конечно же, белыми. Ну да, ну типа какая-то симуляция есть.

Эксперименты с оптикой

Ладно, давайте последнее что-нибудь вместо лазера поставим. Подождите, а если мы возьмём какой-то другой цвет? А, ну правильно, он не рассеивается на другие цвета. Правильно. Так, возьмём параллельный источник. Они все будут, конечно же, белыми. Ну да, какая-то симуляция есть. Ладно, хватит играться.

В общем, работает же? Работает. Так, у нас play, пауза, лучи включить-выключить, цвет, понятно, масштаб можно изменять. То есть вот так вот подогнать немножко. Окей. Ну давайте вот в качестве последнего задания на сегодня для этой штуки мы сделаем белый, поставим зеркало и посмотрим на угол.

Вот зеркало. Зеркало у нас не отражает. Вот так вот, да? Давайте вот что. Сделаем снимок экрана, выделим область — вот такой кусочек. Сохраним его в нашу папочку с оптикой. Назовём его, чтобы поудобнее было, scr-1.

Работа с агентом через скриншоты

И теперь скажем агенту: «Эй, послушай-ка». У нас есть файл scr-1. Ставим собаку, начинаем писать название файла, потом из списка сверху выбираем нужный файл и говорим: «Смотри, зеркало работает неправильно. Исправь отражение». Оп! Посмотрим. То есть вот, приложили картиночку. Теперь Майма на неё посмотрит. Я надеюсь, он поймёт, что с ней не так, и исправит нам зеркало.

Да, конечно, можно было бы самому описать, что происходит на изображении, что не так идёт. Если вы можете описать словами и сказать, как это должно работать, можете попробовать. Если вы ленивая задница, как я, оставляем вот это: показываем картиночку и говорим: «Сделай нормально». Нормально делай, нормально будет.

Вот он что-то там подумал, и теперь за скоростью 45 токенов в секунду немножко разогнался, смотрите, 50 уже почти, начинает нам что-то строить. Не может рассказать, что именно, но что-то он там делает. Ну что, в прошлый раз, в принципе, было то же самое: он не смог нам нормально объяснить, в чем была проблема, зато вроде как починил, и лучи появились. Посмотрим, что получится теперь.

Мысль нам тоже почему-то не показывает, видимо, это какой-то сбой именно из сетевого соединения. То есть он что-то там пишет, но мы просто это не видим. Типа готово. Проверим. У нас экран. Экран уберём. Призму уберём. Возьмём плоское зеркало. То есть оно работает как призма теперь. Ну хорошо. Мне несложно сказать ему ещё раз.

Исправление ошибок и проверка линз

Скажем, что... Так. Сохраним. Назовём это scr-2. И скажем: «scr-2, теперь зеркало работает как призма. Не отражает, а преломляет свет. Сделай правильное отражение». Какое у нас правильное отражение? Это у нас угол падения равен углу отражения. Где подсказочка, да? Из физики какого-то шестого класса.

И снова. Что-то он там подумал, нам об этом не сказал. Хотел что-то сказать, но не смог. «Готово», — говорит. «Добавлена переменная», — и дальше он не смог опять ничего сказать. Окей. Посмотрим. Обновляем экранчик, ставим зеркало. Оп! О! Всё готово. Я вот это не понял. Что такое отражение? Типа, что это: коэффициент отражения или что? Ладно. Ну всё, вот работает.

Теперь возьмём призму. Окей, поставим выпуклую линзу. Смотрите. Ого! Прикольно. Попробуем поиграться с фокусом. Фокус работает. То есть мы видим, фокусное расстояние изменяется, оно прям работает. Оно в пикселях, конечно, немножко не очень удобно, но это ничего. Главное, что работает. Вот у нас фокус, а дальше всё расфокусируется в разные стороны. Хреново работает ползунок, но это не проблема, я думаю.

Окей. Дифракционная решётка работает. По-моему, не совсем так, как надо. Давайте поставим туда красный лазер. Возьмём дифракционную решётку. Слушайте, ну да, ладно. Вот этот вот эксперимент с двумя щелями и всё такое. Ну хорошо, всё отлично. Итак, если что-то будет не работать, мы всегда можем смело сделать скриншотик, отправить, сказать: «Дружище, почини, ты не прав».

Итоги работы с MIMO 2.5

Что я хочу сказать? Подытоживая работу с MIMO 2.5: по-моему, он справился лучше. То есть, да, с первого раза он не смог сделать красиво. И это не совсем Material Design 3.0, типа нет теней там и вот этого всякого, но это можно допиливать, и это отлично.

Самое главное, что он уложился в задачу, а именно сделать один HTML-файл, а не сколько их там было — 13 файлов с TypeScript и всем остальным. А это голый HTML. Мы можем загрузить это просто на любой хостинг бесплатный, и оно будет работать. Это же потрясающе.

Так, закроем. И закроем, в общем-то, эту штуку. Мы можем, конечно, выходить с помощью там exit и всё такое, но в этом большого нет смысла. В этом нет большого смысла, если, конечно же, вы не хотите потом продолжить. Вы можете открывать MIMO с вот этой командой дополнительной с флагом S, чтобы продолжать предыдущую или какую-нибудь другую сессию. На самом деле можно гораздо проще. Вы сможете открывать MIMO в нужной папке и с помощью команды sessions выбрать нужную.

Завершение работы с сессиями

Так, закроем эту штуку. Мы можем, конечно, выходить с помощью команды exit и всё такое, но в этом нет большого смысла, если, конечно же, вы не хотите потом продолжить. Вы можете открывать MIMO с помощью дополнительной команды с флагом S, чтобы продолжить предыдущую или какую-нибудь другую сессию.

На самом деле можно гораздо проще. Вы сможете открывать MIMO в нужной папке и с помощью команды sessions выбирать нужную. То есть они будут здесь сохраняться, они запоминаются, и вы всегда продолжите с того места, с которого нужно.

О, кстати, смотрите-ка, это, видимо, глюк был именно терминала. Вот у нас есть объяснение, его рассуждения... Ну-ка посмотрим. Да, рассуждения видны, объяснения тоже на месте. Если интересно, всегда можно ознакомиться и почитать. Вот он всё нашёл, ошибки и исправился. На этом закончим. Можем закрыть terminal.

О понятии MVP

Вот такой небольшой обзор на Xiaomi Maimo 2.5 у нас получился. Я думаю, что это идеальная модель для небольших повседневных задач или для старта небольшого проекта. И прежде чем мы перейдём к обзору ещё одного агента OpenCode, я хочу остановиться на очень важном понятии, которое называется Minimal Viable Product или MVP.

Это очень важное понятие, которое почему-то школьники либо игнорируют сознательно, либо их просто с этим не познакомили на предмете «Индивидуальный проект». Поэтому давайте поговорим о нём здесь. Мне очень нравится вот это изображение: как построить минимально жизнеспособный продукт? Как надо и как не надо делать? Как правильно — показано внизу.

Ошибка при создании сайта «Педобраз»

В качестве примера я приведу вам свой сайт «Педобраз». Когда мне только пришла в голову идея создать сайт, который будет сам себя наполнять контентом, я по своей неопытности или по глупости задал Клоду большую задачу. Я сказал, что мне нужна система, которая будет брать данные из источников, в частности с каналов Telegram, обрабатывать их с помощью локальной языковой модели, генерировать для неё обложки, генерировать данные для SEO-оптимизации и всё это загружать на хостинг, где крутится WordPress.

Клод, конечно, сказал: «Давай сделаем». И дальше целую неделю я каждые пять часов видел, как у меня заканчиваются токены. То есть он сжирал все лимиты ежедневно по много раз. В конце концов, за три или четыре дня он съел у меня весь недельный лимит. Я дождался неделю, через неделю всё повторилось, и через две недели я получил гигантского мегамонстра.

Не работало абсолютно ничего. Это был набор разрозненных каких-то модулей, каждый из которых, возможно, и был гениальным. Например, там был модуль, который сопоставляет новый материал со всеми существующими с помощью векторов и семантических сетей для того, чтобы определить, какую новость порекомендовать читателю ещё, чтобы подобрать правильные теги и так далее. Это, конечно, идея отличная, но не работало ничего. Я потратил кучу токенов, я потратил кучу времени и ничего не добился.

Поэтапная разработка системы

Тогда я решил, что нужно делать всё с нуля. И по очереди. Давайте немножко прокрутим вниз. Вот у меня есть карта моей системы. Прошу прощения, что текст немного вылезает. Как только у меня обновится лимит токенов, я всё починю, честное слово.

Каждый кусок системы был написан отдельно в тот момент, когда он был нужен. Мне нужно было взять материал и обработать его. Для этого у нас есть первая стадия, которая разбирает пост в источнике, то есть у нас есть Telegram-канал. Берется пост и начинается его разбор: что там у него есть внутри? Отсеивается реклама, есть отсев военной тематики, потому что это, сами понимаете, минное поле.

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

На выходе с каждой стадии получается небольшой JSON-файл, в котором написано, что это такое и что с этим делать дальше. Если это реклама, то он просто отправляется в стоп-лист. Если это настоящий текст, который стоит обрабатывать, он идёт дальше. И теперь он проходит дедупликацию, то есть проверку на то, что такой же пост уже был обработан раньше. Например, если в пяти каналах одновременно появилась одинаковая реклама, то незачем обрабатывать четыре других канала. Мы видим точно такой же текст, его можно выкинуть.

Дальше переход на третью стадию, где на моей старенькой видеокарточке, на Gemma 3 с всего 4 миллиардами параметров, делается небольшой ресерч в интернете с добавлением контекста и фактов. И так далее. На каждом шагу удобно посмотреть, что сгенерировалось, протестить это и посмотреть, все ли правильно. Дальше вы добавляете всё, что вам нужно, и если вас это устраивает, вы просто добавляете новые фишки, не опасаясь, что у вас что-то сломается.

Принцип построения продукта

Это возвращает нас к моей любимой картиночке. Вы сначала строите что-то, что едет. Потом вы захотите этим управлять — вы добавите туда руль. Если вас не устраивают маленькие колёса, сделайте колесо побольше.

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

Установка и запуск OpenCode

На каждом этапе вы просто добавляете нужные фишки, как делают это дядечки с моего любимого видеоканала. А теперь давайте перейдём к последней нашей части, а именно к агенту OpenCode. OpenCode хорош тем, что у них часто проходят всевозможные акции на бесплатные агенты. То есть они не привязаны ни к чему, никаким Xiaomi и так далее. И да, агенты разные, они бывают разного качества, но какая нам с вами разница, верно?

Копируем, как всегда, установочную команду. Вставляем её в терминал и подождём, пока всё установится. Отлично, всё готово. Перезапускаем терминал ещё раз. Сходим в папку WipeCoding, создадим папку Optics2 и в неё сходим. И здесь откроем OpenCode. Как вы видите, интерфейс практически такой же, поэтому нам будет очень удобно этим всем пользоваться.

Выбор модели и хитрости с аккаунтами

Смотрите, по умолчанию у нас выбрана модель, которая называется Big Pickle. Говорят, что она вроде как неплохая для кодинга. Я с ней практически не работал, она мне не внушает доверия, поэтому я предлагаю переключиться на более привычную нам модель. Для этого нам нужно обязательно сделать Connect, как написано внизу, и используем OpenCode Zen.

Более того, раз уж мы с вами здесь немного бомжуем, то скажу по секрету: можно неограниченное количество раз регистрировать новые аккаунты и просто открывать OpenCode.zen заново, пользоваться нужными моделями, а как только они заканчиваются — всё повторять. Я так делал уже много раз. Да, мне немного стыдно, но ничего с этим не могу поделать.

Получение API-ключа

Выбираем OpenCode.zen. Нам нужно перейти вот на этот сайтик для того, чтобы получить API-ключ. Давайте туда сходим. «Надежные оптимизированные модели для кодинг-агентов» — то, что нам нужно. Заходим, конечно же, с Google. Напоминаю, что Google-аккаунт — это база, он всегда должен быть. Аккаунт GitHub, кстати, тоже.

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

Работа с моделями DeepSeek и MIMO

Итак, вставляем ключ, нажимаем Enter. Теперь можно выбрать подходящую модель. Смотрите, справа будет написано, что у нас сейчас free. Тут, кстати, MIMO 2.5 всё ещё есть free, но я использую OpenCode для того, чтобы использовать DeepSeek. Я использую DeepSeek как альтернативу MIMO Code, потому что иногда с некоторыми задачами он справляется лучше. Не всегда. Поэтому имейте под рукой двух агентов и проверяйте, как они выполняют ту или иную задачу. Как только вас это устраивает, оставляйте результат.

И да, иногда можно одновременно работать с двумя агентами внутри одной папки. Они могут делать что-то там вместе. Для этого вам понадобится GitHub и несколько веток, конечно. Выбираем, насколько много и насколько сильно он будет думать. Так как эта модель Flash, она работает быстро, но она менее ограничена в своих рассуждающих способностях. Поэтому поставим max, чтобы выжать из него насколько возможно, что получится.

Управление агентом и контроль процесса

Снова пишем точно такую же задачу с точностью до запятой. Запускаем с помощью Enter. Точно такой же интерфейс. Справа контекст: сколько контекста использовано и сколько долларов потрачено. Обращаю ваше внимание, что контекст DeepSeek намного меньше, чем у MIMO Code — по-моему, 150 или 300 тысяч токенов.

Вы можете переключаться между агентами с помощью команды Agents. Там вы можете выбрать любой агент из списка. Пока агент думает или работает, там чего-то пишет, вы можете писать следующий запрос, нажать Enter, и запрос будет поставлен в очередь. То есть, когда агент прекратит одну фазу рассуждений или прекратит что-то писать, то, что вы сказали, будет добавлено ему в контекст. Таким образом вы можете немного корректировать его поведение. Если вы видите, что он рассуждает, например, не в ту сторону, вы можете его поправить, сказать: «Не-не-не, подожди, ты вот подумал вот так, а на самом деле это неправильно. Подумай вот о чём». Это иногда помогает.

И снова напоминает нам о том, что вайб-кодер должен следить за тем, что происходит. Не нужно просто отпускать агента в свободное плавание, типа оставил, ушёл, забыл. Так не работает. Вернее, это работает с некоторыми моделями, но с бесплатными — почти никогда. Поэтому внимательно смотрите, что он там думает, что он пишет. Вы должны это понимать и уметь вовремя остановить. Для этого, кстати, есть кнопочка Escape. Остановить, если он делает что-то не то, или с помощью дополнительного запроса направить в нужную сторону — это всё важно.

О, пошли рассуждения. Ничего себе, сколько он там всего придумал сразу. Видите, как он быстро всё вывалил? Это потому, что модель Flash рассчитана на быструю-быструю работу. Модели Flash обычно немножко тупее основных моделей, тем более тупее модели Pro. Зато мы включили им так называемый effort, то есть усилие на максимум.

Особенности работы модели Flash

О, пошли рассуждения. Ничего себе, сколько он там всего придумал сразу. Видите, как он быстро всё вывалил? Это потому, что модель Flash рассчитана на быструю-быструю работу. Модели Flash обычно немножко тупее основных моделей, тем более тупее моделей Pro.

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

Попытка исправления через скриншот

Вот, говорит, готово. Файл index создан, всё включено: лазеры, призма, линза. Вау, физика, управление, перетаскивание элементов. Отлично, открываем в браузере. Открываем в браузере — ничего нет. Ничего не нажимается, ничто не работает. Есть кнопочка «что-то скачать», только мы не видим, что. Поворот свойств... Да ладно, давайте скажем, что... А, подождите-ка.

Окей, давайте тогда сделаем ему скриншот. Сделаем скрин и скажем, что ничего нет. Сохраним Optics 2, назовём это Scr1. Открываем снова терминал и скажем: «Эй, у нас есть...» — и скажем, что на холсте ничего нет, кнопки не нажимаются, ничего не работает. Пусть сам разбирается. Скормили ему скриншотик. Да, посмотрим. «Хотел отправить мне скриншот, только я не могу посмотреть». Угу, это плохо. То есть там он мог посмотреть на скриншоте, а этот не может. Очевидно, DeepSeek V4 Flash не умеет в мультимодальность, не умеет смотреть на картинки. Ладно, я думаю, может, он сам разберется и ему будет норм.

Исправление ошибок с помощью MIMO

Ещё как вариант мы можем сделать вот что: откроем ещё один терминал Optics 2 и натравим на него MIMO. Сейчас держим наготове MIMOCODE. Справа смотрим. Смотрите, почему холст у нас пустой? Ничего не работает. Теперь починим JS-ные ошибки. 22 секунды он там рассуждал. Это долго. Это много. Окей. Я надеюсь, сейчас он поймет, что он сделал не так, и поправит то, что нужно.

Нашёл, говорит, и исправил проблемы. «Не поддерживается старыми браузерами». Но вообще-то у нас не то чтобы старый браузер. Ну ладно. Раз исправился, давай посмотрим. Вообще ошибка инициализации. Ну, супер вообще. Ладно, давайте проверим. То есть мы не можем это скопировать, да? Потому что ничего не работает. Хорошо, откроем консоль. Откроем консоль, скопируем журнал консоли, вставим ему и скажем: вот это всё, потенциально небезопасная штука, ничего не работает, висит ошибка, вот лог консолей. Исправь. Исправь всё. Всё. Исправь всё.

Давайте вот что. Копнем. Это у нас Optics 2. Создаем папку Optics 3. В неё копнем файлик. Возьмем MIMO код и, знаете что? Попросим MIMO исправить за DeepSeek. Была задача написать, не собрать, а написать симулятор оптических явлений. Ничего не работает. Исправь все ошибки и заставь работать как надо. А пока MIMO работает, мы идём, обновляемся и смотрим.

Результаты работы и итоги

Опа! Так, это лазер, я просто нажал лазером, поэтому... Ну ладно, немножко тупит, тормозит почему-то. Ну ок, зато на русском языке, кстати. Просили на русском? Не просили. Смотрите, как интересно. То есть он как-то вот так вот пропускает, не пропускают, то есть наполовину работа не работает. Ну, видимо, такая же болячка была в прошлый раз, помните, да? Ну, что-то такое было, не очень. Красный, зелёный, синий, длина волны. Это очень странно.

Ладно, линза. Ну в общем, да. То MIMO тут пытается чего-то исправлять. Ничего себе он там придумал. Ну ладно. А, ну экран — это, видимо, просто... О! Наличие линзы вот здесь где-то просто всё ломает. Видите? А если будет так пониже? А если линза будет ниже? Полная фигня, слышите? Ну, дизайнчик-то, может, конечно, и ничего, но само по себе что-то как-то прям совсем не очень. Давайте дождёмся, что там MIMO исправляет, и на это посмотрим. Если будет норм, ну значит оставим.

Давайте подведем пока некоторые итоги. Итак, Lovable сделал нам красивенько, опять же с помарками и ошибками, но оно завелось. Правда, при этом использовался там TypeScript и вообще целый проект. Это, конечно, хорошо, но не очень следовало инструкции. Кстати, заметьте. Видите, здесь есть надпись «delegating»? Он хотел создать субагента и делегировать ему некоторые свои задачи. Это вообще очень клёвая штука: когда агент вызывает субагентов, то есть типа маленькие копии себя, которые одновременно выполняют несколько задач.

Например, если ему нужно исследовать несколько файлов и сопоставить из них какие-то данные, он создаст несколько субагентов, там 3–4. Они одновременно будут исследовать файлы, то есть просто их прочитают, сделают summary, например, и скинут в большой агент. А он потом решит, что с этим делать. Lovable нам дал мощный большой проект на TypeScript'е и тем самым нарушил наши требования сделать один HTML-документ. MIMO справился не без ошибок, но в целом неплохо. То есть после небольшого допиливания всё стало прям почти норм. Особенно мне нравится вот эта приколюха с белым светом. Это прям...

Сравнение работы MIMO и DeepSeek

Они одновременно будут исследовать файлы, то есть просто их прочитают, сделают summary, например, и скинут в большой агент. А он потом решит, что с этим делать. Lovable нам дал мощный большой проект на TypeScript и тем самым нарушил наши требования сделать один HTML-документ. MIMO справился не без ошибок, но в целом неплохо. То есть после небольшого допиливания всё стало прямо почти норм.

Особенно мне нравится вот эта приколюха с белым светом. Это прямо клёво. Я, правда, всё ещё не уверен, что вогнутая линза вот так работает, но я просто ничего не понимаю в оптике. Но я вижу, что фокус работает. То есть я считаю, что MIMO справился лучше других. Давайте посмотрим, что он там... О, он нашёл какую-то критическую ошибку и сейчас её исправляет. Ну хорошо, подождём.

А пока про DeepSeek. Вот этот бесплатный DeepSeek версии 4 нам дал, в общем-то, негодную штуку вообще. То есть для того, чтобы она заработала, её нужно ещё как-то исправлять. Давайте посмотрим, что он там наисправлял сам. Слушайте, ну да, конечно, полная фигня, потому что, видите, призма вообще не работает как надо.

Можно количество лучей настроить, это, конечно, прикольно, но опять же, это можно добавить потом. Это никуда не денется. А вот базовые штуки — эти преломления внутри призмы — вообще не работают. Что такое делитель? Это типа дифракционная решётка или что? В общем, версия DeepSeek мне вообще не понравилась.

О выборе основного агента

Я думаю, что DeepSeek не справился, мне не понравилось. Мне понравилось, как справился MIMO 2.5, поэтому я его использую для повседневных задач. То есть у меня есть основной агент — это Клод. Я его переключаю из Sonnet в Opus, Haiku и так далее по мере необходимости.

Опять же, это стоит денег, у него есть ограничения по количеству токенов за несколько часов, за несколько дней и так далее. Это не всегда удобно. Плюс ради экономии токенов всегда можно использовать какого-нибудь агента попроще, бесплатно. Но для более сложных задач, даже вот для таких весёлых тренажёрчиков, как здесь, всё-таки не подходит.

Анализ исправлений и текущего состояния проекта

Окей, я так понимаю, что он закончил. Говорит, что вот вам саммари всех найденных багов, но, видимо, не дописал. Тут у него были какие-то размышления, которые нам опять не показали. Видимо, опять же из-за косяка, как было в прошлый раз.

А вообще, знаете что? Давайте мы выйдем. Мы же в прошлый раз смотрели, как можно скопировать эту самую сессию, вставить и зайти обратно. Покажут нам? Да, вот, отлично. Bug 1 critical. Угу. Так, 2, 3, 4. Ну, хорошо. Значит, он нам всё, видимо, как починил. Говорит, что all fixes look good. Ладно, проверяем, какие у него там fixes look good. Смотрим.

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

А что такое линза плюс и минус? Что за делитель? Он ничего не делит. Делитель ничего не делает, это просто зеркало получилось. А экран... А, ну это просто экран, да. Ой, зато смотрите, зато экран с ножкой. То есть он типа стоит как экран. Ну потрясающе. В общем, я так понимаю, всё-таки да: MIMO пытался что-то там честно починить, но тут всё настолько изначально было плохо, что уже ничего особо и чинить-то и не получилось. Ну да, дифрактор не работает.

Стратегия развития проекта

Окей. Считаем это отличным началом для будущего проекта, потому что здесь всё потихонечку работает. Все небольшие огрехи мы можем легко починить с учётом того, что MIMO умеет смотреть на скриншоты. Вы ему показываете, объясняете, чего хотите, и он вам всё сделает.

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

Потом вы можете, например, сходить в Gemini, сходите к Google и сказать: «Кстати, это хорошая идея. Давайте вот мы скажем, что у меня есть вот такой симулятор оптики. Что можно улучшить? Что добавить?». Включим 3.1 Pro для рассуждений. Flash 3.5 хорош для однотипной работы, например, с большими объёмами текста. Нам нужно для рассуждения, нужно, чтобы он подумал, поэтому мы выбираем 3.2 Pro и Extended Thinking, чтобы он побольше подумал. И скажем: «Давай, подумай».

Сейчас он проанализирует то, что у нас есть. Отличный проект. Код написан аккуратно. Логика трассировки лучей читается легко. Работа с EOS Creep переведена чисто. Земля на площади. Быстро, легковесно. Техническая модель. Так, что можно сделать? Частичное отражение светоделителей, интенсивное затухание лучей, дисперсия по формуле Каши. Господи, я ненавижу, у меня флешбэки сразу метовские.

Пользовательский опыт, интерфейс. Можно здесь добавить архитектуру оптимизации кода, рендер по требованию. Смотрите-ка, новые элементы на панели: светофильтр, непрозрачные препятствия, щели, изогнутые света. Вот оптоволокно! Добавить огонь вообще!

Идеи для функционала

Что можно сделать? Частичное отражение светоделителей, интенсивное затухание лучей, дисперсия по формуле Каши. Господи, я ненавижу, у меня сразу флешбэки метовские. Пользовательский опыт, интерфейс. Можно здесь добавить архитектуру оптимизации кода, рендер по требованию.

Смотрите-ка, новые элементы на панели: светофильтр, непрозрачные препятствия, щели, изогнутые света. Вот оптоволокно! Добавить огонь вообще! Экспорт-импорт сцены, чтобы можно было сохранять. Во! Идеально! Конечно, это же гениально — чтобы нужно было сохранять и передавать потом это. Ну вообще огонь.

Давай добавим побольше приборов. Какие можешь посоветовать? Назови как можно больше и дай краткие описания. Да? То есть прям ультимативный мегакомбайн оптики, как мы и хотели изначально.

Путь к MVP

То есть у нас сейчас уже есть каркас. Мы немного потратим времени в начале для того, чтобы оптимизировать код, чтобы сделать его чистым, красивым и всё такое. А дальше на него начинаем накатывать дополнительные фишки.

Смотрите, сколько: светоделитель, сферические зеркала, дихроичное зеркало, ретрорефлектор, поглотители, господи, апертура. Вау, вау. И потом каждый вот этот кусочек мы просто копируем и говорим агенту: «Сделай вот это». Что он делает? Который не просто поглощает лучи, а ещё их измеряет и так далее.

И вот это, постепенно друг на друга наслаивая, когда у вас уже готов каркас, — это идеальное воплощение MVP. У вас есть этот самый MVP, который можно потыкать, показать на предзащите, который вы уже сделали буквально вот сейчас. Кстати, вот эти штуки тоже стоит починить, видите? Она нормально не работает. Крутилка. Вот. Вы это показываете, все видят, что вы поработали, что у вас уже всё готовое буквально есть и осталось всего лишь допилить, и вы спокойно доделываете свою работу. Вот и всё.

Завершение разбора

На сегодня всё, друзья. Как обычно, я хотел сделать небольшой ролик с кратким обзором. В итоге получился полноразмерный разбор целых двух агентов и ещё и принципа MVP. Но я думаю, что так полезней.

Всем спасибо, друзья! С вами был Педобраз. Подписки, лайки, комментарии. Если у вас есть вопросы — пишите в комментариях, задавайте, постараюсь ответить. Если у вас есть практические вопросы по агентам и всякому такому, тоже пишите их в комментарии, постараюсь ответить.

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