# Анализ: 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 уровней): 1. Защита от prompt injection (обёртка контента + экранирование) 2. Обнаружение утечек credentials (сканирование перед отдачей) 3. Ограничение длины (защита от buffer overflow) 4. Политики блокировки (настраиваемые правила) 5. Изоляция контейнеров (Docker + capabilities) 6. Прокси-валидация сети (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. ### Что реально нужно делать (по приоритету): 1. **Получить MarineTraffic API ключ** — trial на неделю уже договорились 2. **Интегрировать MT API** в ais_provider.py как premium источник данных 3. **Перенести на Hetzner VPS** когда MT API готов 4. **Настроить 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): 1. **LLM Failover** — Claude упал → GPT-4o (~50 строк) 2. **Leak detection** — сканирование ответов на API ключи (~15 строк) 3. **Telegram-бот** — на будущее, когда основной функционал стабилен (~100 строк) **Общий объём: ~250 строк Python-кода.** Ставить ради этого Rust-проект возрастом 3 недели — как покупать тягач чтобы отвезти пакет молока.