Чему вы научитесь
- объяснять, чем агент отличается от чат-бота, и видеть слабые места наивных подходов;
- работать с ChatModel: генерация, стриминг, опции вызова, шаблоны промптов, структурированный вывод;
- собирать графы из узлов и рёбер на Eino compose: Chain, Graph, Lambda, ветвление, параллельные ветви, типобезопасность через дженерики;
- описывать инструменты (tool.Info, InvokableTool, ToolsNode) и связывать их с моделью через ToolCall и ToolMessage;
- реализовывать цикл ReAct вручную и через готовый react.Agent, ставить лимит шагов и защиту от зацикливания;
- управлять состоянием через State и checkpoints, делать interrupt/resume и human-in-the-loop, добавлять таймауты, отмену и ретраи;
- собирать RAG-пайплайн (Embedding, Indexer, Retriever) и агентный RAG, подключать инструменты по MCP;
- наблюдать и отлаживать агента через Callbacks и трейсинг в LangFuse;
- собрать собственный терминальный агент-кодер Mini Code от каркаса до версии с интерфейсом.
О курсе
Практический курс по разработке AI-агентов на Go. Мы собираем агента Mini Code (аналог Claude Code) своими руками: от первого вызова языковой модели до рассуждающего ассистента, который пользуется инструментами, сам пишет код, помнит контекст диалога и ищет ответы прямо в коде проекта.
Большинство материалов про LLM сводится к "подключи готовую библиотеку и вызови метод". Здесь другой подход. Мы разбираем, из чего агент собран внутри, и собираем каждую часть руками: сообщения и модель, граф с узлами и ветвлением, цикл рассуждения, инструменты, память, поиск по коду. К концу курса у вас не пример из документации, а собственный рабочий кодинг-агент, который вы понимаете до последней строчки.
Фреймворк и окружение
Фреймворк курса, Eino от CloudWeGo, это нативный Go-фреймворк для LLM-приложений с графовой оркестрацией, готовым ReAct-агентом, инструментами, состоянием и interrupt/resume. Он написан по правилам Go: дженерики, явные ошибки, интерфейсы. Модели запускаем локально через Ollama, поэтому облачные ключи и оплата за токены не нужны. Всё работает на вашей машине, и экспериментировать можно сколько угодно.
Сквозной проект Mini Code
Mini Code запускается в папке проекта, индексирует код и понимает запрос на естественном языке: "объясни функцию safePath", "почему падает сборка?". Сначала он только читает код и отвечает по нему, а ближе к финалу сам пишет и правит файлы и запускает команды. Проект растёт по ходу курса, и к финальной версии Mini Code умеет:
- искать по коду семантически (
search_code) и буквально (grep), читать файлы (read_file,list_dir); - писать и править код (
write_file,edit_file) и запускать командыgo(run_command), каждый раз спрашивая подтверждение; - помнить сессию между запусками (
session.json) и продолжать разговор после перезапуска; - подключать внешние инструменты по протоколу MCP: историю коммитов (
git_log) и дерево проекта (project_tree); - отправлять трейсы в LangFuse и показывать собранный граф в плагине EinoDev;
- работать в трёх режимах: интерактивный REPL, одноразовый вопрос через
-qдля скриптов и CI, терминальный интерфейс-uiна Bubble Tea и Lip Gloss в духе Claude Code.
Для кого этот курс
Начальные требования
Начальное знание языка Go
Наши преподаватели
Как проходит обучение
Курс идёт двумя переплетёнными линиями. Тематические модули дают теорию и практику конкретной части Eino: компоненты, оркестрация, инструменты, ReAct, состояние, RAG, MCP, наблюдаемость. Сразу за каждым таким модулем идёт модуль сквозного проекта Mini Code, где свежая теория тут же ложится в живой код. Так материал не повисает в воздухе: вы изучаете ReAct и в том же блоке превращаете линейный вызов Mini Code в настоящий цикл рассуждения. Каждый тематический модуль заканчивается проверкой знаний.
Программа курса
Что вы получаете
- объяснять, чем агент отличается от чат-бота, и видеть слабые места наивных подходов;
- работать с ChatModel: генерация, стриминг, опции вызова, шаблоны промптов, структурированный вывод;
- собирать графы из узлов и рёбер на Eino compose: Chain, Graph, Lambda, ветвление, параллельные ветви, типобезопасность через дженерики;
- описывать инструменты (tool.Info, InvokableTool, ToolsNode) и связывать их с моделью через ToolCall и ToolMessage;
- реализовывать цикл ReAct вручную и через готовый react.Agent, ставить лимит шагов и защиту от зацикливания;
- управлять состоянием через State и checkpoints, делать interrupt/resume и human-in-the-loop, добавлять таймауты, отмену и ретраи;
- собирать RAG-пайплайн (Embedding, Indexer, Retriever) и агентный RAG, подключать инструменты по MCP;
- наблюдать и отлаживать агента через Callbacks и трейсинг в LangFuse.
- Главный результат курса: собственный Mini Code, рабочий терминальный агент-кодер, который читает и пишет код, помнит контекст, ищет по проекту и подключает внешние инструменты. Это не пример из документации, а инструмент, который вы понимаете целиком и можете развивать дальше: мульти-агентные схемы, веб-поиск, интеграция с IDE.