8 KiB
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
- Graph Building (
graph_builder.py879 строк,ontology_generator.py732): seed-материалы (новости/политики/финанс.сигналы, PDF/текст) → извлечение сущностей и связей → GraphRAG-граф в Zep (онтология генерится LLM). - Environment Setup (
oasis_profile_generator.py1248): из сущностей Zep LLM-ом генерятся персоны агентов — индивидуальные и групповые (generate_profile_from_entity→_generate_profile_with_llm, JSON-схема, username, bio, persona-текст) → конфиг агентов инжектится в OASIS. - Simulation (
simulation_runner.py2033,run_parallel_simulation.py1699, twitter/reddit скрипты): движок OASIS (camel-ai) — двухплатформенная параллельная симуляция соцсети (Twitter+Reddit). Раунды = часы×60/минут_на_раунд, есть max_rounds-обрезка (контроль стоимости). Каждый агент за раунд — действие черезLLMAction(≥1 LLM-вызов на активного агента за раунд). Память: каждое действие → episode-текст → динамическое обновление Zep-графа (zep_graph_memory_updater.py791: описатели create_post/like/repost/ comment/follow/search). - Report (
report_agent.py2619 — самый большой модуль): ReportAgent с 4 инструментами —insight_forge,panorama_search,quick_search,interview_agents(интервьюирует агентов мира post-factum); протокол<tool_call>{...}</tool_call>, трекер «не все инструменты использованы» дожимает агент до полного отчёта. - 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 съели бы заметный кусок недельного бюджета без прямой выручки.
Что берём (идеи заимствования)
- Персона-из-сущности (
_generate_profile_with_llm): LLM-генерация структурированной персоны агента из записи графа знаний (JSON-схема, инди/групп). Куда: v2 aum-pilot — вместо placeholder-модели продуктивности, агентные симуляции решений кооператива (роли: Alex/Vlad/Yura/клиент) с сгенерированными персонами. - ReportAgent-паттерн: отчётёр = агент с узким набором инструментов (сводка/поиск/дип-поиск/интервью) + трекер обязательного использования всех инструментов. Куда: наш «отчёт-адвокат» в aum-pilot и часовые дайджесты — интервью опрошенных агентов симуляции вместо голой статистики.
- Episode→граф памяти: действие → компактный episode-текст → обновление графа по ходу симуляции (не в конце). Куда: память ритмичных агентов харнеса — но на нашем RAG (без Zep: episode → embedding → граф связей) — паттерн повторяем, сервис не покупаем.
- Предпродажная симуляция спроса: OASIS даёт готовую соц-динамику (лайк/репост/коммент/фоллов). Идея под AUM: перед запуском лендинга/прайса — дешёвый прогон (20–40 раундов, flash-модель, 50–100 агентов-«клиентов» из персон сегмента) → прогноз реакции и возражений. Это прямой кандидат в наши симуляции поведения пользователей.
- Автогенерация конфига из NL-запроса (
simulation_config_generator.py): «что хочешь узнать» естественным языком → параметры прогона + max_rounds (жёсткий потолок стоимости). Куда: постановка задачи → конфиг прогона aum-pilot; потолок раундов — в наши длинные симуляции. - IPC/прогресс долгих прогонов (
simulation_ipc.py+ progress %): отдельный процесс, структурированный прогресс, чистая обрезка. У нас уже есть _llm_worker — позаимствовать схему прогресса/тримминга.
Чего не берём
- Zep Cloud (внешний SaaS, счёт отдельно, данные наружу) — свой RAG/graph.
- OASIS целиком (тяжёлый camel-ai стек) — только если сделаем п.4; тогда изолированный Docker-стенд, flash-модель через 9router, budget-cap на прогон.
- Их фронт/платформу — у нас свои каналы (портал, MCP, TG).