20 KiB
Анализ: IronClaw (NearAI) + Timeweb — применимость к SeaFare Montana
Дата: 22 февраля 2026 Автор: AI-аналитик SeaFare Montana
1. ЧТО ТАКОЕ IRONCLAW?
Rust-based AI-агент от NearAI (Илья Полосухин — со-автор "Attention Is All You Need", основатель NEAR Protocol). Позиционируется как безопасная замена OpenClaw, который стал катастрофой безопасности (42,000+ открытых инстансов, утечки API ключей, RCE уязвимости).
GitHub: https://github.com/nearai/ironclaw
| Параметр | Значение |
|---|---|
| Язык | Rust (96%) |
| Версия | 0.9.0 (21 фев 2026) |
| Возраст | 3 недели (с 3 фев 2026) |
| Stars | 2,800 |
| Лицензия | Apache 2.0 + MIT |
| Релизы | 8 за 10 дней |
| Open issues | 116 |
Ключевые фичи:
- Multi-LLM: Claude, GPT-4o, Ollama (локальные модели), OpenRouter (300+ моделей)
- Sandbox изоляция: Docker-контейнеры для инструментов
- Шифрование секретов: AES-256-GCM, ключи в OS keychain
- Leak detection: Сканирование ответов на утечку кредов
- Self-expanding: Агент сам создаёт инструменты (WASM)
- Каналы: CLI, HTTP, Telegram, Slack, Web UI
- Память: PostgreSQL + pgvector (векторный поиск)
- Smart routing: Failover между LLM провайдерами, circuit breaker
Архитектура безопасности (6 уровней):
- Защита от prompt injection (обёртка контента + экранирование)
- Обнаружение утечек credentials (сканирование перед отдачей)
- Ограничение длины (защита от buffer overflow)
- Политики блокировки (настраиваемые правила)
- Изоляция контейнеров (Docker + capabilities)
- Прокси-валидация сети (allowlisting)
2. КРИТИЧЕСКИЙ АНАЛИЗ: ПОДХОДИТ ЛИ ДЛЯ SEAFARE MONTANA?
❌ НЕТ. Вот почему:
Проблема 1: ПРИНЦИПИАЛЬНО ДРУГОЙ ПРОДУКТ
IronClaw — это персональный AI-ассистент общего назначения (аналог Claude Code / Cursor). Он НЕ:
- Веб-сервис для конечных пользователей
- REST API с аутентификацией
- Мультитенантная платформа (много пользователей одновременно)
SeaFare Montana — это веб-приложение (index.html → Flask API → Claude agent → БД). IronClaw не заменяет эту архитектуру. Он заменяет разработчика, а не приложение.
Проблема 2: ВОЗРАСТ 3 НЕДЕЛИ
- Проекту 20 дней. Ещё не v1.0
- 116 открытых issues
- Schema БД меняется (9 миграций за 20 дней)
- Ни одного задокументированного production deployment
- Никаких security-аудитов
Проблема 3: ТРЕБУЕТ RUST + DOCKER
- Наш стек: Python (Flask, Claude API). Команда знает Python
- IronClaw: Rust 1.85+, PostgreSQL 15 + pgvector, Docker обязательно
- Кто будет поддерживать Rust-код при проблемах?
Проблема 4: NEAR PROTOCOL / BLOCKCHAIN
- IronClaw по умолчанию аутентифицируется через NEAR AI OAuth
- Блокчейн НЕ обязателен, но экосистема привязана к NEAR
- Крипто-проект = репутационные риски для морской логистики
Проблема 5: НЕ РЕШАЕТ НАШИХ РЕАЛЬНЫХ ПРОБЛЕМ
Наши реальные проблемы:
- MarineTraffic API (решается получением ключа, не сменой фреймворка)
- AIS данные (решается через AISStream/AISHub, уже работает)
- UI для выбора груза (уже сделали в v3.9.0)
- Render free tier ограничения (решается VPS, не IronClaw)
IronClaw НЕ даёт нам: доступ к AIS данным, MarineTraffic API, базу портов, маршруты, Equasis. Это всё у нас уже есть.
3. ЧТО АЛИК ИМЕЛ В ВИДУ И ПОЧЕМУ ЭТО УЖЕ ЕСТЬ
"Нужно 1 раз агента обучить... По этой модели с безопасностью и изолированностью всего. С полным понимаем всего контекста меню."
Разбор по пунктам:
"Обучить 1 раз" — LLM не "обучаются" однократно. Они получают system prompt каждый запрос. Наш агент уже делает это: SYSTEM_PROMPT в seafare_agent.py содержит 100+ строк с полным описанием 26 инструментов и правил поведения. Это и есть "обучение".
"Безопасность и изолированность" — IronClaw изолирует ИНСТРУМЕНТЫ (shell-команды, файловые операции) в Docker. Наши инструменты — это Python-функции (поиск судов, маршруты, AIS запросы). Они и так безопасны — нет shell access, нет доступа к файловой системе, нет произвольного выполнения кода.
"Понимание контекста меню" — Это system prompt + user_context. У нас SYSTEM_PROMPT описывает все 26 инструментов, а user_context инжектирует профиль пользователя и баланс в каждый запрос.
Вывод: Алик описывает то, что у нас уже реализовано через Claude API + tool-calling. IronClaw — это другой способ делать то же самое, но с overhead Rust/Docker/NEAR.
4. ЧТО У НАС УЖЕ ЕСТЬ (SeaFare Montana v3.9.0)
| Функция | Статус |
|---|---|
| AI-агент с 26 инструментами | ✅ Работает |
| Tool-calling цикл (макс 7 итераций) | ✅ Работает |
| System prompt с полным контекстом | ✅ 100+ строк правил |
| Поиск судов по назначению (AIS destination) | ✅ v3.8.0 |
| Поиск по соседним портам (50 NM) | ✅ v3.8.0 |
| Фильтрация по типу груза (сухой/контейнер/наливной) | ✅ v3.7.1 |
| UI форма выбора груза (3 карточки) | ✅ v3.9.0 |
| Расширяющийся радиус поиска (50→200→500 NM) | ✅ v3.7.0 |
| Кнопки "Показать на карте" | ✅ v3.7.0 |
| AIS провайдер (AISStream + AISHub + Digitraffic) | ✅ Работает |
| Google OAuth + кошелёк USDT | ✅ Работает |
| Мультиязычный интерфейс (EN/RU/ES) | ✅ Работает |
| Sanctions screening + dark fleet detection | ✅ Работает |
| PostgreSQL в продакшене | ✅ Работает |
5. TIMEWEB CLOUD (ФРАНКФУРТ, 700 РУБ/МЕС)
Что получаешь за 700 руб:
- ~2 GB RAM, 1 vCPU, 30-40 GB NVMe SSD
- Frankfurt дата-центр (хорошо для Европа/Каспий)
- Публичный IP, SSH доступ
- Let's Encrypt SSL бесплатно
Идея VPS — ПРАВИЛЬНАЯ. Решает реальные проблемы Render:
| Проблема Render Free | VPS решает? |
|---|---|
| Засыпает через 15 мин → WebSocket рвётся | ✅ VPS всегда включен |
| Daemon threads умирают на gunicorn | ✅ Полный контроль ОС |
| SQLite эфемерный (данные теряются) | ✅ PostgreSQL на VPS |
| Нет cron jobs | ✅ Полный systemd/cron |
Минусы Timeweb:
- ⚠️ Российские IP — Google/PayPal могут блокировать (критично для платежей!)
- ⚠️ Ручное администрирование — нет auto-deploy
- ⚠️ CPU троттлинг на shared VPS (по отзывам)
РЕКОМЕНДАЦИЯ: Hetzner вместо Timeweb
| Параметр | Timeweb | Hetzner |
|---|---|---|
| Цена | 700 руб (~$8) | €3.79 (~400 руб) |
| RAM | 2 GB | 4 GB |
| vCPU | 1 | 2 |
| SSD | 30-40 GB | 40 GB |
| Локация | Frankfurt | Falkenstein/Frankfurt |
| IP репутация | ⚠️ Российские | ✅ Немецкие |
| SLA | 99.98% | 99.9% |
| Docker | Да | Да |
| Snapshots | Да | Да |
Hetzner дешевле, мощнее, и без проблем с репутацией IP.
6. ИТОГОВАЯ РЕКОМЕНДАЦИЯ
IronClaw → ❌ НЕ ВНЕДРЯТЬ
| Причина | Детали |
|---|---|
| Не тот продукт | Персональный ассистент ≠ веб-платформа для клиентов |
| Слишком сырой | v0.9.0, 3 недели, 116 issues, ноль production deployments |
| Не решает наших задач | AIS, порты, маршруты — этого в IronClaw нет |
| Лишняя сложность | Rust + Docker + NEAR вместо рабочего Python + Claude API |
| У нас уже есть | Tool-calling, system prompt, 26 инструментов = "обученный агент" |
VPS миграция → ✅ ДА, но на Hetzner
Переезд с Render free tier на VPS разумен для стабильности AIS WebSocket и daemon threads.
Что реально нужно делать (по приоритету):
- Получить MarineTraffic API ключ — trial на неделю уже договорились
- Интегрировать MT API в ais_provider.py как premium источник данных
- Перенести на Hetzner VPS когда MT API готов
- Настроить CI/CD: GitHub Actions → SSH deploy на VPS
7. О КОНТЕЙНЕРОВОЗАХ (ВОПРОС ДАТО)
На MarineTraffic контейнеровозы отображаются тем же зелёным цветом, что и сухогрузы (AIS коды 70-79 = "cargo"). Различаются только по текстовому описанию типа судна. Наша система (classify_vessel_type() в marinetraffic_parser.py) уже умеет их разделять. В UI форме (v3.9.0) — 3 отдельные карточки: Сухой груз / Контейнеры / Наливной.
8. РАЗБОР ФИЧ IRONCLAW: ЧТО МОЖНО ВЗЯТЬ ДЛЯ НАШЕГО ПРОЕКТА?
Ниже — критический разбор каждой фичи IronClaw: нужна ли она нам, и если да — нужен ли для этого IronClaw.
8.1. Multi-LLM (Claude + GPT-4o + Ollama + failover)
Наш статус: Только Claude Sonnet. Если Anthropic API упал — всё мертво.
Полезно? ДА, частично. Failover на другую модель при падении Claude — реальная проблема. Anthropic иногда лежит. Но:
- Реализация: 2-3 часа — добавить
try/exceptвgenerate_response(), при ошибке Claude → вызвать OpenAI GPT-4o. System prompt и tools совместимы (OpenAI тоже поддерживает tool-calling). - Для этого не нужен IronClaw. Это 50 строк Python-кода.
- Ollama (локальные модели) — бессмысленно. Llama 3 не потянет 26 инструментов с tool-calling. Качество ответов будет мусор.
Вердикт: Полезна идея failover. Реализация тривиальная, IronClaw не нужен.
8.2. Sandbox изоляция (Docker)
Наш статус: Инструменты — Python-функции. search_vessel(), calculate_route(), get_position(). Никакого shell access, никакого exec(), никакого пользовательского кода.
Полезно? НЕТ. Sandbox нужен когда агент выполняет произвольный код от пользователя (как Claude Code выполняет bash-команды). Наш агент вызывает фиксированные функции из _TOOL_DISPATCH dict. Пользователь не может инжектировать код. Это как ставить бронедверь в комнату без окон и дверей.
Вердикт: Не нужно. Наша архитектура безопасна by design.
8.3. Шифрование секретов (AES-256-GCM)
Наш статус: Секреты в .env файле (plaintext) локально, через Render Dashboard env vars в проде. Стандартный подход.
Полезно? НЕТ для нашего масштаба. AES-256 шифрование секретов нужно когда:
- Несколько разработчиков с разными уровнями доступа
- Секреты хранятся в Git (encrypted)
- Compliance требования (SOC 2, HIPAA)
У нас: 1 репо, 1-2 разработчика, .env в .gitignore. Render Dashboard шифрует env vars автоматически. Overhead шифрования не оправдан.
Вердикт: Overkill для нашего масштаба.
8.4. Leak detection (сканирование на утечку кредов)
Наш статус: System prompt говорит агенту "никогда не раскрывай источники данных". Но прямой проверки ответов на наличие API ключей нет.
Полезно? ДА, это стоит сделать. Простая проверка: перед отдачей ответа пользователю — regex-сканирование на паттерны API ключей (sk-ant-, AISSTREAM_, пароли). Если Claude случайно "выплюнет" ключ из контекста — мы его поймаем.
Реализация: 15 строк в generate_response().
Вердикт: Полезная идея. Реализация — 15 минут, IronClaw не нужен.
8.5. Self-expanding (агент сам создаёт инструменты)
Наш статус: 26 фиксированных инструментов. Новые добавляются разработчиком вручную.
Полезно? НЕТ. ОПАСНО. Наши инструменты работают с реальными данными: AIS позиции, контакты судовладельцев, финансовые операции (charge_user). Автоматическое создание инструментов:
- Кто проверит что новый инструмент не сломает БД?
- Кто проверит что он не спишет деньги с чужого кошелька?
- Кто проверит что он корректно парсит AIS данные?
Для морской логистики нужны проверенные, протестированные инструменты. Не автогенерация.
Вердикт: Категорически нет. Опасно для финансовых операций.
8.6. Каналы (Telegram, Slack, Web UI)
Наш статус: Только Web UI (index.html). Для доступа нужен браузер.
Полезно? ДА, Telegram — реально полезен. Морская индустрия живёт в мессенджерах. Капитан/агент не будет открывать сайт — он напишет в Telegram. Это реальная бизнес-потребность.
НО: Для Telegram-бота не нужен IronClaw. Python-библиотека python-telegram-bot + наш generate_response() = Telegram-бот за 2-3 часа. Вся логика (26 инструментов, AIS, маршруты) уже в seafare_agent.py.
Вердикт: Telegram-бот — отличная идея на будущее. Но это 100 строк Python, не IronClaw.
8.7. PostgreSQL + pgvector (векторный поиск)
Наш статус: PostgreSQL есть. pgvector — нет. Поиск судов по текстовому совпадению (LIKE '%BOSTON%').
Полезно? МОЖЕТ БЫТЬ, но не сейчас. pgvector полезен для:
- Семантический поиск: "нужен балкер для зерна рядом с Турцией" → находит суда даже если destination = "ISKENDERUN" (не "TURKEY")
- Поиск по истории чатов: "что мне искали в прошлый раз?"
- Кэш похожих запросов: если кто-то уже искал "grain from Santos" — отдать кэшированный результат
Но наш объём данных пока маленький. 16,553 порта, ~1000 позиций в кэше. Обычный LIKE + индексы справляются. pgvector добавит сложности (установка расширения, embedding model, стоимость embeddings).
Вердикт: Интересно на перспективу. Сейчас — преждевременная оптимизация.
8.8. Smart routing / Failover / Circuit breaker
Наш статус: Один провайдер (Claude). Упал — всё стоит. У AIS провайдера уже есть chain (AISStream → AISHub → Digitraffic → MT → stale DB), но у LLM — нет.
Полезно? ДА, это самое полезное из списка. Паттерн circuit breaker:
- Claude API вернул 5 ошибок подряд → переключиться на GPT-4o на 5 минут
- GPT-4o тоже лёг → вернуть пользователю "сервис временно недоступен" вместо hang
Реализация для нашего проекта — 80 строк Python. Не Rust, не IronClaw.
Вердикт: Самая полезная идея. Стоит реализовать. IronClaw для этого не нужен.
9. СВОДНАЯ ТАБЛИЦА: ЧТО БРАТЬ, ЧТО НЕТ
| Фича IronClaw | Полезна? | Сложность | IronClaw нужен? |
|---|---|---|---|
| LLM Failover | ДА | ~50 строк Python | Нет |
| Sandbox | Нет | — | — |
| Шифрование | Нет | — | — |
| Leak detection | ДА | ~15 строк Python | Нет |
| Self-expanding | ОПАСНО | — | — |
| Telegram-бот | ДА (будущее) | ~100 строк Python | Нет |
| pgvector | Может быть | Средне | Нет |
| Circuit breaker | ДА | ~80 строк Python | Нет |
3 вещи которые стоит реализовать (без IronClaw):
- LLM Failover — Claude упал → GPT-4o (~50 строк)
- Leak detection — сканирование ответов на API ключи (~15 строк)
- Telegram-бот — на будущее, когда основной функционал стабилен (~100 строк)
Общий объём: ~250 строк Python-кода. Ставить ради этого Rust-проект возрастом 3 недели — как покупать тягач чтобы отвезти пакет молока.