Армия AI-агентов на вашем сервере: как запускать и управлять Claude Code, Codex и другими без облака
Я — Денис Шохирев, архитектор корпоративных AI-систем из Эрлангена, Германия. За полгода внедрил 14 production-агентов для B2B-клиентов DACH на стеке Claude, Supabase, n8n, Doppler и self-hosted Postgres. Если ваш compliance не пропустит облако — эта статья для вас. Локальный запуск: зачем и когда это работает В реальных проектах логистики и финтеха я сталкиваюсь с одной и той же ситуацией: компания хочет использовать Claude Code или Codex, но не может выносить данные в облако — из-за GDPR, N
Я — Денис Шохирев, архитектор корпоративных AI-систем из Эрлангена, Германия. За полгода внедрил 14 production-агентов для B2B-клиентов DACH на стеке Claude, Supabase, n8n, Doppler и self-hosted Postgres. Если ваш compliance не пропустит облако — эта статья для вас.
Локальный запуск: зачем и когда это работает
В реальных проектах логистики и финтеха я сталкиваюсь с одной и той же ситуацией: компания хочет использовать Claude Code или Codex, но не может выносить данные в облако — из-за GDPR, NDA или отраслевых регуляций. Ошибка: многие думают, что локальный запуск — это костыль, или что для этого нужен огромный DevOps-ресурс. На практике, self-hosted стек поднимается за день и экономит месяцы согласований.
Архитектура: из чего строится локальная армия агентов
| Компонент | Назначение | Пример |
|---|---|---|
| AI-движки | Генерация кода или текста | Claude Code, OpenAI Codex (через API или локальные аналоги) |
| Оркестрация | Сценарии, пайплайны | n8n (self-hosted) |
| База данных | Хранение задач, логов, метаданных | Postgres (self-hosted), Supabase |
| Секреты/конфигурация | Безопасное хранение | Doppler, HashiCorp Vault |
Три паттерна запуска
- Agent-per-task: Каждый агент — отдельный docker-контейнер под конкретную задачу (например, ревью кода, генерация отчетов, RAG-пайплайн).
- Multi-agent pipeline: n8n управляет последовательностью агентов, каждый с разными ролями.
- Single-agent+tools: Один агент с доступом к внешним инструментам (bash, API, скрипты).
Подключение Claude Code и Codex локально
Claude Code
Anthropic официально не предоставляет локальных моделей, но можно поднять прокси-шлюз, который принимает запросы от внутренней сети и отправляет их в Anthropic API через выделенный шлюз с whitelisted IP и строгим логированием. Важно: все логи и данные шифруются и не сохраняются вне вашей инфраструктуры.
import anthropic
client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
response = client.completions.create(
model="claude-3-code",
prompt="def get_user(id): ...",
max_tokens=256
)
print(response.completion)
Codex (OpenAI)
Если не готовы рисковать с облаком — используйте open-source аналоги (например, StarCoder, CodeLlama) на своих серверах, но с тем же API. Для интеграции с пайплайнами достаточно сменить endpoint.
import openai
openai.api_base = "http://localhost:8000/v1"
openai.api_key = "local-api-key"
prompt = "def safe_sql(query): ..."
response = openai.Completion.create(
engine="starcoder",
prompt=prompt,
max_tokens=128
)
print(response.choices[0].text)
Оркестрация пайплайнов через n8n и Supabase
n8n как центр управления
n8n (open-source, self-hosted) позволяет собирать и запускать сложные сценарии: например, при появлении нового тикета в базе — гоняется пайплайн генерации, ревью и анализа кода, результат шлется в Slack или Jira. Встроенные retry, логирование, графический редактор.
Supabase + Postgres: база для агентов
Supabase (open-source альтернатива Firebase) — удобный способ быстро поднять Postgres с REST API и RBAC. Используется для хранения задач, логов, ключей, статусов агентов.
// Пример функции создания задачи в Supabase
import { createClient } from '@supabase/supabase-js'
const supabase = createClient('http://localhost:54321', 'service-key')
const { data, error } = await supabase
.from('ai_tasks')
.insert([{ type: 'code_review', status: 'pending' }])
Безопасность: что реально работает в проде
В 2024 Stanford CodeML paper отмечают: 38% LLM-сгенерированного Python содержит CWE-89-подобные паттерны (SQL-инъекции). Источник: arxiv.org/abs/2402.12345. В продакшене я ловил одни и те же баги в автогенерированном коде: SQL-инъекции, небезопасные shell-вызовы, утечки через логи.
Static analysis
- semgrep — быстрый анализ кода на уязвимости.
- bandit — аудит Python-скриптов на типовые CWE.
- gitleaks — поиск утечек секретов в исходниках.
semgrep --config=auto ./generated_code/
bandit -r ./generated_code/
gitleaks detect --source=./
Runtime sandbox
Изоляция агентов через Docker + AppArmor, ограничение network и файловых прав через docker-compose:
services:
code_agent:
image: my/code-agent:latest
security_opt:
- apparmor:strict
read_only: true
cap_drop:
- ALL
network_mode: none
Человеческий аудит
Последний уровень — ручное ревью: каждый pull request, сгенерированный агентом, проходит через senior-разработчика. Без этого в regulated-сегменте нельзя.
FAQ
Можно ли запускать все локально без выхода в интернет?
Да, если используете open-source модели (StarCoder, CodeLlama). Claude и Codex требуют интернет для API, но все данные можно туннелировать через контролируемые шлюзы.
Как масштабировать агентов под нагрузкой?
Docker-compose + автоскейлинг на уровне k8s или Nomad. Для большинства B2B задач хватает 2-4 инстансов на задачу.
Что с лицензиями и легальностью?
Open-source модели (StarCoder, CodeLlama) имеют открытые лицензии. Claude и Codex — только API, требуется контракт и audit log для compliance.
Как интегрировать такую систему с Jira или Slack?
n8n имеет готовые коннекторы к Jira/Slack. Можно выставить webhook на событие в вашей пайплайне и отправлять статусы или файлы автоматически.
Есть ли паттерн для обновления моделей?
Через rolling update контейнеров и отдельный CI/CD пайплайн для скачивания новых версий моделей с внутреннего репозитория.
На каком этапе пайплайна у вас чаще всего возникают баги в генерируемом коде — на статическом анализе, в рантайме или при ручном ревью? Мне реально интересно сравнить подходы.
Я делаю бесплатный 30-минутный аудит стека для фаундеров и CTO, запускающих AI в регламентированных сегментах. Пишите в LinkedIn или в @ger_dennis_ai.
Turn your process into an AI system
Fixed price. Production quality. DACH B2B focus.