00. Предисловие¶
Зачем это нужно?¶
В классическом программировании вы пишете алгоритм: if A then B. Вы точно знаете, что произойдет.
В AI Engineering вы описываете Цель и даете Инструменты. Агент сам строит алгоритм достижения цели в реальном времени.
Этот учебник научит вас создавать автономных AI-агентов на Go — системы, которые могут самостоятельно решать сложные задачи, взаимодействовать с реальным миром и учиться на результатах своих действий.
Реальный кейс¶
Ситуация: Вы создали чат-бота для DevOps. Пользователь пишет: "У нас проблемы с базой, разберись"
Проблема: Обычный чат-бот может только отвечать текстом. Он не может реально проверить метрики, прочитать логи или применить фикс.
Решение: AI-агент с инструментами может самостоятельно проверить метрики → прочитать логи → выдвинуть гипотезу → применить фикс → верифицировать результат.
Что такое AI Agent?¶
Агент — это система, использующая LLM в качестве "движка рассуждений" (Reasoning Engine) для восприятия окружения, принятия решений и выполнения действий.
Отличие от ChatGPT¶
| ChatGPT (Chatbot) | AI Agent |
|---|---|
| Пассивен. Отвечает на вопрос и ждет. | Активен. Имеет цикл (Loop). |
| Один запрос → один ответ. | Может выполнить 10 действий подряд для решения одной задачи. |
| Не имеет доступа к реальному миру. | Имеет инструменты (Tools) для взаимодействия с системами. |
Пример:
- ChatGPT: "Как перезагрузить сервер?" → Ответ: "Используйте команду
systemctl restart nginx" - Agent: "Перезагрузи сервер" → Агент сам вызывает
systemctl restart nginx, проверяет статус, сообщает результат.
Уравнение Агента¶
Компоненты¶
- 🧠 Brain (LLM): "Мозг" агента. Принимает решения на основе контекста.
- 🛠 Tools: "Руки" агента. Позволяют взаимодействовать с реальным миром.
- 📝 Memory: История диалога и долгосрочная память (RAG).
- 📋 Planning: Способность разбить задачу на шаги.
Runtime (Среда выполнения)¶
Runtime — это код агента, который вы пишете на Go. Он связывает LLM с инструментами и управляет циклом работы агента.
Что делает Runtime:
- Парсит ответы LLM (определяет, хочет ли модель вызвать инструмент)
- Выполняет инструменты (вызывает реальные функции Go)
- Управляет историей диалога (добавляет результаты в
messages[]) - Управляет циклом (определяет, когда остановиться)
Важно: Runtime — это не отдельная система или фреймворк. Это ваш код, который вы пишете в main.go или в отдельных модулях.
Пример:
// Это Runtime — код, который вы пишете
func runAgent(ctx context.Context, client *openai.Client, userInput string) {
messages := []openai.ChatCompletionMessage{...}
for i := 0; i < maxIterations; i++ {
resp, _ := client.CreateChatCompletion(ctx, ...)
msg := resp.Choices[0].Message
if len(msg.ToolCalls) > 0 {
// Runtime выполняет инструмент
result := executeTool(msg.ToolCalls[0])
// Runtime добавляет результат в историю
messages = append(messages, ...)
}
}
}
См. также: Глава 09: Анатомия Агента
Примеры агентов в разных доменах¶
DevOps (наш основной фокус)¶
- Задача: "У нас проблемы с базой, разберись"
- Действия агента: Проверяет метрики → Читает логи → Выдвигает гипотезы → Применяет фиксы → Верифицирует
Customer Support¶
- Задача: "Пользователь жалуется на медленную загрузку"
- Действия агента: Получает тикет → Ищет в базе знаний → Собирает контекст (версия браузера, ОС) → Формулирует ответ → Эскалирует при необходимости
Data Analytics¶
- Задача: "Почему упали продажи в регионе X?"
- Действия агента: Формулирует SQL-запрос → Проверяет качество данных → Анализирует тренды → Генерирует отчет
Security (SOC)¶
- Задача: "Алерт: подозрительная активность на хосте 192.168.1.10"
- Действия агента: Триажирует алерт → Собирает доказательства (логи, метрики) → Определяет severity → Изолирует хост (с подтверждением) → Генерирует отчет
Product Operations¶
- Задача: "Подготовь план релиза фичи X"
- Действия агента: Собирает требования → Проверяет зависимости → Создает документы → Отправляет на согласование
Уровни автономности¶
- Level 0: Scripting. Bash/Python скрипты. Жесткая логика. Любое отклонение — crash.
- Level 1: Copilot. "Напиши мне конфиг nginx". Человек валидирует и применяет.
- Level 2: Chain. "Выполни деплой": pull -> build -> restart. Агент идет по рельсам, но может (например) сам пофиксить ошибку компиляции.
- Level 3: Autonomous Agent. "У нас проблемы с базой, разберись". Агент сам ищет логи, проверяет метрики, строит гипотезы и (если разрешено) применяет фиксы.
Этот курс: Мы пройдем путь от Level 1 до Level 3, создавая своего AI агента на Go (в качестве основного примера используем DevOps агента).
Как читать этот учебник¶
Рекомендуемый путь¶
- Читайте последовательно — каждая глава опирается на предыдущие
- Практикуйтесь параллельно — после каждой главы выполняйте соответствующую лабораторную работу
- Используйте как справочник — возвращайтесь к нужным разделам при работе над проектами
- Изучайте примеры — в каждой главе есть примеры из разных доменов
Структура глав¶
Каждая глава следует единому шаблону:
- Зачем это нужно? — мотивация и практическая ценность
- Реальный кейс — пример из практики
- Теория простыми словами — интуитивное объяснение
- Как это работает — пошаговый алгоритм с примерами кода
- Типовые ошибки — что может пойти не так и как это исправить
- Мини-упражнения — практические задания для закрепления
- Чек-лист — критерии понимания материала
- Для любопытных — формализация и глубокие детали (опционально)
Требования¶
- Go 1.21+ — для выполнения лабораторных работ
- Локальная LLM (рекомендуется) или OpenAI API Key
- Установите LM Studio или Ollama
- Запустите локальный сервер (обычно на порту 1234 или 11434)
- Базовые знания программирования — курс рассчитан на программистов
- Понимание основ DevOps (желательно, но не обязательно)
Настройка окружения¶
Для работы с локальной моделью (например, в LM Studio):
export OPENAI_BASE_URL="http://localhost:1234/v1"
export OPENAI_API_KEY="any-string" # Локальным моделям ключ обычно не важен
Что дальше?¶
После прочтения предисловия переходите к:
- 01. Физика LLM — фундамент для понимания всего остального
Навигация: Оглавление | Физика LLM →
Удачного обучения! 🚀