
用预测类工具的人,多多少少都碰到过这种别扭:你丢进去一堆历史数据,它回你一个数字------"下季度大概涨 3.2%"。可你接着想问一句"为什么会是 3.2%""要是中途出了个突发事件呢",它就答不上来了。
问题不在于算得准不准。问题在于,很多现实里的结果压根不是"算"出来的,而是一大群人你来我往、互相影响之后涌出来的。舆论怎么转向、情绪怎么发酵、政策一出来大家会怎么反应------这些东西你很难用一条曲线拟合,因为它们本来就是动态博弈的产物。
最近在 GitHub 上翻到一个思路完全不同的项目,叫 MiroFish 。它不拟合数字,而是直接搭一个"平行世界",往里塞几千个带性格、带记忆的 AI 角色,让它们在里头自由发言、互相影响,然后看这个群体最后会演化成什么样。说白了,它预测的不是一个数字,而是一段剧情走向。
我花时间把它的仓库、文档和示例都过了一遍,这篇就聊聊它到底怎么用、好用在哪、以及哪些地方得心里有数。
一句话说清它是什么
MiroFish 官方给自己的定义是"简洁通用的群体智能引擎,预测万物"。这话有点大,翻译成人话大概是:
你给它一份材料(比如一份行业报告、一段新闻、甚至一本小说),再用一句话描述你想预测什么,它就在后台"复活"出一群虚拟的人,让他们围绕这个话题讨论、站队、争论若干轮,最后给你一份趋势分析报告。
打个比方会更直观。传统的预测模型像是拿一张历史照片 去推测下一帧;MiroFish 更像是拉了一个剧组,给每个演员写好人物小传,让他们就一个话题即兴演一场戏,你坐台下看剧情往哪儿走。
名字里的 Fish 我觉得挺好懂:鱼群没有中心指挥,成千上万条鱼各自只遵循简单的规则,却能在水里聚成壮观的图案------这就是所谓的"群体涌现"。MiroFish 想复刻的,正是这种"个体简单、群体复杂"的现象。

先看数据:这项目现在什么热度
改写的时候我顺手核了下仓库的实时数据,顺便说一句,网上不少介绍文章的 star 数都停在老版本了,实际早就涨上去了:
| 项目 | 数据 |
|---|---|
| GitHub Stars | 约 77,500 |
| Forks | 约 11,800 |
| 开源协议 | AGPL-3.0 |
| 最新版本 | v0.1.2 |
| 主要语言 | Python(后端)+ Vue(前端) |
| 仿真引擎 | OASIS(来自 CAMEL-AI 团队) |
| 背后支持 | 盛大集团战略孵化 |
| 配套项目 | BettaFish / 微舆(舆情数据采集,约 4.2 万 Star) |
作者是 GitHub 上的 666ghj 。他有另一个很有名的项目 BettaFish(微舆) ,做的是从 30 多个平台采集舆情数据。有意思的是,这两个项目能接成一条线:BettaFish 负责"看现在",把现实里的舆情、情绪数据扒回来;MiroFish 负责"推以后",把这些数据当种子,演一遍未来。 一个采数据,一个跑预演,正好凑成一个闭环。

