simbiot-harness/artifacts/mirofish-analysis-2026-10-04.md

8 KiB
Raw Blame History

MiroFish (github 666ghj/MiroFish): разбор и применимость — 2026-10-04

Задача: t-261004062405-fa9926. Метод: клон репо (depth 1), разбор кода backend (58 py-файлов, ~17.2k строк) + README. Версия зависимостей: camel-oasis==0.2.5, zep-cloud==3.25.0, flask>=3.0, openai>=1.0.

Вердикт

Как движок — НЕ берём. Как источник паттернов — да, 3-5 идей. Причины против движка: (1) стоимость — README сам пишет «High consumption, попробуйте сначала <40 раундов»; (2) жёсткая привязка к Zep Cloud (внешний SaaS-граф памяти, счёт отдельно от LLM) и OASIS/camel-ai; (3) китайский дефолт-стек (qwen-plus через dashscope) — у нас 9router; (4) это продукт-платформа (Flask 5001 + React 3000 + Docker), а не библиотека — интеграция = second brain.

Архитектура (проверено по коду)

Пайплайн: Graph Building → Environment Setup → Simulation → Report → Interaction

  1. Graph Building (graph_builder.py 879 строк, ontology_generator.py 732): seed-материалы (новости/политики/финанс.сигналы, PDF/текст) → извлечение сущностей и связей → GraphRAG-граф в Zep (онтология генерится LLM).
  2. Environment Setup (oasis_profile_generator.py 1248): из сущностей Zep LLM-ом генерятся персоны агентов — индивидуальные и групповые (generate_profile_from_entity → _generate_profile_with_llm, JSON-схема, username, bio, persona-текст) → конфиг агентов инжектится в OASIS.
  3. Simulation (simulation_runner.py 2033, run_parallel_simulation.py 1699, twitter/reddit скрипты): движок OASIS (camel-ai) — двухплатформенная параллельная симуляция соцсети (Twitter+Reddit). Раунды = часы×60/минут_на_раунд, есть max_rounds-обрезка (контроль стоимости). Каждый агент за раунд — действие через LLMAction (≥1 LLM-вызов на активного агента за раунд). Память: каждое действие → episode-текст → динамическое обновление Zep-графа (zep_graph_memory_updater.py 791: описатели create_post/like/repost/ comment/follow/search).
  4. Report (report_agent.py 2619 — самый большой модуль): ReportAgent с 4 инструментами — insight_forge, panorama_search, quick_search, interview_agents (интервьюирует агентов мира post-factum); протокол <tool_call>{...}</tool_call>, трекер «не все инструменты использованы» дожимает агент до полного отчёта.
  5. Interaction: чат с любым агентом мира + ReportAgent (фронт).

Память = Zep Cloud (knowledge-graph + temporal): не векторная база, а граф сущностей с би-темпоралью; free-тариф «на простое использование».

Оценка стоимости прогона

Формула расхода: ~ N_агентов × N_раундов LLM-вызовов (действия) + граф/онтология

  • персоны + отчёт (десятки вызовов) + инференс Zep (граф-обновления, отдельный счёт).
  • Заявленный дефолт: qwen-plus. README: «<40 раундов на старте».
  • Пример: 100 агентов × 40 раундов ≈ 4–5k вызовов ≈ 15–25M входящих токенов (контекст платформы в каждом) → ~$10–25 на qwen-plus за прогон; на премиум-модели класса GPT-4o — ×10–30 (сотни $).
  • Осмысленный прогнозный прогон (500+ агентов, 100+ раундов) — сотни $ за прогон даже на дешёвых моделях + Zep Cloud сверх.
  • Контекст: наш burn 9router = 2291.81 у.е./7д — один-два «взрослых» прогона MiroFish съели бы заметный кусок недельного бюджета без прямой выручки.

Что берём (идеи заимствования)

  1. Персона-из-сущности (_generate_profile_with_llm): LLM-генерация структурированной персоны агента из записи графа знаний (JSON-схема, инди/групп). Куда: v2 aum-pilot — вместо placeholder-модели продуктивности, агентные симуляции решений кооператива (роли: Alex/Vlad/Yura/клиент) с сгенерированными персонами.
  2. ReportAgent-паттерн: отчётёр = агент с узким набором инструментов (сводка/поиск/дип-поиск/интервью) + трекер обязательного использования всех инструментов. Куда: наш «отчёт-адвокат» в aum-pilot и часовые дайджесты — интервью опрошенных агентов симуляции вместо голой статистики.
  3. Episode→граф памяти: действие → компактный episode-текст → обновление графа по ходу симуляции (не в конце). Куда: память ритмичных агентов харнеса — но на нашем RAG (без Zep: episode → embedding → граф связей) — паттерн повторяем, сервис не покупаем.
  4. Предпродажная симуляция спроса: OASIS даёт готовую соц-динамику (лайк/репост/коммент/фоллов). Идея под AUM: перед запуском лендинга/прайса — дешёвый прогон (20–40 раундов, flash-модель, 50–100 агентов-«клиентов» из персон сегмента) → прогноз реакции и возражений. Это прямой кандидат в наши симуляции поведения пользователей.
  5. Автогенерация конфига из NL-запроса (simulation_config_generator.py): «что хочешь узнать» естественным языком → параметры прогона + max_rounds (жёсткий потолок стоимости). Куда: постановка задачи → конфиг прогона aum-pilot; потолок раундов — в наши длинные симуляции.
  6. IPC/прогресс долгих прогонов (simulation_ipc.py + progress %): отдельный процесс, структурированный прогресс, чистая обрезка. У нас уже есть _llm_worker — позаимствовать схему прогресса/тримминга.

Чего не берём

  • Zep Cloud (внешний SaaS, счёт отдельно, данные наружу) — свой RAG/graph.
  • OASIS целиком (тяжёлый camel-ai стек) — только если сделаем п.4; тогда изолированный Docker-стенд, flash-модель через 9router, budget-cap на прогон.
  • Их фронт/платформу — у нас свои каналы (портал, MCP, TG).