Stakpak: AI-агент для DevOps на автопилоте 24/7

Логотип Stakpak

Отправляй код в production — на автопилоте.

Агент с открытым исходным кодом, который живёт на ваших машинах круглосуточно, следит за работой приложений и беспокоит человека только при крайней необходимости. Все преимущества PaaS — без привязки к платформе.

Попробуй Stakpak прямо сейчас

curl -sSL https://stakpak.dev/install.sh | sh # установить Stakpak
stakpak init # разобраться в приложениях и технологическом стеке
stakpak autopilot up # запустить автономного агента в фоне 24/7
Демонстрация работы Stakpak

Большинству AI-агентов нельзя доверять DevOps. Одна ошибка — и production лежит. Stakpak устроен иначе:

  • Подстановка секретов (Secret Substitution) — LLM работает с вашими учётными данными, ни разу их не видя

  • Ограничители Warden (Warden Guardrails) — политики на уровне сети блокируют деструктивные операции ещё до их запуска

  • Встроенные DevOps-плейбуки (DevOps Playbooks Baked-in) — тщательно подобранная библиотека DevOps-знаний в виде Rulebook-ов

Генерируй инфраструктурный код, отлаживай Kubernetes, настраивай CI/CD и автоматизируй развёртывания — не передавая LLM ключи от production.

🤖 Автопилот (автономный режим 24/7)

Используй новые псевдонимы жизненного цикла для запуска, остановки и старта одной командой:

stakpak up        # псевдоним для: stakpak autopilot up
stakpak down      # псевдоним для: stakpak autopilot down

Можно также использовать канонические подкоманды:

stakpak autopilot up
stakpak autopilot status
stakpak autopilot logs
stakpak autopilot down
stakpak autopilot doctor

Предварительные требования для автопилота

Перед запуском автопилота на удалённой виртуальной машине:

  • Docker должен быть установлен и доступен текущему пользователю

  • Рекомендуется не менее 2 ГБ ОЗУ для надёжной работы автопилота и sandbox-запусков

  • На небольших Linux-хостах настоятельно рекомендуется включить swap

  • Пользовательские службы Linux могут требовать linger, чтобы продолжать работу после выхода из системы

stakpak up теперь запускает предварительные проверки перед стартом, а stakpak autopilot doctor можно использовать как проверку готовности к развёртыванию перед первым запуском:

stakpak autopilot doctor
stakpak up

Подробнее: cli/README.md

Единая конфигурация (профили и настройка автопилота)

  • ~/.stakpak/config.toml — поведение профилей (model, allowed_tools, auto_approve, system_prompt, max_turns, учётные данные провайдера)

  • ~/.stakpak/autopilot.toml — параметры среды выполнения (schedules, channels, маршруты уведомлений, настройки сервиса/сервера)

Используй profile = "name" в расписаниях и каналах, а само поведение описывай внутри определений профиля. Профили управляют тем, как ведёт себя агент: модель, разрешённые инструменты, автоодобрение, системный промпт, максимальное число шагов, учётные данные провайдера. Маршруты уведомлений определяют только, куда доставляются сообщения.

Профили расписаний и каналов намеренно разделены:

  • --profile monitoring для расписания: поведение для запусков по этому расписанию

  • --profile ops для канала: поведение для сессий, запущенных из входящих сообщений Slack/Telegram/Discord

  • --target "#ops" для уведомления: куда отправляются уведомления от расписания; не влияет на выбор модели или инструментов

Везде в маршрутизации уведомлений используются два слова:

  • channel — транспорт, например slack, telegram или discord

  • target — назначение внутри этого транспорта, например #ops в Slack или C1234567890

autopilot channel add …​ --target задаёт маршрут уведомлений по умолчанию. Расписания наследуют его, если не указан --notify-target или --notify-channel.

# маршрут уведомлений по умолчанию: slack:#ops
stakpak autopilot channel add slack --bot-token "$SLACK_BOT_TOKEN" --app-token "$SLACK_APP_TOKEN" --profile ops --target "#ops"

# расписание использует профиль monitoring и наследует маршрут по умолчанию
stakpak autopilot schedule add health --cron '*/5 * * * *' --prompt 'Check health' --profile monitoring

# расписание использует профиль monitoring, но уведомляет другой Slack-канал
stakpak autopilot schedule add deploy-watch --cron '*/15 * * * *' --prompt 'Watch deploys' --profile monitoring --notify-target "#deploys"

В ~/.stakpak/autopilot.toml та же конфигурация выглядит так:

[notifications]
channel = "slack"
target = "#ops"

[[schedules]]
name = "health"
cron = "*/5 * * * *"
prompt = "Check health"
profile = "monitoring"

