用一个开源项目,在数字世界建一座"平行城市",让成千上万个 AI 角色在里面生活、争吵、形成共识——然后你就能看到未来。
读完本文你将了解:多智能体模拟的核心原理 | 5 步部署 MiroFish | 群体智能引擎的架构设计 | 这东西到底有没有用
🎯 这个项目解决什么问题?
你有没有遇到过这种情况:公司要推一个新策略,你不知道用户会怎么反应;或者你追了一部没写完的小说,特别想知道作者原本想怎么写结局?
传统的预测方式无非两条路:找专家分析,或者训练 ML 模型。但专家的认知有局限,ML 模型只能处理结构化数据——当你要预测的是"一个社会事件如何发酵"或者"100 万人对一个政策会有什么反应"时,两个方案都力不从心。
MiroFish 做的事情简单说就是:把一群人(AI 智能体)扔进一个数字沙盘,让他们自由互动,然后观察会"涌现"出什么。
它不是另一个 LLM 套壳。它的核心思路来自群体智能(Swarm Intelligence)——个体的简单行为在群体层面产生复杂模式,就像蚂蚁个体笨但蚁群聪明。MiroFish 把这个概念搬到了 AI 多智能体系统中。
技术上,它建立在两个关键基础上:**OASIS(CAMEL-AI 的开源社交媒体模拟框架)**提供智能体交互引擎,Zep提供长期记忆和图谱存储。基于此前 1000+ 个智能体在模拟环境中进行几十轮对话交互,从个体行为涌现出群体共识。
截至目前,GitHub 65K+ Star,获得盛大集团战略投资孵化,已经有多个真实演示案例(武汉大学舆情推演、红楼梦失传结局预测)。
🔧 快速上手
环境准备
# 确认 Node.js 版本node-v# 需要 18+# 确认 Python 版本python--version# 需要 3.11.x 或 3.12.x# 安装 uv 包管理器curl-LsSfhttps://astral.sh/uv/install.sh|sh克隆并配置
gitclone https://github.com/666ghj/MiroFish.gitcdMiroFish# 配置 API Keycp.env.example .env编辑.env,填入两个关键 API:
# LLM——推荐阿里百炼的 qwen-plus(性价比高,效果够用) LLM_API_KEY=sk-xxxxx LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 LLM_MODEL_NAME=qwen-plus # Zep Cloud——长期记忆和图谱存储,免费额度够用 ZEP_API_KEY=zep_xxxxx⚠️踩坑提醒:MiroFish 的 Token 消耗很大,一个完整的 40 轮模拟可能花掉几十块的 API 费用。建议先用 5-10 轮的短模拟测试,确认效果满意再跑完整版。
一键安装启动
npmrun setup:all# 安装前后端所有依赖npmrun dev# 同时启动前端 3000 + 后端 5001打开http://localhost:3000,上传种子材料(一段新闻文本、一份数据报告,或者哪怕是几章小说),用自然语言描述你想预测什么——然后等着看一群 AI 在你的沙盘里"开派对"。
⚙️ 技术原理:为什么一千个 AI 角色比一个 AI 准?
普通 LLM 预测是"单线程"的:你问一个问题,它给你一个答案。但社会现象不是一个人能算出来的——从众效应、信息级联、少数派观点发酵这些东西只有群体互动才会出现。
MiroFish 的核心设计是基于智能体的社会模拟(Agent-Based Social Simulation, ABSS),五步走:
第一步:图谱构建。系统把种子材料喂给 LLM,提取出关键实体(人物、组织、事件)和关系,存入 Zep Cloud 的图数据库。同时为群体注入初始"集体记忆"——相当于给每个智能体一个共同的知识基线。
第二步:人设生成。这是最精彩的部分。系统不是创建 1000 个一模一样的 AI,而是根据种子材料自动推断"这个世界里可能有哪些类型的人"。比如在一个舆情推演场景中,它会生成"激进派大学生"“谨慎的校方领导”“吃瓜群众”"专业媒体人"等不同角色,每个有不同的立场、知识面和表达风格。
第三步:平行模拟。OASIS 框架接管——一个专为社交媒体模拟设计的引擎,管理着成千上万智能体之间的对话交互。智能体会根据自己的人设和记忆选择"跟谁聊"“聊什么”。关键的涌现机制在这里:当一个"有影响力"的智能体说完,其他人会根据社会关系网络做出反应——转述、质疑、赞同、歪曲——信息在传播中变形,共识在争议中形成。
第四步:报告生成。模拟结束后,一个专门的 ReportAgent 带着丰富的工具集进入"模拟后的世界",对所有的对话记录、关系网络、情绪时间线做分析,生成结构化预测报告。
第五步:深度交互。这是 MiroFish 区别于普通"输入-输出"式 AI 工具的地方。你可以点击模拟世界中的任意一个角色,跟 Ta 单独对话;也可以跟 ReportAgent 继续追问。你不是在看一份报告——你是在探索一个"平行宇宙"。
🏗️ 架构分析
MiroFish 的代码结构相当清晰,前后端分离,核心服务模块化:
MiroFish/ ├── frontend/ # React + Vite 前端 ├── backend/ │ ├── app/ │ │ ├── api/ # Flask 路由层 │ │ │ ├── graph.py # 图谱构建 API │ │ │ ├── simulation.py # 模拟控制 API │ │ │ └── report.py # 报告 API │ │ ├── services/ # 核心业务逻辑 │ │ │ ├── graph_builder.py # 实体提取+图谱构建 │ │ │ ├── ontology_generator.py # 人设生成 │ │ │ ├── oasis_profile_generator.py # 转化为OASIS配置 │ │ │ ├── simulation_runner.py # 模拟编排 │ │ │ ├── report_agent.py # 报告生成智能体 │ │ │ └── zep_* # Zep记忆/图谱服务 │ │ └── models/ # 数据模型 │ └── pyproject.toml └── docker-compose.yml设计亮点:
OASIS 作为模拟引擎——MiroFish 没有重新发明轮子,而是站在 CAMEL-AI 团队的肩膀上。OASIS 专门为社交媒体模拟设计,已经处理好了智能体管理、时间推进、关系网络等底层问题。MiroFish 团队把精力集中在"上游的种子材料处理"和"下游的报告生成"上,这是聪明的工程技术选择。
Zep Cloud 的记忆分层——不是简单的向量数据库,Zep 提供的是"用户记忆 + 知识图谱 + 时序记忆"的三层架构。在模拟中,智能体的短期对话记忆和长期人格记忆被分别存储,这让智能体既能记住"刚才聊了什么",又不会丢掉"自己是什么人"。
双平台模拟——从 API 设计来看,模拟支持"双平台并行",意味着你可以在不同的参数配置下同时跑两场模拟,然后对比结果——这对做假设检验(“如果主流媒体介入会怎样?”)非常有用。
不够好的地方:
- Token 消耗没有内置的预估和控制机制,新手很容易跑完一场模拟才发现烧了几十块钱
- 模拟过程中的状态可视化还比较弱,前端只展示结果,过程中发生了什么完全"黑盒"
- 中文智能体的对话质量有时会崩——角色的人设会飘移,比如"谨慎的领导"突然变得像营销号小编,这和底层 LLM 的指令遵循能力有关
✅ 优缺点 & 适用场景
三个优点:
- 真·涌现效应——不是让 LLM 直接回答预测问题,而是让智能体互动产生涌现结果,这在底层方法论上是对的
- 上手快——两个 API Key + 一行安装命令就能跑,没有复杂的自建服务依赖
- 案例真实可靠——武汉大学舆情和红楼梦推演都有完整的 B 站演示视频,不是 PPT 项目
两个缺点:
- 成本不透明——没有 Token 预估,没有费用提示,模拟花费全靠跑完才知道
- 对种子材料敏感——输入质量直接影响输出质量,没有内置的材料质量评估
谁应该立刻试试:
- 在做舆情分析、政策研究、市场调研的团队
- 小说作者/内容创作者想推演自己的世界观
- 对多智能体模拟技术感兴趣的研究者
谁应该再等等:
- 只想要"一句话预测"的用户——MiroFish 太重了,ChatGPT 就够了
- 预算敏感的开发者——OASIS + Zep + LLM 三块费用叠加,个人使用成本不低
- 需要高精度金融预测的场景——群体智能在金融预测上的方法论还不够成熟
MiroFish 让我看到多智能体模拟正在从学术走向工程化。它不是又一个 LLM 套壳,而是用"让 AI 互相对话"的方式回答那些单靠预测模型无法回答的问题。如果能解决成本控制和过程可视化的问题,这条路大有可为。