Как работает Donna.
В феврале я выпустил Donna(оригинальный пост) — CLI-утилиту для запуска агентных сценариев как стейт-машин и их описания в Markdown-файлах.
Поскольку я разрабатывал её одновременно разбираясь как работать с агентами, у меня получился переусложнённый, универсальный монстр. Donna имела много полезных функций, но совместно они слишком сильно ограничивали окружение разработчика и требовали слишком много времени на изучение.
Поэтому, набравшись опыта, я решил следовать философии Unix и отрефакторить монолит в набор меньших инструментов, каждый с отдельной чёткой зоной ответственности. Новая Donna — это первый из них (второй — это depmesh — я расскажу о нём в отдельном посте).
Новая Donna решает проблемы управления потоком исполнения агентов при длительной работе. Логика следующая:
Donna исполняет сценарии как детерминированные конечные автоматы, поэтому агент может сосредоточиться на рассуждении, генерации кода и другой агентной работе.
Rust медленно, но неотвратимо, перерабатывает кодовую базу человечества.
Лет 5 назад я изучал документацию Rust и решил, что Rust мне не нравится.
В прошлом году мне потребовалось прототипировать игровую логику и я выбрал для этого Rust, так как ничего лучше не нашёл: Zig выглядел сырым, а C++ с каждым стандартом становится всё мертвее сложнее и сложнее.
В итоге у меня накопилось 10 страниц заметок, которые неожиданным образом ужались в очень компактное утверждение в заголовке. И если вам лень читать дальше, то это похвала, а не критика.
Однако, я всё ещё придерживаюсь своего мнения из предыдущего поста:
Хороший инструмент не ограничивает своего пользователя, поскольку разработчик инструмента никогда не предугадает все варианты использования.
Согласно моим представлениям о прекрасном о том, как работают технологии, вероятность успеха языка программирования, построенного на принципах Rust, стремится к нулю. Однако de facto ситуация совершенно противоположная — Rust стремительно набирает популярность и поработав с ним, я признаю, что это хороший и мощный инструмент. Но, ё-моё, неправильный, ну кто ж так делает-то.
На мой взгляд, успех Rust — это следствие двух факторов:
Я попробую кратко описать главное концептуальное отличие Rust от других языков, почему оно одновременно является его силой и слабостью и почему уже несколько лет идёт волна переписывания всего на Rust.
Этот пост основан на строго субъективном опыте
Я использовал Rust только год; для прототипирования и экспериментирования; в геймдеве.
Соответственно, я никаким образом не могу претендовать на экспертность в языке и иметь сколь-нибудь объективное мнение на его счёт.
Например, некоторые сложности, которые я испытывал, могли быть вызваны тем, что я одгновременно прототипировал и учил язык. То есть следствием моего выбора, а не свойств языка.
В то же время у меня достаточно опыта разработки, чтобы экстраполировать этот год на более общие случаи и сформировать своё субъективное мнение о Rust. Этим я в этом эссе и займусь.
Life is like a hurricane here in Ham-burg…
Как вы можете знать, я заканчиваю творческий отпуск. Чем буду заниматься дальше, пока неизвестно, но у меня накопился список возможных проектов, которые мне очень интересны. По этим проектам я готов обсуждать партнёрство прямо сейчас.
Если вы молодой стартап или только собираетесь его создавать, то я хорошо впишусь в роль CTO / технического Co-Founder (менеджерство и продуктовую часть тоже могу взять на себя). Если вы более зрелая компания, начинающая новый проект, то могу его вести под ролью с любым названием, которое вам будет по душе.
Если вы следите за моим блогом, то уже имеете представление обо мне. Но на всякий случай вот моё CV. У меня 19 лет опыта в разработке софта: от геймдева на C++ до платёжных бэкендов на Python, от гаражной независимой разработки до крупных проектов.
Для удобства я разбил интересные мне проекты на несколько групп:
Запись подкаста на YouTube
Приятно пообщались про агентов, LLM и прочие ИИ штуки.
Агенты чегой-то кодят (с) ChatGPT
Подводя итоги прошлого года я говорил, что агенты станут главной темой 2026. Последние месяца три я постепенно разбираюсь с их использованием для разработки, уже можно обсудить промежуточный результат.
Формально, coding agents — это подмножество ИИ агентов, но для простоты в этом тексте они будут использоваться как синонимы.
Как я использовал агентов:
Поскольку агенты — штука новая, то:
Поэтому этот пост будет в форме субъективных заметок-тезисов.