[[schedules]]
name = "deploy-watch"
cron = "*/15 * * * *"
prompt = "Watch deploys"
profile = "monitoring"
notify_target = "#deploys"

Публичные имена каналов Slack вида #ops принимаются там, где Slack их поддерживает. Для приватных каналов, личных сообщений и скриптов надёжнее использовать идентификаторы каналов.

Полное руководство по настройке: cli/README.md

🔒 Повышенная безопасность

  • Взаимный TLS (mTLS) — сквозное шифрование MCP

  • Динамическая подстановка секретов (Dynamic Secret Substitution) — AI может читать, записывать и сравнивать секреты, не видя их реальных значений

  • Безопасная генерация паролей (Secure Password Generation) — криптографически стойкие пароли с настраиваемой сложностью

  • Режим приватности (Privacy Mode) — скрывает чувствительные данные, такие как IP-адреса и идентификаторы AWS-аккаунтов

🛠️ Создан для DevOps-задач

  • Асинхронное управление задачами (Asynchronous Task Management) — запускай фоновые команды вроде проброса портов и серверов с полноценным отслеживанием и возможностью отмены

  • Потоковая передача прогресса в реальном времени (Real-time Progress Streaming) — долгие процессы (сборки Docker, развёртывания) транслируют обновления по мере выполнения

  • Индексирование инфраструктурного кода (Infrastructure Code Indexing) — автоматическое локальное индексирование и семантический поиск по Terraform, Kubernetes, Dockerfile и GitHub Actions

  • Агент для поиска документации (Documentation Research Agent) — встроенный веб-поиск по технической документации, облачным провайдерам и фреймворкам

  • Субагенты (Subagents) — специализированные агенты исследования для анализа кода и sandbox-анализа с разными уровнями доступа к инструментам (включается флагом --enable-subagents)

  • Пакетное подтверждение (Bulk Message Approval) — одобряй несколько вызовов инструментов сразу для эффективного выполнения рабочих процессов

  • Обратимые файловые операции (Reversible File Operations) — все изменения файлов автоматически резервируются с возможностью восстановления

🧠 Адаптивный интеллект

  • Rulebook-и (Rule Books) — настраивай поведение агента с помощью внутренних стандартных операционных процедур (SOP), плейбуков и корпоративных политик

  • Постоянные знания (Persistent Knowledge) — агент учится в ходе взаимодействия, запоминает инциденты, ресурсы и детали окружения, чтобы адаптироваться к вашему рабочему процессу

Установка

Все варианты установки (Linux, macOS, Windows)

Homebrew (Linux и macOS)

brew tap stakpak/stakpak
brew install stakpak

Для обновления:

brew update
brew upgrade stakpak

Бинарный релиз

Скачай последний бинарник для своей платформы из GitHub Releases.

Docker

Образ включает самые популярные CLI-инструменты, которые могут понадобиться агенту для повседневных DevOps-задач: docker, kubectl, aws cli, gcloud, azure cli и другие.

docker pull ghcr.io/stakpak/agent:latest

Использование

Вариант А: запуск с API-ключом Stakpak (карта не нужна)

Просто запусти stakpak и следуй инструкциям — новый API-ключ будет создан автоматически.

stakpak
Примечание

У пользователей браузера Brave могут возникнуть проблемы с автоматическими редиректами на порты localhost при создании API-ключа. Если это произошло — скопируй новый ключ из браузера и вставь его в терминал.

Неинтерактивная настройка (CI/скрипты)

stakpak auth login --api-key $STAKPAK_API_KEY

Или задай переменную окружения

export STAKPAK_API_KEY=<mykey>

Просмотр текущего аккаунта (опционально)

stakpak account

Вариант Б: запуск без API-ключа Stakpak

Неинтерактивная настройка (CI/скрипты)

# Anthropic
stakpak auth login --provider anthropic --api-key $ANTHROPIC_API_KEY

# OpenAI
stakpak auth login --provider openai --api-key $OPENAI_API_KEY

# Gemini
stakpak auth login --provider gemini --api-key $GEMINI_API_KEY

Ручная настройка

Создай файл ~/.stakpak/config.toml с одной из следующих конфигураций:

Вариант 1: принеси свои ключи (BYOK — Bring Your Own Keys) — используй API-ключи Anthropic/OpenAI:

[profiles.byok]
provider = "local"

# Единое поле предпочтения модели
model = "anthropic/claude-sonnet-4-5"

# Встроенные провайдеры — учётные данные можно задать через переменные окружения
# (ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY)
[profiles.byok.providers.anthropic]
type = "anthropic"
api_key = "sk-ant-..."

[profiles.byok.providers.openai]
type = "openai"
api_key = "sk-..."

