Покажу конкретный пример, как начать работать с ии-агентом. ❗️Сразу говорю, что я не специалист по агентам, и это не набор лучших практик. Показываю, как я обычно это делаю для своих небольших задач. Каких-то исследований, обучений на эту тему я не делал и не проходил.
Ставим на тестовую виртуальную машину opencode:
# curl -fsSL https://opencode.ai/v2/install | bash
Я рекомендую сразу поставить tmux или screen и запустить opencode там. Далее проходим этап первоначальных настроек. Я сейчас не знаю, что там. У меня уже давно всё настроено. На эту тему куча видео в интернете.
Создаём рабочий каталог, например, ansible_base_configure, заходим в него и запускаем opencode в нём. Открываем список моделей и выбираем GLM-5.3-Flash Free.
Дальше в поле ввода выбираем режим Plan и пишем в чат всё, что хотите сделать. Я для примера сходу составил вот такой промпт:
Ты - DevOps инженер, специализирующийся на автоматизации через Ansible и отвечающий за идемпотентность и check-mode при работе с виртуальными машинами Linux.
Задача - подготовить Playbook для контроля базовых настроек виртуальных машин на базе ОС Debian 13 в среде PVE. Используй только проверенные и общепризнанные практики подхода IaC.
В решении опиши структуру каталогов, ключевые модули, переменные по уровням (group_vars, host_vars, defaults) и стратегию тегов. Приведи пример inventory с десятью серверами разного назначения и команду запуска ansible-playbook с нужными флагами. Запиши всё это в README.md.
Что делаем на виртуальных машинах (VM):
- проверяем по списку подключенные репозитории, для каждой VM оставляем возможность указать набор репозиториев, которые должны быть подключены
- проверяем наличие обновлений пакетов и если они есть - устанавливаем
- устанавливаем и настраиваем nftables, закрываем все входящие подключения, разрешаем все исходящие, отдельным списком для каждой VM указываем входящие порты и источники трафика, для которых будут разрешены подключения
- устанавливаем везде типовой набор пакетов - net-tools, mc, iftop, lsof, git, для каждой VM оставляем возможность в отдельном списке указать дополнительные пакеты
В режиме Plan агент скорее всего задаст какие-то дополнительные вопросы. Например, оставляем ли открытым порт для SSH, какой формат репозиториев выбираем, нужно ли перезагружать VM после обновления и т.д. По характеру вопросов вы сами поймёте, чем нужно дополнить промпт. Чем подробнее вы его опишите, тем лучше. Но даже если он будет неполным, по ходу дела вы будете его дополнять.
Когда все вопросы разобраны, выбираете режим Build и говорите агенту, чтобы он реализовывал проект. Дальше он будет много всего делать. Когда закончит, посмотрите глазами, что там получилось и постарайтесь осознать 😁. Для этой задачи контекста в 200к должно хватить.
Далее готовите ему тестовую виртуальную машину и прямо в чат пишите параметры доступа. Говорите ему, что хотите настроить на этой VM, и просите отладить работу плейбука. Поначалу будет куча ошибок. Скорее всего он их все исправит автоматически. Эта задача простая.
На выходе у вас получится готовый рабочий плейбук, уже протестированный, с инструкцией по использованию. У меня это заняло примерно 30 минут на всё про всё, отвлекаясь на другие задачи. Получил рабочий, проверенный плейбук. Обычно после появления первой рабочей версии я добавляю его в git и куда-то загружаю в репу. Теперь этот проект можно скормить другой llm, если она у вас есть, и провести аудит.
Если подключить MCP для PVE, то агент может добавить в инвентарь ваши VM. У себя это проверял. Но контекста больше уходит. На решение задачи может не хватить.
#ai #devops #ansible