它是怎么跑起来的:五个阶段
MiroFish 的整个流程被拆成五步,一步接一步走,中途不跳步。官方文档里叫"工作流程",我把它和每步实际干的事整理成一张表:
| 阶段 | 官方叫法 | 这一步实际做的事 |
|---|---|---|
| 1 | 图谱构建 | 从种子材料里抽信息,建一张知识图谱,同时给智能体注入背景记忆 |
| 2 | 环境搭建 | 抽取实体之间的关系,自动生成"人设",再把仿真参数注入进去 |
| 3 | 开始模拟 | 两个平台并行跑仿真,自动解析你的预测需求,动态更新时序记忆 |
| 4 | 报告生成 | 一个专门的 ReportAgent(报告智能体)调用各种工具去分析仿真结果 |
| 5 | 深度互动 | 你可以跟仿真世界里的任意一个角色对话,也可以追问报告 |
前四步基本是自动的,你只需要在第 1 步上传材料、在第 2 步填几个参数,然后等结果。第五步才是真正好玩的地方------报告不是终点,你还能跟这个"平行世界"里的人接着聊。
三个我觉得挺妙的设计
GraphRAG:让角色会"推理关系",而不只是"查资料"
大部分 RAG(检索增强生成,简单说就是"先查资料再回答")的做法是:把文档切碎、转成向量、找相似的段落。问题是它只能告诉你"文档里有哪些事实",没法推理"A 变了会让 B 怎么变"。
MiroFish 用的是 GraphRAG(图增强检索),做法是把文档里的实体和关系抽出来,连成一张网。这样角色就能顺着关系链去推理------比如"政策 X 会影响群体 Y,而 Y 的反应又反过来影响 Z"。在仿真里,这种"因果链"恰恰是最关键的东西。
Zep 记忆:让角色不至于"每轮都失忆"
多智能体仿真有个经典毛病:如果每一轮对话角色都从零开始,那行为就前后不搭,预测出来的东西也没什么参考价值。这个项目给每个智能体都挂了一块独立记忆(用的是 Zep Cloud 的记忆服务),让它记得住自己之前说过啥、跟谁聊过。角色因此更像一个"有连续认知的人",而不是一个健忘的复读机。
上帝视角注入:从"会发生什么"变成"如果我这么做会怎样"
这是我自己觉得最实用的功能。仿真跑到一半,你可以从"上帝视角"往世界里丢一个变量------比如"竞争对手突然降价 20%""某条政策提前发布"------然后看整个群体怎么应对。
普通预测工具只能回答"未来会怎样";能注入变量的好处是,它能回答"我要是这样做,未来会怎样"。工具一下子从"算命"变成了"决策沙盘"。
另外它还做了个挺诚实的处理:同一个仿真在两个独立平台上并行跑一遍。两边结果高度一致,就说明结论比较稳;两边差得远,就标出来提醒你"这里不确定,别太当真"。比起硬给一个自信满满的数字,我更愿意接受这种"承认自己不确定"的做法。
上手实测
环境要求(这里跟一些老教程写得不一样)
我得先说一句:网上不少介绍(包括我参考的那版原文)写的是"Python 3.10+、Node.js 16+",但我对着官方 README 核对后发现对不上。以官方文档为准,实际要求是:
| 工具 | 版本要求 | 用途 |
|---|---|---|
| Node.js | 18+ | 前端运行环境(自带 npm) |
| Python | ≥3.11 且 ≤3.12 | 后端运行环境 |
| uv | 最新版 | Python 包管理器 |
Node 和 Python 版本卡得比较严,尤其是 Python 上限 3.12,别用太新的版本,不然容易踩依赖的坑。
配置密钥
先把示例配置复制一份出来:
cp .env.example .env
然后编辑 .env,必填的其实就两类------一个 LLM(大语言模型)的 key,一个 Zep 记忆服务的 key:
# LLM API 配置(任何兼容 OpenAI SDK 格式的接口都行)
# 官方推荐阿里百炼平台的 qwen-plus 模型
# 注意:仿真消耗较大,建议先跑小于 40 轮试试水
LLM_API_KEY=your_api_key_here
LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
LLM_MODEL_NAME=qwen-plus
# Zep Cloud 配置(每月免费额度够简单使用)
ZEP_API_KEY=your_zep_api_key_here
这里要提醒一句:这东西是真烧 token 的。因为每轮每个智能体的发言都要过一次大模型,几千个角色跑几十轮,账单一不留神就上去了。官方自己也在注释里提示"先跑小于 40 轮的模拟"。
安装与启动
依赖可以一键装(根目录、前端、后端全包了):
npm run setup:all
装完直接起服务,前后端一起拉起来:
npm run dev
启动之后:
- 前端界面:
http://localhost:3000 - 后端 API:
http://localhost:5001
想分开跑也行,npm run backend 只起后端,npm run frontend 只起前端。
嫌配环境麻烦的,官方也给了 Docker 方案,两条命令搞定:
cp .env.example .env
docker compose up -d
端口一样,前端 3000、后端 5001。
第一次仿真
跑通之后,整个流程大概是这么几步:
- 在首页上传一份种子材料(支持 PDF、MD、TXT,也可以直接粘贴文字)
- 用一句话描述你想预测什么,比如"某公司发布降价公告后,舆论会怎么走"
- 让系统自动生成人设、搭好仿真环境
- 等它跑完(时间跟角色数量和轮次相关,官方说轮次要控制着来)
- 看报告,然后跟报告或跟里面的角色接着聊
界面长什么样
光说功能有点干,我把仓库里的几张运行截图放上来,你看看它实际是怎么用的。
下面这张是仿真跑起来之后的工作台:左边是一张巨大的关系图谱,每个点是一个实体(公司、人物、机构......),点开能看到它的详细属性;右边则显示已经生成好的"智能体人设",以及仿真参数------跑了多少小时、多少轮、每个智能体多久发一次言,都能调。

再看这张,图谱旁边叠加了角色们的实际发言。你会看到类似"主流媒体""机构投资者""科技公司 CEO"这样不同人设的智能体,对同一件事给出立场完全不同的评论------有人看好,有人泼冷水。这种"观点分化"正是群体仿真的价值:它把一个话题上不同人群的立场都摆了出来。

