Skip to content

nativ3ai/MiroFish

 
 

Repository files navigation

MiroFish Logo

666ghj%2FMiroFish | Trendshift

简洁通用的群体智能引擎,预测万物
A Simple and Universal Swarm Intelligence Engine, Predicting Anything

666ghj%2MiroFish | Shanda

GitHub Stars GitHub Watchers GitHub Forks Docker Ask DeepWiki

Discord X Instagram

English | 中文文档

⚡ 项目概述

MiroFish 是一款基于多智能体技术的新一代 AI 预测引擎。通过提取现实世界的种子信息(如突发新闻、政策草案、金融信号),自动构建出高保真的平行数字世界。在此空间内,成千上万个具备独立人格、长期记忆与行为逻辑的智能体进行自由交互与社会演化。你可透过「上帝视角」动态注入变量,精准推演未来走向——让未来在数字沙盘中预演,助决策在百战模拟后胜出

你只需:上传种子材料(数据分析报告或者有趣的小说故事),并用自然语言描述预测需求
MiroFish 将返回:一份详尽的预测报告,以及一个可深度交互的高保真数字世界

��们的愿景

MiroFish 致力于打造映射现实的群体智能镜像,通过捕捉个体互动引发的群体涌现,突破传统预测的局限:

  • 于宏观:我们是决策者的预演实验室,让政策与公关在零风险中试错
  • 于微观:我们是个人用户的创意沙盘,无论是推演小说结局还是探索脑洞,皆可有趣、好玩、触手可及

从严肃预测到趣味仿真,我们让每一个如果都能看见结果,让预测万物成为可能。

🌐 在线体验

欢迎访问在线 Demo 演示环境,体验我们为你准备的一次关于热点舆情事件的推演预测:mirofish-live-demo

📸 系统截图

截图1 截图2
截图3 截图4
截图5 截图6

🎬 演示视频

1. 武汉大学舆情推演预测 + MiroFish项目讲解

MiroFish Demo Video

点击图片查看使用微舆BettaFish生成的《武大舆情报告》进行预测的完整演示视频

2. 《红楼梦》失传结局推演预测

MiroFish Demo Video

点击图片查看基于《红楼梦》前80回数十万字,MiroFish深度预测失传结局

金融方向推演预测时政要闻推演预测等示例陆续更新中...

🔄 工作流程

  1. 图谱构建:现实种子提取 & 个体与群体记忆注入 & GraphRAG构建
  2. 环境搭建:实体关系抽取 & 人设生成 & 环境配置Agent注入仿真参数
  3. 开始模拟:双平台并行模拟 & 自动解析预测需求 & 动态更新时序记忆
  4. 报告生成:ReportAgent���有丰富的工具集与模拟后环境进行深度交互
  5. 深度互动:与模拟世界中的任意一位进行对话 & 与ReportAgent进行对话

反事实分支工作台

PrediHermes 使用的 fork 增加了反事实分支工作台,用于查看已经生成的历史分支。

  • 使用 /simulation/<simulation_id>/counterfactual 打开只读分支面板
  • /simulation/<simulation_id>/start 仍然只用于实时启动或重启分支
  • 工作台整合了 Step 3 历史时间线、按轮次查看、base/branch 事件对比,以及注入 actor 影响的关系时间线

PrediHermes 本地工作台

PrediHermes 是建立在 WorldOSINT + Polymarket + MiroFish 之上的本地优先操作层,用于把新闻包、市场价格、仿真结果、证据链、告警和反事实分支整理成可浏览的决策工件。

快速路径:

# 编译本地运行工件
./predihermes compile-artifacts \
  --mirofish-root /absolute/path/to/MiroFish-main

# 在终端查看最新 ASCII 控制台
./predihermes dashboard \
  --topic-id iran-conflict \
  --mirofish-root /absolute/path/to/MiroFish-main

