От LLM к действиям: как создать AI-агента на Go и GigaChat
Разработчик из интереса построил AI-агента на Go, применив LangChainGo, инструменты, цепочки запросов и интеграцию с русским GigaChat. В статье — полный разбор

Разработчик вдохновился докладом про AI-агентов и решил попробовать построить своего на Go. Было непросто, но получилось — теперь делится опытом и разбирает, как заставить Go-приложение не просто генерировать текст, а думать и действовать.
Архитектура: как агент выбирает действия AI-агент отличается от
обычного LLM тем, что это не генератор текста, а система с решениями. Когда пользователь дает задачу, агент анализирует её, выбирает подходящий инструмент (поиск, вычисление, API-вызов), вызывает его, получает результат и думает дальше. Это цепочка: получить задачу → LLM выбирает шаг → выполнить инструмент → обновить контекст → повторить, пока задача не решена. Сложность в том, чтобы правильно описать инструменты в промпте, чтобы LLM понимала, когда и какой использовать. Неправильное описание = агент выбирает не то и идёт по неверному пути.
LangChainGo: фреймворк для
Go-разработчиков Разработчик выбрал LangChainGo — это Go-биндинг LangChain, фреймворка для LLM-приложений. Он берёт лучшее из Python-версии, но работает на Go, что важно для production-систем. LangChainGo предоставляет: Цепочки запросов (Chains) — шаблоны для последовательности шагов с LLM Инструменты (Tools) — функции, которые агент может вызвать (поиск, вычисление) Memory — контекст разговора между запросами пользователя MCP (Model Context Protocol) — стандарт для подключения внешних инструментов * Поддержка разных LLM — от OpenAI до локальных моделей Главное преимущество: можно писать production-код на Go, не прыгая на Python. Это значит быстрый деплой, меньше зависимостей, лучше производительность.
Интеграция с
GigaChat и MCP Вместо OpenAI API автор решил использовать GigaChat — русский LLM от Сбера. Это удобнее для работы с кириллицей и локальными данными, плюс соответствие требованиям. Подключение GigaChat через LangChainGo было не очевидно. В документации примеры только для OpenAI. Пришлось писать кастомный адаптер, чтобы LangChainGo понимала, как общаться с GigaChat: правильный формат запроса, обработка токенов, переводы ошибок. MCP на первый взгляд казался сложным протоколом, но оказался простой идеей: инструмент — это функция, которая получает JSON-запрос и возвращает JSON-ответ.
«На первый взгляд казалось, что Go-экосистема для AI тоньше, чем Python.
На самом деле она просто компактнее — и это плюс.»
Сложности и уроки Первая проблема: цепочка запросов ломается не очевидно.
Если агент выбрал неправильный инструмент, контекст запутается, и он не вернётся на верный путь. Пришлось добавить валидацию промптов и fallback-логику — если первый инструмент не помог, попробовать другой. Вторая: отладка. Когда LLM думает неправильно, сложно понять, в чём причина. Пришлось логировать каждый шаг цепочки, каждый выбор инструмента, каждый результат. Без этого слепо ловить ошибки. Третья: интеграция кастомных инструментов. MCP хорош на бумаге, но когда нужно интегрировать внутренний API или сложный инструмент — нужна дополнительная работа. Пришлось писать враппер, который преобразует результат во что-то, что LLM может понять.
Почему это важно
Для Go-разработчиков это означает, что AI-агенты больше не только для Python-разработчиков. LangChainGo даёт возможность встроить интеллектуальную систему в production Go-сервис. Это значит быстрые системы, которые не просто генерируют текст, а решают задачи.