[profiles.byok.providers.gemini]
type = "gemini"
api_key = "..."

[settings]

Вариант 2: принеси свой LLM (Bring Your Own LLM) — используй локальный OpenAI-совместимый эндпоинт (например, Ollama, LM Studio):

[profiles.offline]
provider = "local"

# Модели кастомного провайдера используют формат: ключ_провайдера/имя_модели
model = "offline/qwen/qwen3-coder-30b"

# Ключ провайдера "offline" становится префиксом модели
[profiles.offline.providers.offline]
type = "custom"
api_endpoint = "http://localhost:11434/v1"
# api_key не обязателен для локальных провайдеров

[settings]

Вариант 3: смешай встроенные и кастомные провайдеры:

[profiles.hybrid]
provider = "local"

# Единое поле модели (с префиксом провайдера)
model = "anthropic/claude-sonnet-4-5"

[profiles.hybrid.providers.anthropic]
type = "anthropic"
# Использует переменную окружения ANTHROPIC_API_KEY

[profiles.hybrid.providers.offline]
type = "custom"
api_endpoint = "http://localhost:11434/v1"

[settings]

Stakpak применяет доступные обновления в фоне при интерактивном запуске. После применения обновления перезапусти все долгоживущие процессы Stakpak, чтобы использовался новый бинарник.

Затем запусти с нужным профилем:

stakpak --profile byok
# или
stakpak --profile offline
# или
stakpak --profile hybrid

Запуск TUI-интерфейса агента Stakpak

# Открыть TUI
stakpak
# Возобновить выполнение с контрольной точки
stakpak -c <checkpoint-id>

Запуск TUI-интерфейса агента Stakpak через Docker

docker run -it --entrypoint stakpak ghcr.io/stakpak/agent:latest
# для задач контейнеризации (необходимо смонтировать Docker-сокет)
docker run -it \
   -v "/var/run/docker.sock":"/var/run/docker.sock" \
   -v "{путь к приложению}":"/agent/" \
   --entrypoint stakpak ghcr.io/stakpak/agent:latest

MCP-режимы

Stakpak можно использовать как защищённый MCP-прокси или открывать инструменты с повышенной безопасностью через MCP-сервер.

Инструменты MCP-сервера

  • Локальный режим (--tool-mode local) — только файловые операции и выполнение команд (API-ключ не требуется)

  • Удалённый режим (--tool-mode remote) — инструменты генерации кода и поиска на основе AI (требуется API-ключ)

  • Комбинированный режим (--tool-mode combined) — локальные и удалённые инструменты вместе (по умолчанию, требуется API-ключ)

Запуск MCP-сервера

# Только локальные инструменты (API-ключ не нужен, mTLS включён по умолчанию)
stakpak mcp start --tool-mode local

# Только удалённые инструменты (AI-инструменты для DevOps)
stakpak mcp start --tool-mode remote

# Комбинированный режим (по умолчанию — все инструменты с полной защитой)
stakpak mcp start

# Отключить mTLS (НЕ рекомендуется для production)
stakpak mcp start --disable-mcp-mtls

Дополнительные флаги для MCP-сервера:

  • --disable-secret-redactionне рекомендуется; выводит секреты в открытом виде в консоль

  • --privacy-mode — скрывает дополнительные приватные данные, такие как IP-адреса и идентификаторы AWS-аккаунтов

  • --enable-slack-tools — включает экспериментальные Slack-инструменты

MCP-прокси сервер

Stakpak также включает MCP-прокси сервер, который может мультиплексировать соединения с несколькими вышестоящими MCP-серверами через конфигурационный файл.

# Запустить MCP-прокси с автоматическим обнаружением конфигурации
stakpak mcp proxy

# Запустить MCP-прокси с явно указанным файлом конфигурации
stakpak mcp proxy --config-file ~/.stakpak/mcp.toml

# Отключить сокрытие секретов (НЕ рекомендуется — секреты будут выводиться в логах)
stakpak mcp proxy --disable-secret-redaction

# Включить режим приватности для сокрытия IP-адресов, идентификаторов аккаунтов и т.д.
stakpak mcp proxy --privacy-mode

Настройка внешних MCP-серверов

Внешние MCP-серверы настраиваются в mcp.toml (или mcp.json) и загружаются командой stakpak mcp proxy.

Порядок поиска конфигурационного файла:

  1. ~/.stakpak/mcp.toml или ~/.stakpak/mcp.json

  2. .stakpak/mcp.toml или .stakpak/mcp.json (из текущего каталога)

  3. ./mcp.toml или ./mcp.json

Добавление серверов через CLI:

# Добавить stdio MCP-сервер
stakpak mcp add context7 --command npx --args "-y,@upstash/context7-mcp"