# 打开 Rust TUI 工作台(无前端依赖)
./predihermes tui \
  --topic-id iran-conflict \
  --mirofish-root /absolute/path/to/MiroFish-main

# 从已有 base simulation 创建新的反事实分支
./predihermes create-branch \
  --base-simulation-id sim_19463d1a091e \
  --actor-name "Swiss backchannel envoy" \
  --entity-type Diplomat \
  --profession Diplomat \
  --country Switzerland \
  --persona "Quiet mediator pushing phased verification and face-saving sequencing." \
  --bio "Backchannel envoy with access to both US and Iranian negotiators." \
  --interested-topic Diplomacy \
  --interested-topic Verification \
  --injection-round 8 \
  --opening-statement "Swiss channel indicates a verification-first formula could still bridge the deadline gap."

# 也可以通过仓库 package script 调用
npm run predihermes -- dashboard --topic-id iran-conflict --mirofish-root /absolute/path/to/MiroFish-main

默认跟踪运行现在会在基础 packet 之外附加两条经过本地裁剪的 feed:

  • intelligence_findings
  • polymarket_intel

默认模拟路径现在也会额外生成一份更干净的 simulation_brief.md,MiroFish 图谱构建优先吃这份 brief 而不是完整 seed packet。这样可以显著减少把 UTCDeadlineSeed Packet 之类元数据误识别成 actor 的情况。

如果需要人工干预 cast / persona,可以先导出 operator 可编辑的人设清单:

./predihermes profile-template \
  --simulation-id sim_0e4e0705893c \
  --mirofish-root /absolute/path/to/MiroFish-main

导出的 manifest 默认写到 ~/.hermes/data/geopolitical-market-sim/profile-manifests/。修改后可以把 JSON 路径挂到 tracked topic 上,让下一次运行直接采用 operator override,而不是重新让本地模型随意拼 persona:

./predihermes update-topic iran-conflict \
  --set-profile-overrides-path /absolute/path/to/mirofish_a3d3a53a301d4487.json

这个 manifest 本身就是给 operator 改的。可以直接禁用某些 actor,或者改写 entity_typenameuser_namepersonabio 等字段,再把它挂回下一次 tracked run。

Rust TUI 启动时会先播放一段更明确的 ASCII PREDIHERMES boot sequence,进入工作台后会进入 control-room 布局:

  • Topics
  • Runs
  • Branches
  • Detail

头部、pane 标题和 control footer 会保持轻量动态效果,保证纯终端里也能看见“活”的状态而不是静态截图。

Rust TUI 会读取 ~/.hermes/data/geopolitical-market-sim/compiled/ 下的编译工件,支持浏览:

  • topic 列表
  • run 历史
  • 决策工件
  • evidence lineage
  • alerts
  • accountability ledger
  • counterfactual branch summary

Rust TUI 常用按键:

  • 1 / 2 / 3 / 4 / 5:快速切换 Topics、Runs、Branches、Tabs、Detail 焦点
  • Tab:循环切换焦点
  • j / k:在当前 pane 中移动
  • h / l:切换 detail tab
  • Enter:在 Branches pane 中直接打开当前 branch 详情
  • c:基于当前 run 在 footer 中生成一条可直接执行的 create-branch 命令模板
  • ?:打开帮助覆盖层
  • r:重新加载本地编译工件
  • q:退出

如果希望 PrediHermes 全链路本地运行,可将 MiroFish 后端的 LLM_BASE_URL 指向任意 OpenAI-compatible 本地模型服务,例如 Ollama / vLLM / LM Studio。

仓库根目录内置了 ./predihermes 启动脚本,它会优先使用 backend/.venv/bin/python,避免系统 Python 缺少依赖时导致网络命令失败。

🚀 快速开始

一、源码部署(推荐)

前置要求

工具 版本要求 说明 安装检查
Node.js 18+ 前端运行环境,包含 npm node -v
Python ≥3.11, ≤3.12 后端运行环境 python --version
uv 最新版 Python 包管理器 uv --version

