MiroFish 群体智能引擎实战教程:从启动模拟到输出预测报告的完整流程
2026/8/30 13:45:10 网站建设 项目流程

MiroFish 群体智能引擎实战教程:从启动模拟到输出预测报告的完整流程

【免费下载链接】MiroFishA Simple and Universal Swarm Intelligence Engine, Predicting Anything. 简洁通用的群体智能引擎,预测万物项目地址: https://gitcode.com/GitHub_Trending/mi/MiroFish

MiroFish 是一款"让一群 AI 智能体互相交互、推演未来"的群体智能引擎,底层由 OASIS 多智能体模拟引擎驱动。你只需丢给它一份种子素材——新闻报告、政策草稿,甚至一部小说——它会自动搭建出一个平行数字世界,里面成百上千个拥有独立人格和长期记忆的智能体开始社交演化,最终吐出一份预测报告和一个可以深挖的数字世界。做严肃舆情推演的,和想玩"如果……会怎样"脑洞实验的,都适合上手。

MiroFish 能预测什么?先看两个最出圈的案例

红楼梦前八十回传世的结局缺失,读者争论了几百年。MiroFish 拿几十万字原文当种子,让角色在数字世界里"活"了一遍,推演故事可能的走向。

更严肃一点的场景是舆情演化预测:拿一份武汉大学舆情报告作为种子,MiroFish 在模拟世界里复刻了公告发布后的传播与发酵路径,常被拿来当群体智能引擎在真实事件推演上的样板。

两个案例本质是同一套能力:

  • 宏观层面:给决策者的零风险彩排场——政策、公关动作先在沙盒里试跑一遍,再上真实环境;
  • 微观层面:给个人玩家的创意沙盒——推演小说结局、做思想实验,怎么着都行。

财经预测、政治新闻推演也在路线上。用法都统一:上传种子素材,用自然语言描述预测需求,换回一份预测报告加一个可深度交互的数字世界。

如何启动一次模拟?从环境初始化到报告输出的完整链路

MiroFish 的核心是 OASIS(Open Agent Social Interaction Simulations)引擎,代码里被封装进 SimulationRunner 一个类。一次模拟的生命周期其实就四段:

环境初始化:一个配置文件定好"世界规则"

模拟启动前,系统已经在backend/app/uploads/simulations/{simulation_id}/simulation_config.json准备好了配置,里面有智能体名单和时间设置。时间参数最关键:total_simulation_hours决定总共模拟多少"世界时间"(默认 72 小时),minutes_per_round决定每轮推进多少时间(默认 30 分钟),总轮次由此算出。启动时传max_rounds还能把过长的模拟截断,适合先小规模试跑。

启动模拟:把配置交给 OASIS 引擎

真正的启动入口是SimulationRunner.start_simulation,你要交代清楚四件事:

  • 模拟 ID平台twitter/reddit/parallel,parallel 即双平台并行);
  • 可选的最大轮数,用于截断;
  • 是否把智能体活动实时回写 Zep 图谱enable_graph_memory_update,开启时必须同时给graph_id)。

引擎按平台挑选对应的运行脚本(twitter、reddit、双平台并行各一个,都在 backend/scripts/ 下),以子进程方式拉起 OASIS 模拟,同时挂上监控线程。调用长这样:SimulationRunner.start_simulation(simulation_id="sim_xxx", platform="parallel", max_rounds=100)

实时监控:每 2 秒轮询一次,看"世界"里在发生什么

运行中随时可以调get_run_state查询状态:当前跑到第几轮、已推进多少模拟小时、各平台动作数量、某个平台是否已跑完、整体进度百分比。前端的进度条和实时动作流,数据都来自这里。

结果输出:动作日志、统计与预测报告

模拟跑完,所有智能体的行为早已沉淀在动作日志里。get_all_actions可以拉取完整动作历史,支持按平台、智能体 ID、轮次过滤;get_timelineget_agent_stats分别给出每轮汇总和每个智能体的行为统计。再往上,报告生成逻辑 会驱动一个自带工具集的 ReportAgent 深入探查模拟后的环境,产出最终预测报告。

自定义智能体行为逻辑:三个核心定制点

想改智能体的行为,不用碰引擎内部,定制点集中在 simulation_runner.py 里,一共三处:

AgentAction:每个动作一条结构化记录

每个智能体的每个动作都会被归一成一条AgentAction记录,字段包括:轮次、时间戳、平台、智能体 ID 与名称、动作类型action_type、动作参数action_args、执行结果与成败标志。它既是实时监控的数据单元,也是模拟引擎对外界的"通用语言"。

_read_action_log:日志解析管道,最好的挂载点

监控线程每 2 秒增量读取模拟目录下的twitter/actions.jsonlreddit/actions.jsonl,由_read_action_log逐行解析并分流:

  • 事件型记录(round_end、simulation_end 等)→ 更新轮次进度、标记平台完成;
  • 动作型记录→ 转成AgentAction挂进运行状态,顺带刷新动作计数。

想插入自定义逻辑——比如拦截某类动作触发下游任务、做行为过滤——这个方法就是最自然的切入点。

action_type:智能体能做哪些动作,如何扩展

当前内置动作按平台划分:

平台内置动作类型
TwitterCREATE_POST(发帖)、LIKE_POST(点赞)、REPOST(转发)、FOLLOW(关注)
RedditCREATE_POSTLIKE_POST/DISLIKE_POSTCREATE_COMMENT/LIKE_COMMENT/DISLIKE_COMMENT(评论与点赞/踩)

类型映射维护在 双平台并行模拟脚本 里,日志落盘由 动作日志记录器 完成。要新增一种动作,两步就够:扩展类型枚举与映射,再在_read_action_log里补上对应处理分支。

顺带一提:模拟结束后环境并不会立刻关闭,你还能用interview_agent直接"采访"任意一个智能体,让它回忆自己在模拟里做了什么——这是 MiroFish 深度交互功能的入口。

如何把 MiroFish 跑起来?新手部署与启动清单

整套部署不复杂,按顺序走就行:

1. 克隆仓库

git clone https://gitcode.com/GitHub_Trending/mi/MiroFish

2. 准备运行环境

依赖要求
Node.js18 及以上(自带 npm)
Python3.11 ~ 3.12
uv最新版(Python 包管理器)

3. 配置密钥

.env.example复制为.env,填入两类密钥:LLM 接口三件套(LLM_API_KEYLLM_BASE_URLLLM_MODEL_NAME,兼容任何 OpenAI SDK 格式的 LLM API,官方推荐 Qwen-plus)和 Zep 图谱的ZEP_API_KEY。注意 LLM 消耗不小,建议先用 40 轮以内的短模拟试跑。

4. 安装依赖并启动

npm run setup:all # 一次性安装根目录 + 前端 + 后端依赖 npm run dev # 同时启动前后端

起来之后:前端在http://localhost:3000,后端 API 在http://localhost:5001。只想单独启动某一边,用npm run backendnpm run frontend。偏好容器化的话,配置好.env后直接docker compose up -d,端口映射同样是 3000 / 5001。

第一次跑通之后,手里就是一个完整闭环:上传种子 → 构建世界 → OASIS 引擎跑智能体模拟 → 读报告 → 采访智能体。剩下的事,就是换上自己的种子素材,开始推演你想问的那个"如果"。

【免费下载链接】MiroFishA Simple and Universal Swarm Intelligence Engine, Predicting Anything. 简洁通用的群体智能引擎,预测万物项目地址: https://gitcode.com/GitHub_Trending/mi/MiroFish

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询