最后是报告生成阶段。左边同样是图谱,右上角显示进度已经走到"报告生成"这一步,整个"平行世界"跑完之后的产物就在这里汇总成结论。

两个真实的案例
光看功能不如看它真跑过什么。作者在 B 站放了两个完整的演示视频,正好代表了它的两类典型用法:
一个是正经的舆情推演------用 BettaFish 生成的《武大舆情报告》当种子,让 MiroFish 推演这个事件后续会怎么发酵。这属于"决策辅助"的用法。
另一个是我觉得更有意思的------用《红楼梦》前 80 回几十万字的原文当种子,推测曹雪芹失传的结局会往哪儿走。这就是典型的"创意沙盘":同样一套仿真引擎,既能干正事,也能拿来玩。

从这两个例子能看出项目的定位挺清晰:往大了说是决策者的预演实验室,往小了说是个人用户的创意沙盘。严肃的舆情预测和好玩的脑洞推演,用的其实是同一套东西。
适合谁,不适合谁
比较适合:
- 研究舆情演化、社会仿真、计算社会科学的同学
- 做市场、公关、政策相关工作的,想做 what-if 场景推演的人
- 研究多智能体架构、GraphRAG、智能体记忆系统的开发者
- 单纯对"群体智能涌现"好奇、想拿它推推小说结局的玩家
得想清楚再用:
- 预算敏感的人:如前所说,token 消耗是实打实的,几千个 agent 跑几十轮不是小数目,别一上来就拉满参数。
- 想要"开箱即出准确答案"的人:它给的是趋势和可能性,不是精确数字。你要是想要一个能直接抄进报表的结论,可能会失望。
- 打算做商用 SaaS 的人:AGPL-3.0 是比 GPL 更严的协议------用它搭在线服务,你改过的代码也得开源。自己本地研究、个人使用不受影响。

几句实话
平心而论,MiroFish 现在还是 v0.1.2 的早期版本,别指望它像成熟商用软件那样稳。我梳理了下,上手前值得知道的几个点:
- 是"重演"不是"算命":它的价值在于把不同群体的反应摆给你看,帮你理解"为什么",而不是替你下一个精确的赌注。
- 贵:仿真规模越大、轮次越多,成本越高。先小规模试跑是明智的。
- 依赖外部服务:LLM 和 Zep 记忆都得用外部 API,得先申请好 key,且网络要通畅。
- 还在迭代:版本号很诚实,接口和界面说不定哪天就变了,遇到问题多翻 issues 和官方文档。
不过话说回来,一个开源项目能把"用多智能体重演社会演化"这件事跑通,并且做得能让人真正上手,本身已经挺不容易了。
名词速查表
| 名词 | 一句话解释 |
|---|---|
| 多智能体(Multi-Agent) | 让很多个 AI 角色各自行动、互相交互,而不是一个 AI 单打独斗 |
| 群体涌现(Emergence) | 个体都遵守简单规则,凑一起却冒出谁都没想到的复杂整体行为,像鱼群、鸟群 |
| GraphRAG | 一种增强检索技术,把资料连成"关系网"再查,能推理因果关系,比单纯找相似段落更聪明 |
| RAG | 检索增强生成,简单说就是"先查资料,再让模型据此回答" |
| Zep Cloud | 一个给 AI 提供长期记忆的云服务,让智能体记得住历史 |
| OASIS | CAMEL-AI 团队开源的社交仿真框架,MiroFish 的仿真引擎就是它 |
| 上帝视角注入 | 仿真运行时人为丢进一个变量(比如降价、发政策),观察群体反应 |
| AGPL-3.0 | 一种强开源协议,用它做网络服务也必须开源自己的改动 |
| Star / Fork | GitHub 上的收藏数和派生数,大致反映项目的热度 |
资源汇总
- 🌟 MiroFish 仓库 :
https://github.com/666ghj/MiroFish - 🐟 配套项目 BettaFish(微舆) :
https://github.com/666ghj/BettaFish - 🌐 在线 Demo :
https://666ghj.github.io/mirofish-demo/ - 🎬 演示视频(B 站):《红楼梦》结局推演、武大舆情推演
- 🧩 仿真引擎 OASIS :
https://github.com/camel-ai/oasis - 🧠 Zep Cloud :
https://app.getzep.com/
说到底,MiroFish 想试的是这么一件事:现实世界本来就是无数个体互相博弈之后"长"出来的结果,那要理解它,也许真的得用同样复杂的仿真去重演一遍。
鱼群游动时没有谁在指挥,却能游出壮观的图案。人类社会的舆论和选择,会不会也是这么回事呢?有想法的,可以去仓库里自己跑一局看看。