Цифровая копия BNF: агентский мозг формирует и переписывает правила, детерминированный исполнитель ставит ордера. Автономная эволюция популяции трейдер-агентов.
Агентская архитектура реализована полностью. Мозг — LLM (LangGraph + Claude), он учится и переписывает правила. Исполнитель — детерминированный Python, он ставит ордера без LLM. Это не компромисс — это единственный способ сделать самообучение воспроизводимым.
Единственный канал между мозгом и руками — файл правил (данные), не вызов функции в моменте.
1. Чистый сигнал. Рефлексия извлекает урок из связки «условия → правило → исход». LLM в моменте разрывает эту связку: одинаковые kairi/volume/режим дают разные действия. Учить нечему.
2. Воспроизводимость. OOS-бэктест возможен только если стратегия детерминирована. Из 19 академических LLM-trading фреймворков 0 прошли полную воспроизводимость — именно из-за LLM в критическом пути.
3. Latency. LLM 500–2000 мс в hot-path несовместим с MR-входом: пока «думал» — спред ушёл, отскок начался.
| Обязано быть ДЕТЕРМИНИРОВАННЫМ | Живёт в АГЕНТ-пространстве |
|---|---|
| Risk Guard / hard limits (leverage, daily-halt, exposure) | Классификация режима (4 режима + confidence) |
| Постановка ордера (latency <100 мс) | Предложение изменения параметров (валидируется кодом) |
| Управление стоп-лоссом и position sizing | Пост-трейд анализ (что было верно/неверно) |
| Account state (equity, позиции, open orders) | Детекция аномалий — алерт Тимуру |
| Circuit breakers и аутентификация биржи | Детекция деградации стратегии (Sharpe упал?) |
| Записи в журнал (audit trail) | Аллокация капитала между вариантами по перформансу |
Быстрый такт каждый бар · детерм. · без LLM
Медленный такт раз в 4ч / после K сделок · LangGraph + LLM
| Уровень | Что | Где | Кто пишет/читает |
|---|---|---|---|
| Working memory | последние ~20 сделок, позиции, баланс | SQLite | исполнитель / рефлексия |
| Episodic memory | каждая сделка с полным контекстом | SQLite trades.db | исполнитель пишет, L5 читает |
| Semantic memory | выученные правила (JSON, версионированы) + инсайты | rules/*.json + ChromaDB | L5 пишет, L2/L3/L5 читают |
| Strategic memory | высокоуровневые паттерны («все kairi-сигналы в TREND ложные») | текст, раз в месяц | L5 (Generative-Agents стиль) |
«Трейдер сформировался» = semantic memory содержит стабильный набор правил, прошедших OOS и переживших смену режимов. BNF годами менял пороги вручную — у нас это автоматизировано как петля.
Каждое изменение правила = commit: rules: v1.5 | regime=RANGING | sharpe_ois=1.08 | kairi −22→−25 | 34 cases p=0.03. Даёт git log (история), git diff (что изменилось), git revert (откат за секунды). Никогда не delete — только deactivate.
| Гейт | Условие | Если не прошёл |
|---|---|---|
| Гейт 0 · Статистика | n_similar ≥ 30, p < 0.05, эффект стабилен в 2+ периодах | «недостаточно данных», правило не пишется |
| Гейт 1 · Atomic edit | одно правило за итерацию, ±≤20% от текущего | дробить на несколько итераций |
| Гейт 2 · OOS бэктест | held-out 60 дней, Sharpe(new) ≥ Sharpe(old)×0.9, net после комиссий | откат предложения |
| Гейт 3 · Human-in-loop | Telegram Тимуру (было/стало/почему/OOS-метрики). Нет ответа 24ч → не применяется | fail-safe: не применяется |
| Гейт 4 · Мониторинг | 2 недели после — rolling Sharpe не упал >15% | автооткат через git revert |
| Ловушка | Защита |
|---|---|
| Переобучение на шуме (рынок ≈ random walk) | Гейт 0: n≥30 + p<0.05 + воспроизводимость в 2 периодах. Deflated Sharpe |
| Reward hacking (оптимизация 1 метрики) | fitness = Sharpe + Max DD + Calmar одновременно (constraints, не weights) |
| Catastrophic forgetting (смена режима) | Deactivate не delete. Режим-тегирование правил. Memory replay |
| Semantic drift (10 итераций → расплывчатость) | JSON structured rules, не текст. Temporal decay. Consistency-check |
| Lucky trade (случайный pump как правило) | Гейт 0 + paper-параллель нового правила 2 недели до применения |
| Полная автономия при $2–3k | Human-in-loop не опционален на старте (Гейт 3). Read-only Phase 5 перед write-enabled Phase 6 |
| Компонент | Выбор | Почему |
|---|---|---|
| Оркестрация (мозг) | LangGraph ≥1.0.10 | нативный checkpointing SQLite, условные рёбра, нативный slow/fast split. AutoGen мёртв с late-2025; CrewAI без state-persistence |
| Исполнитель + бэктест | NautilusTrader + VectorBT | Nautilus: research→live один код, Rust-ядро, Bybit-адаптер. VectorBT: 1M симуляций/сек для sweep |
| Демо-адаптер | Bybit Demo (demo=True) | реальные данные, нет реальных денег. Market-agnostic: AlpacaPaperAdapter под акции без переписывания ядра |
| Память | SQLite + ChromaDB embedded + git | pip install без Docker, до ~100K сделок хватит. Qdrant — только Phase 6+ при >100K |
| LLM мозга | Claude (sonnet) | медленный контур, не hot-path. Быстрые модели для рутинной классификации, тяжёлые — только решения об изменении правил |
| Human-in-loop | python-telegram-bot | Гейт 3, алерты, кнопки апрува |
Phase 1–4 (обязательно): pybit + pandas/numpy + nautilus_trader + langgraph + langgraph-checkpoint-sqlite + sqlite3 + schedule.
Phase 5–6 добавляет: chromadb + anthropic + python-telegram-bot.
НЕ строить сразу: Qdrant, multi-exchange routing, real-time dashboard, свой message bus. Минимум кода под задачу, никаких «на будущее».
| Риск | Суть | Митигация |
|---|---|---|
| Latency LLM в hot-path | 500–2000 мс убивает MR-вход | Архитектурно исключён: LLM только в медленном контуре |
| Стоимость LLM 24/7 | 19 агентов × 100 сигналов/день = дорого; крипта 24/7 | Медленный такт (раз в 4ч). Быстрые модели для рутины. На старте 1 агент |
| Самообман эволюции (главный) | Агент выучивает шум/удачу; reward hacking; semantic drift; catastrophic forgetting | 4 гейта · fitness из 3 метрик · JSON-правила · версионирование-не-delete · стоп-условие «10 отклонённых за 3 мес» |
| Невоспроизводимость | 0 из 19 академических фреймворков воспроизводимы | Детерм. исполнение + temporal split + embargo + OOS-гейт |
| Lookahead bias через LLM training | LLM «помнит» исторические результаты | LLM не в исполнении. Валидация только на данных после cutoff |
| Режимо-зависимость MR (killer) | Бот покупает падение, которое не остановится | Слой 2 ВЕТО: TREND → mr_disabled. Circuit breaker + rolling-Sharpe alert |
| Overtrading от «умного» агента | Агент рационализирует лишние входы | Детерм. quality-gate (пропускать ≥60%) + MAX_TRADES_PER_DAY в слое 4 |
Каждый агентский риск замыкается на детерминированный слой, который агент не может обойти. Промпт-инжекция, галлюцинация, дрейф, reward hacking — всё упирается в RiskGuard и FROZEN_RULES, которые физически вне досягаемости LLM. Агентская гибкость — только в пределах недвижимого детерминированного каркаса.
Система описана на уровне архитектуры. Ни один из 8 этапов ещё не реализован — это блюпринт, не работающий код. Архитектура строится снизу вверх, и каждый следующий этап зависит от прохождения предыдущего гейта.
Главный гейт — Этап 2. Edge-тестирование может показать, что метод kairi + MR после реальных комиссий (0.02%/0.055%) не даёт OOS Sharpe ≥0.8. В этом случае весь агентский слой строить не имеет смысла.
Бюджет $2–3k накладывает жёсткие ограничения: малое число сделок замедляет статистическую значимость → Гейт 0 (n≥30) набирается медленнее. Популяция характеров и эволюция (Этап 7) реалистичны только после 6+ мес live-данных.
Академические фреймворки (TiMi, OpenClaw, SHARP, MadEvolve) описаны в ресёрче — реальное поведение на крипто-рынке 2026 может отличаться от заявленных показателей.