montana/Русский/Логистика/IRONCLAW_ANALYSIS.md

20 KiB
Raw Blame History

Анализ: 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 недели — как покупать тягач чтобы отвезти пакет молока.