一天一个开源项目(第78篇):MiroFish - 用群体智能引擎预测未来

张开发
2026/4/21 0:58:51 15 分钟阅读

分享文章

一天一个开源项目(第78篇):MiroFish - 用群体智能引擎预测未来
引言“不预测个体而是仿真群体。”这是一天一个开源项目系列的第78篇。今天的项目是MiroFishGitHub。传统预测工具的逻辑是收集数据 → 跑模型 → 输出数字。但这有一个根本局限模型是静态的而现实世界是动态博弈的结果。舆论风向、市场情绪、政策响应这些都是无数个体相互作用后涌现出来的集体现象——你很难用线性回归去拟合一场舆论风暴。MiroFish换了一种思路不拟合而是重演。通过多智能体仿真让数千个虚拟的人在一个模拟平台里互动用群体行为的演化来预测真实世界的走向。这不是预测数字而是预测故事。56k Stars8.6k Forks——在多智能体仿真赛道上的现象级项目。作者是北京邮电大学学生白富666ghj同时也是 BettaFish40.5k Stars的作者两个项目构成一套完整的数据采集 → 仿真预测流水线。你将学到什么MiroFish 的核心哲学为什么群体仿真比统计预测更接近真相五阶段仿真流水线从知识图谱构建到深度交互报告GraphRAG 在仿真中的角色给智能体注入领域知识Zep Cloud 跨会话记忆让智能体记得自己的历史上帝模式变量注入运行时 what-if 分析前置知识了解多智能体系统MAS的基本概念Python 基础可选用于理解配置逻辑对舆情分析或趋势预测有一定兴趣项目背景它是什么MiroFish是一个群体智能预测引擎通过构建包含数千个 AI 智能体的虚拟社会仿真真实群体对某个话题的演化过程从而生成趋势预测报告。项目名称来自Miro——灵感来源于人类集体智慧的涌现现象就像一群鱼Fish可以形成远超个体能力的群体行为。它解决的核心问题是传统方法 历史数据 → 统计模型 → 下个月销量是 X 问题无法解释为什么无法应对突发事件 MiroFish 方法 种子知识 多智能体仿真 → 群体行为演化 → 在这些条件下群体会这样反应 优势可解释、可干预、可做 what-if 分析关于作者GitHub: 666ghj背景: 北京邮电大学学生盛大集团支持另一项目: BettaFish40.5k ⭐——从 30 平台采集情感数据是 MiroFish 的数据供给端定位: 两个项目构成完整闭环BettaFish 采集 → MiroFish 仿真预测项目数据⭐GitHub Stars: 56,400Forks: 8,600最新版本: v0.1.2协议: AGPL-3.0CopyleftSaaS 部署需开源语言构成: Python 57.6% Vue.js 41.2%核心依赖: CAMEL-AI OASIS、camel-ai 0.2.78、Zep Cloud 3.13.0、GraphRAG、PyMuPDF主要功能核心五阶段仿真流水线MiroFish 的仿真过程分为五个严格顺序的阶段阶段 1图谱构建Graph Building 种子文档PDF/URL→ PyMuPDF 提取 → GraphRAG 构建知识图谱 输出领域知识图谱实体 关系 阶段 2环境准备Environment Setup CAMEL-AI OASIS 初始化虚拟平台 为每个智能体分配 Zep Cloud 长期记忆 注入知识图谱上下文 阶段 3并行仿真Parallel Simulation 双平台同时运行提高置信度 数千个智能体互动 N 轮 智能体行为由 LLM 驱动 个性档案约束 阶段 4报告生成Report Generation 聚合仿真轨迹 LLM 总结群体行为模式 生成结构化趋势报告 阶段 5深度交互Deep Interaction 用户可向报告提问 支持上帝模式变量注入运行时 what-if RAG 检索仿真记录回答问题GraphRAG给仿真注入领域知识MiroFish 使用 GraphRAG 而非普通 RAG原因很直观# 普通 RAG文档 → 向量 → 检索相似段落# 问题只能回答有哪些事实无法推理关系# GraphRAG文档 → 实体抽取 → 关系图谱 → 图遍历# 优势可以推理A 影响 BB 又会如何影响 C在仿真中智能体需要理解复杂的因果关系如政策 X 会影响群体 Y 的行为GraphRAG 的图结构比向量检索更擅长这类推理。Zep Cloud让智能体拥有记忆每个智能体都分配了独立的 Zep Cloud 记忆空间# 每个智能体拥有持久化记忆agent_memoryZepMemory(session_idfagent_{agent_id},zep_clientzep_client)# 仿真轮次之间智能体可以记住之前的交互# 这使得智能体行为更连贯、更符合真实人类认知模式这解决了多智能体仿真中的一个经典问题如果每轮仿真智能体都失忆行为就会缺乏连贯性预测结果可信度下降。上帝模式变量注入这是 MiroFish 最有趣的功能之一——在仿真运行时注入外部变量# 例分析如果竞争对手突然降价 20%会怎样god_mode_injection{event:competitor_price_cut,magnitude:-0.20,timing:round_15,affected_agents:all_consumer_agents}# 注入后仿真会实时响应这个外部冲击# 输出群体情绪变化 行为演化轨迹这让 MiroFish 不仅能预测会发生什么还能回答如果我这样做会发生什么。双平台并行仿真MiroFish 同时在两个独立的虚拟平台上运行相同的仿真平台 A ─── 仿真结果 A ──┐ ├── 置信度评估 综合报告 平台 B ─── 仿真结果 B ──┘两个平台的结果高度一致 → 高置信度结论两个平台结果发散 → 标记为不确定区间提示用户审慎解读BettaFish MiroFish 完整流水线[BettaFish] [MiroFish] 微博/推特/Reddit/... → 种子数据 → 知识图谱 情感数据采集 → 智能体初始化 30 平台 → 仿真 → 报告 → 预测两个项目合用构成从现实数据收集到未来趋势预测的完整链路。快速开始环境要求Python 3.10、Node.js 16、Docker推荐# 克隆项目gitclone https://github.com/666ghj/MiroFish.gitcdMiroFish# 配置环境变量cp.env.example .env# 编辑 .env填写以下必要配置# - OPENAI_API_KEY或兼容 API# - ZEP_API_KEYZep Cloud 账号# - GRAPHRAG_API_KEY# 方式一Docker 一键启动推荐docker-composeup-d# 方式二手动启动pipinstall-rrequirements.txtcdfrontendnpminstallnpmrun buildcd..python app.py访问http://localhost:5000进入 Web 界面。第一次仿真1. 上传种子文档PDF 或输入 URL 2. 设置仿真参数智能体数量、仿真轮次、话题 3. 点击开始仿真 4. 等待约 10-30 分钟取决于智能体数量和 API 速度 5. 查看生成的趋势报告支持自然语言追问项目详细剖析整体架构┌─────────────────────────────────────────────────┐ │ 前端层 (Vue.js) │ │ 仿真配置 / 进度监控 / 报告展示 / 深度交互 │ └─────────────────────┬───────────────────────────┘ │ REST API ┌─────────────────────▼───────────────────────────┐ │ 后端层 (Flask Python) │ │ 五阶段流水线编排 / 上帝模式控制器 │ └──────┬──────────────┬──────────────┬────────────┘ │ │ │ ┌──────▼──────┐ ┌─────▼──────┐ ┌───▼────────────┐ │ 知识层 │ │ 仿真层 │ │ 记忆层 │ │ GraphRAG │ │ CAMEL-AI │ │ Zep Cloud │ │ 知识图谱 │ │ OASIS 框架 │ │ 智能体记忆 │ │ PyMuPDF │ │ 双平台并行 │ │ 跨轮次持久化 │ └─────────────┘ └────────────┘ └────────────────┘CAMEL-AI OASIS仿真核心CAMEL-AI OASIS 是 MiroFish 的仿真引擎专为社会仿真设计fromoasisimportEnvironment,Agent,Platform# 初始化虚拟平台platformPlatform(namesimulated_weibo,max_agents5000,interaction_rulesInteractionConfig(max_posts_per_round10,follow_probability0.3))# 创建具有不同个性的智能体agents[Agent(idi,personaPersonaProfile(agerandom.randint(18,65),occupationrandom.choice(occupations),political_leanrandom.gauss(0,1),activity_levelrandom.uniform(0.1,1.0)),memoryZepMemory(session_idfagent_{i}),knowledge_contextgraphrag_context)foriinrange(5000)]# 启动仿真envEnvironment(platformplatform,agentsagents)resultsenv.run(rounds50,topic新能源汽车补贴政策)GraphRAG 知识图谱构建fromgraphragimportGraphRAGPipeline# 从种子文档构建知识图谱pipelineGraphRAGPipeline(input_dir./seed_documents,output_dir./knowledge_graph)# 提取实体和关系pipeline.run()# 输出示例# 实体[特斯拉, 比亚迪, 补贴政策, 消费者群体, ...]# 关系[特斯拉 → 竞争 → 比亚迪]# [补贴政策 → 刺激 → 消费者购买意愿]# [消费者购买意愿 → 影响 → 市场份额]# 将知识图谱注入智能体上下文contextpipeline.query(新能源汽车市场的关键影响因素)报告生成从轨迹到洞察defgenerate_report(simulation_results):从仿真轨迹生成趋势报告# 1. 聚合统计sentiment_evolutionaggregate_sentiment(simulation_results)opinion_clusterscluster_opinions(simulation_results)key_eventsdetect_tipping_points(simulation_results)# 2. LLM 总结report_promptf 基于以下仿真数据生成趋势分析报告 - 情感演化曲线{sentiment_evolution}- 观点聚类{opinion_clusters}- 关键转折点{key_events}请分析群体最终态度、关键驱动因素、可能的演化路径 reportllm.complete(report_prompt)# 3. 双平台一致性检验confidencecalculate_confidence(results_platform_asimulation_results[platform_a],results_platform_bsimulation_results[platform_b])returnReport(contentreport,confidenceconfidence)前端技术栈Vue.js 前端提供完整的可视化界面仿真进度监控实时显示各阶段进度和智能体活跃度知识图谱可视化交互式展示 GraphRAG 构建的实体关系图情感热力图随仿真轮次变化的群体情感分布报告阅读器支持高亮、标注、追问的报告交互界面为什么选择 AGPL-3.0AGPL-3.0 是比 GPL 更严格的 Copyleft 协议MIT/Apache修改后可以不开源可以闭源商业化 GPL本地部署衍生品需开源 AGPL网络服务SaaS衍生品也必须开源 → MiroFish 选择 AGPL意味着如果你用它搭建云服务 必须将改动后的代码开源。个人研究和本地使用不受限制。项目地址与资源官方资源GitHub: https://github.com/666ghj/MiroFish配套项目: BettaFish情感数据采集40.5k ⭐OASIS 框架: https://github.com/camel-ai/oasisZep Cloud: https://www.getzep.comGraphRAG: https://github.com/microsoft/graphrag关联技术CAMEL-AI: https://github.com/camel-ai/camel多智能体框架基础PyMuPDF: PDF 文档解析库Docker: 推荐部署方式总结与展望核心要点群体仿真替代统计拟合MiroFish 不试图拟合历史数据而是重演群体互动过程输出的是行为演化故事而非数字预测GraphRAG 知识增强图结构知识表示让智能体具备领域因果推理能力而非简单的事实检索Zep Cloud 跨轮次记忆解决仿真连贯性问题使智能体行为符合真实人类认知模式上帝模式 what-if 分析运行时变量注入将预测工具变成决策支持工具双平台置信度机制用一致性评估代替单一预测更诚实地呈现不确定性BettaFish MiroFish 闭环从现实数据采集到未来趋势预测的完整链路适合谁使用研究人员研究舆情演化、社会仿真、计算社会科学的学者产品经理 / 市场分析师需要预判市场反应、做 what-if 场景分析的决策者AI 工程师研究多智能体仿真架构、GraphRAG 应用、智能体记忆系统的开发者独立研究者对群体智能涌现现象感兴趣、想用 AI 理解复杂社会系统的探索者值得思考的问题MiroFish 代表了 AI 预测的一种新范式从模型拟合到世界仿真。当我们用多智能体重演现实世界时我们实际上是在问一个更深的问题——现实本质上是一场无数智能体相互博弈的涌现结果而真正理解这个结果也许需要同样复杂度的仿真。鱼群游动时没有中心指挥却能形成壮观的整体图案。人类社会的舆论走向会不会也是如此访问我的个人网站探索更多实用知识和有趣产品

更多文章