1. 配置环境变量

# 复制示例配置文件
cp .env.example .env

# 编辑 .env 文件,填入必要的 API 密钥

必需的环境变量:

# 本地 LLM 配置(默认推荐 Ollama + Qwen,保持 PrediHermes 全链路本地)
LLM_API_KEY=ollama
LLM_BASE_URL=http://127.0.0.1:11434/v1
LLM_MODEL_NAME=qwen2.5:7b
LOCAL_LLM_REQUEST_TIMEOUT_SECONDS=900
LOCAL_LLM_MAX_TOKENS=192

# 图谱后端配置(推荐先用 local)
# 可选值: auto | local | zep
GRAPH_BACKEND=local
LOCAL_GRAPH_EXTRACTION_MODE=fast
LOCAL_SIMULATION_PROFILE=lean
LOCAL_SIM_MAX_AGENTS=48
LOCAL_SIM_MAX_ROUNDS=16

# Zep Cloud 配置(仅在 GRAPH_BACKEND=zep 时必需)
# 本地模式下建议留空,避免误以为模拟流程还在走 Zep。
# ZEP_API_KEY=your_zep_api_key

说明:

  • GRAPH_BACKEND=local 会将图谱存储在 backend/uploads/graphs/*.sqlite3,不依赖 Zep。
  • LOCAL_GRAPH_EXTRACTION_MODE=fast 会让本地图谱构建优先走规则提取,适合本地 PrediHermes 快速模拟;如需更重的 LLM 图谱抽取,可改为 llm
  • LOCAL_SIMULATION_PROFILE=leanLOCAL_SIM_MAX_AGENTS=48LOCAL_SIM_MAX_ROUNDS=16 是当前本地 PrediHermes 的默认轻量模拟配置,目的是让 Ollama/Qwen 在单机上稳定跑通而不是默认假设云端吞吐。
  • GRAPH_BACKEND=auto 会在存在 ZEP_API_KEY 时使用 Zep,否则自动回退到本地 SQLite。
  • GRAPH_BACKEND=zep 会强制要求 ZEP_API_KEY
  • 本仓库默认建议的模型路径是 Ollama -> qwen2.5:7b,也就是 http://127.0.0.1:11434/v1

2. 安装依赖

# 一键安装所有依赖(根目录 + 前端 + 后端)
npm run setup:all

或者分步安装:

# 安装 Node 依赖(根目录 + 前端)
npm run setup

# 安装 Python 依赖(后端,自动创建虚拟环境)
npm run setup:backend

3. 启动服务

# 同时启动前后端(在项目根目录执行)
npm run dev

服务地址:

  • 前端:http://localhost:3000
  • 后端 API:http://localhost:5001

单独启动:

npm run backend   # 仅启动后端
npm run frontend  # 仅启动前端

二、Docker 部署

# 1. 配置环境变量(同源码部署)
cp .env.example .env

# 2. 拉取镜像并启动
docker compose up -d

默认会读取根目录下的 .env,并映射端口 3000(前端)/5001(后端)

docker-compose.yml 中已通过注释提供加速镜像地址,可按需替换

📬 更多交流

QQ交流群

 

MiroFish团队长期招募全职/实习,如果你对多Agent应用感兴趣,欢迎投递简历至:mirofish@shanda.com

📄 致谢

MiroFish 得到了盛大集团的战略支持和孵化!

MiroFish 的仿真引擎由 OASIS 驱动,我们衷心感谢 CAMEL-AI 团队的开源贡献!

📈 项目统计

Star History Chart

About

Fork of 666ghj/MiroFish with Zep ontology hardening and configurable frontend port

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 62.4%
  • Vue 33.7%
  • Rust 3.2%
  • JavaScript 0.7%
  • HTML 0.0%
  • Dockerfile 0.0%