3 月初,一个叫 MiroFish 的开源项目登上了 GitHub Trending 全球榜首。
这件事本身不算罕见,但背后的故事有几个让人注意的细节:开发者是中国科学技术大学的大四学生郭航江(网名"百夫"),核心代码 10 天完成,采用的开发方式是所谓的 "Vibe Coding"——大量依赖 Claude Code 等 AI 辅助编程工具。更夸张的是,在向陈天桥递交演示视频后 24 小时内,就敲定了盛大集团 3000 万人民币的战略注资。
这不是他第一次干这事。2025 年下半年他的另一个项目 BettaFish(微舆,一个 AI 舆情分析工具)也登过 GitHub Trending 榜首,一周内涨了 2 万多 Star。
抛开故事性不谈,MiroFish 在技术上做了一件有意思的事:把多智能体仿真从学术论文里搬到了一个可以直接跑起来的工程系统里。这篇文章从技术角度拆解一下它的架构设计和工程决策。
MiroFish 到底是什么
一句话概括:MiroFish 是一个群体智能预测引擎,通过构建"平行数字世界"来推演未来走向。
具体来说,你给它一段种子材料(比如一篇新闻报道、一份政策草案、甚至一部小说的前半部分),MiroFish 会:
- 提取现实种子:用 LLM 分析文本,抽取关键实体(人物、组织、事件)和它们之间的关系
- 构建数字世界:为每个实体生成一个独立的 AI Agent,赋予人设、记忆、行为逻辑
- 运行仿真:让这些 Agent 在模拟的社交平台上自由交互、辩论、传播信息
- 生成预测报告:专门的 ReportAgent 分析仿真结果,输出结构化的预测报告
它的定位不是"预测准确率 95%",而是"决策沙盒"。给你一个低成本试错的环境,让未来先在数字沙盘里演一遍。
技术架构拆解
MiroFish 的架构分三层,整体设计思路清晰。
世界层:从文本到知识图谱
第一步是把种子文本转化为结构化的知识图谱。这里用到了时序 GraphRAG 技术,底层依赖 Zep Cloud 的图谱引擎 Graphiti。
流程大致是:
种子文本 → LLM 实体关系抽取 → 生成本体结构(实体类型 + 关系类型)→ 构建知识图谱
举个例子,据项目文档,输入一篇关于美伊关系的学术报告,系统能自动提取出 118 个实体(伊朗核科学家、美国前国务卿、CNN 媒体等),并建立它们之间的关系(SUPPORTS、CRITICIZES、ALLIED_WITH 等)。
这一步的关键设计是动态失效机制——知识图谱不是静态的,随着仿真推进,旧的关系会衰减,新的关系会建立。这比简单的 RAG 检索要合理得多,因为现实世界的关系确实是随时间变化的。
智能体层:有人格的 Agent
每个实体会被转化为一个独立的 Agent,每个 Agent 都有:
- 全景经历:基于种子材料生成的背景故事
- 行为模式:决策倾向、沟通风格
- 社会关系:与其他 Agent 的关系网络
- 性格特征:影响其决策偏好和表达方式
这些 Agent 不是简单的 prompt 模板,而是有长期记忆的。通过 Zep Cloud 的时序记忆系统,Agent 能记住之前的交互历史,并据此调整后续行为。这是实现"群体涌现"的基础——个体的微观行为积累起来,会产生宏观层面无法预先设计的集体现象。
交互层:双平台并行仿真
仿真运行时,Agent 会在模拟的社交平台(类似 Twitter 和 Reddit)上进行交互。双平台并行的设计是为了模拟信息在不同类型社交网络中的传播差异:
- 短消息平台(类 Twitter):信息传播快、碎片化、情绪驱动
- 长讨论平台(类 Reddit):深度讨论、观点碰撞、社区极化
用户可以通过"上帝视角"在仿真过程中动态注入变量(比如突然插入一条爆炸性新闻),观察整个数字世界的反应。
工程决策:务实的取舍
MiroFish 在技术选型上做了几个值得关注的工程决策。
复用 OASIS 而非自研仿真引擎
仿真引擎是整个系统最复杂的部分。MiroFish 没有从头造轮子,而是基于 CAMEL-AI 团队的开源项目 OASIS 做了轻封装。OASIS 是一个经过学术论文验证的多智能体仿真框架,支持大规模 Agent 交互。
这个决策很聪明:把精力集中在业务价值层(预测引擎的输入输出体验),底层仿真能力交给经过验证的开源方案。
Zep Cloud 而非自建图谱服务
记忆系统采用了 Zep Cloud 这个 SaaS 服务,而不是自建图数据库。好处是开发效率高、免费额度够 MVP 验证用。代价是对外部服务有依赖,后期规模化可能需要替换。
对于一个 10 天完成的项目来说,这个取舍完全合理。
前端轮询而非 WebSocket
仿真进度通知用的是前端轮询,而不是 WebSocket。看起来"技术含量低",但对于仿真这种长时间运行的任务来说,轮询反而更稳定——不需要维护长连接,实现简单,出错好排查。
日志用 JSONL 文件而非数据库
Agent 交互日志写入 JSONL 文件而非关系型数据库。这个选择优先了写入性能(多 Agent 并发写入时不需要锁),牺牲了复杂查询能力。在仿真场景下,日志主要用于事后分析,所以这个取舍说得通。
技术栈一览
| 组件 | 技术选择 | 说明 |
|---|---|---|
| 后端 | FastAPI (Python) | 异步框架,适合 I/O 密集场景 |
| 前端 | Vue 3 | 可视化交互界面 |
| 仿真引擎 | OASIS (CAMEL-AI) | 学术验证的多智能体仿真框架 |
| 记忆系统 | Zep Cloud + Graphiti | 时序 GraphRAG |
| LLM | 阿里百炼 qwen-plus | 兼容 OpenAI SDK 格式 |
| 部署 | Docker Compose | 一键部署前后端 |
运行环境要求 Node.js 18+ 和 Python 3.11-3.12,前端跑在 3000 端口,后端 API 在 5001 端口。
应用场景
MiroFish 目前覆盖了 6 类预测场景:
- 舆情事件推演:预测舆情走向和热度变化。这是它最成熟的场景,前作 BettaFish 就是做这个的
- 金融趋势预测:股市、加密货币的多 Agent 模拟分析
- 小说结局推演:基于已有内容预测故事走向。官方演示了用红楼梦前 80 回预测后 40 回结局
- 影视剧情推演:预测剧集发展和角色命运
- 企业决策预演:战略决策的效果模拟
- 产品发布模拟:预测市场反应和用户反馈
其中舆情推演的适配度最高,建议启用 Zep 图谱、双平台并行、进行 72 小时模拟。金融和小说场景适配度也不错,但需要根据具体需求调整参数。
Vibe Coding 现象
MiroFish 背后的另一个值得关注的现象是 Vibe Coding。
这个概念最早由 Andrej Karpathy(OpenAI 创始成员、前特斯拉 AI 总监)提出,核心思路是:开发者不再逐行写代码,而是用自然语言描述需求,让 AI 生成代码,开发者负责审查和方向把控。
郭航江连续两个项目(BettaFish 和 MiroFish)都是用这种方式在 10 天内完成的。这说明:
- AI 辅助编程的效率已经到了一个临界点:一个人+AI 工具链,可以在极短时间内构建出工程化程度不低的系统
- 核心竞争力在系统设计,不在写代码:MiroFish 的代码量不是重点,重点是三层架构的设计、技术选型的取舍、业务场景的定位
- 开源 + AI 工具链 = 超级个体:一个大四学生能做出登顶 GitHub 的项目,靠的不是编程能力碾压,而是善于组合已有的开源组件
不过也要看到局限性:Vibe Coding 目前适合快速验证和 MVP 阶段,但在需要深度优化、高并发、安全审计的场景下,仍然需要传统的工程能力。
冷静看待
MiroFish 确实是一个有意思的项目,但也需要冷静看几点:
预测准确性难以验证。多 Agent 仿真的结果高度依赖 Agent 人设的质量和 LLM 的推理能力。同样的种子材料,用不同的 LLM 或不同的 Agent 数量,可能得到截然不同的预测结果。项目本身也承认定位是"决策沙盒"而非"准确预测"。
成本不低。每次仿真需要大量 LLM 调用(Agent 数量 x 交互轮数 x 每轮推理),即使用相对便宜的 qwen-plus,40 轮以上的模拟成本也不容忽视。
核心仿真引擎不是自研的。OASIS 是 CAMEL-AI 团队的学术成果,MiroFish 的核心价值更多在产品层面(输入输出体验、场景适配)而非底层技术。
这些不是否定 MiroFish 的价值,而是说对于想使用或参考这个项目的开发者,需要有清晰的预期。
小结
MiroFish 做对了几件事:清晰的三层架构设计、务实的技术选型取舍、完整的端到端闭环体验。它证明了"超级个体 + AI 工具链"的开发范式在 2026 年已经成熟到可以产生真正有影响力的项目。
对于 AI Agent 领域的开发者来说,MiroFish 最值得学习的不是某个具体技术,而是它的工程决策方法论:聚焦业务价值层、善用开源组件、在快速验证期做出正确的技术取舍。
相关链接:
- MiroFish GitHub - 项目源码
- OASIS 仿真引擎 - MiroFish 底层依赖的多智能体仿真框架
- 在线 Demo - 体验舆情推演预测