Перейти к содержанию

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, проверяет статус, сообщает результат.

Уравнение Агента

Agent = Brain (LLM) + Tools (Hands) + Memory (Context) + Planning (Process)

Компоненты

  • 🧠 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"
  • Действия агента: Собирает требования → Проверяет зависимости → Создает документы → Отправляет на согласование

Уровни автономности

  1. Level 0: Scripting. Bash/Python скрипты. Жесткая логика. Любое отклонение — crash.
  2. Level 1: Copilot. "Напиши мне конфиг nginx". Человек валидирует и применяет.
  3. Level 2: Chain. "Выполни деплой": pull -> build -> restart. Агент идет по рельсам, но может (например) сам пофиксить ошибку компиляции.
  4. Level 3: Autonomous Agent. "У нас проблемы с базой, разберись". Агент сам ищет логи, проверяет метрики, строит гипотезы и (если разрешено) применяет фиксы.

Этот курс: Мы пройдем путь от Level 1 до Level 3, создавая своего AI агента на Go (в качестве основного примера используем DevOps агента).

Как читать этот учебник

Рекомендуемый путь

  1. Читайте последовательно — каждая глава опирается на предыдущие
  2. Практикуйтесь параллельно — после каждой главы выполняйте соответствующую лабораторную работу
  3. Используйте как справочник — возвращайтесь к нужным разделам при работе над проектами
  4. Изучайте примеры — в каждой главе есть примеры из разных доменов

Структура глав

Каждая глава следует единому шаблону:

  • Зачем это нужно? — мотивация и практическая ценность
  • Реальный кейс — пример из практики
  • Теория простыми словами — интуитивное объяснение
  • Как это работает — пошаговый алгоритм с примерами кода
  • Типовые ошибки — что может пойти не так и как это исправить
  • Мини-упражнения — практические задания для закрепления
  • Чек-лист — критерии понимания материала
  • Для любопытных — формализация и глубокие детали (опционально)

Требования

  • 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 →

Удачного обучения! 🚀