# Добавить stdio MCP-сервер с переменными окружения (флаг --env повторяется)
stakpak mcp add internal-tools --command npx --args "-y,@acme/internal-mcp" --env "MCP_API_KEY=<token>" --env "MCP_REGION=us-east-1"

# Добавить HTTP MCP-сервер
stakpak mcp add github --url https://api.githubcopilot.com/mcp --headers "Authorization=Bearer <token>"

# Просмотр и управление серверами
stakpak mcp list
stakpak mcp get github
stakpak mcp disable github
stakpak mcp enable github

# Запустить прокси с настроенными внешними MCP
stakpak mcp proxy

Или опиши серверы прямо в ~/.stakpak/mcp.toml:

[mcpServers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]
env = { MCP_API_KEY = "<token>", MCP_REGION = "us-east-1" }

[mcpServers.github]
url = "https://api.githubcopilot.com/mcp"
headers = { Authorization = "Bearer <token>" }

[mcpServers.optional]
command = "npx"
args = ["-y", "some-mcp-server"]
disabled = true

Используй disabled = true, чтобы сохранить сервер в конфигурации, не загружая его.

Протокол агентского клиента (Agent Client Protocol, ACP)

ACP — стандартизированный протокол, позволяющий AI-агентам интегрироваться непосредственно с редакторами кода, такими как Zed, обеспечивая бесшовную помощь в разработке на основе AI.

Что ACP даёт вместе со Stakpak

  • Чат с AI в реальном времени — диалог на естественном языке с контекстно-осведомлённым AI

  • Живой анализ кода (Live Code Analysis) — AI читает, понимает и изменяет кодовую базу в реальном времени

  • Выполнение инструментов (Tool Execution) — AI запускает команды, редактирует файлы, ищет по коду и выполняет задачи разработки

  • Сохранение сессий (Session Persistence) — контекст разговора сохраняется между сессиями редактора

  • Потоковые ответы (Streaming Responses) — ответы AI в реальном времени с отображением прогресса

  • Планы агента (Agent Plans) — визуальная разбивка задач и отслеживание прогресса

Установка и настройка

  1. Установи Stakpak (если ещё не установлен)

  2. Настрой редактор Zed — добавь в ~/.config/zed/settings.json:

{
  "agent_servers": {
    "Stakpak": {
      "command": "stakpak",
      "args": ["acp"],
      "env": {}
    }
  }
}
  1. Запусти ACP-агента:

stakpak acp
  1. Используй в Zed — нажми «Ассистент» (✨) → +New stakpak thread

Управление Rulebook-ами

Управляй стандартными операционными процедурами (SOP), плейбуками и runbook-ами с помощью Stakpak Rulebooks. Rulebook-и настраивают поведение агента и дают контекстно-специфические инструкции.

# Показать все rulebook-и
stakpak rulebooks get
# или использовать короткий псевдоним
stakpak rb get

# Получить конкретный rulebook
stakpak rb get stakpak://my-org/deployment-guide.md

# Создать или обновить rulebook из markdown-файла
stakpak rb apply my-rulebook.md

# Удалить rulebook
stakpak rb delete stakpak://my-org/old-guide.md

Формат Rulebook

Rulebook-и — это markdown-файлы с YAML frontmatter:

---
uri: stakpak://my-org/deployment-guide.md
description: Standard deployment procedures for production
tags:
  - deployment
  - production
  - sop
---

# Deployment Guide

Процедуры и инструкции по развёртыванию...

Автодополнение оболочки (Shell Completion)

Включи автодополнение по Tab для всех подкоманд, флагов и аргументов stakpak.

# Bash
echo 'source <(stakpak completion bash)' >> ~/.bashrc

# Elvish
echo 'eval (stakpak completion elvish | slurp)' >> ~/.elvish/rc.elv

# Fish
echo 'stakpak completion fish | source' > ~/.config/fish/completions/stakpak.fish

# Zsh
echo 'source <(stakpak completion zsh)' >> ~/.zshrc

# PowerShell
Add-Content -Path $PROFILE -Value 'stakpak completion powershell | Out-String | Invoke-Expression'

Поддерживаемые оболочки: bash, elvish, fish, powershell, zsh.

Режим оболочки (Shell Mode)

Выполняй системные команды явно из строки ввода.

Смотри документацию по Shell Mode — подробности о фоновом и переднем выполнении.

Тестирование платформ

Windows

Подробный отчёт о тестировании CLI-функциональности на Windows, включая установку, настройку и интеграцию с WSL2 и Docker.


⭐ Нравится то, что мы делаем?

Если наш агент экономит тебе время или упрощает жизнь в DevOps — поставь нам звезду на GitHub, это очень помогает!

© 2026 meganuke