数据与分析 multi-agent-simulationneo4jollamasentiment-analysisgraph-memorysocial-simulation

MiroFish Offline

在本地模拟文档引发的舆情、情绪与社会互动。

FollowAgents 评估 · FARS-2.0
待评估
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

MiroFish Offline 是 MiroFish 的全本地化英文分支,用于从上传文档构建多智能体社会模拟。它以 Flask API 提供图谱、模拟和报告功能,并以 Neo4j Community Edition 5.15 保存图谱与记忆,以 Ollama 提供本地模型和嵌入。系统会围绕文档生成数百个具有个性、立场、反应速度、影响力和记忆的角色,在模拟社交平台上持续互动。模拟结束后,ReportAgent 会结合焦点群体访谈和知识图谱检索生成结构化分析;用户还可以继续与模拟中的角色聊天。项目可通过 Docker Compose 部署,也提供 Python、Node.js、Neo4j 和 Ollama 的手动运行路径。

用户上传新闻稿、政策草案或财报等文档后,Graph Build 会抽取人物、公司、事件及其关系,并写入 Neo4j 的知识图谱和个体、群体记忆。Env Setup 为模拟环境生成数百个角色,配置 personality、opinion bias、reaction speed、influence level 与历史记忆。Simulation 让角色在模拟社交平台发帖、回复、争论和改变观点,同时跟踪 sentiment evolution、topic propagation 与 influence dynamics。ReportAgent 在模拟后访谈一组角色、检索知识图谱证据并生成结构化报告;Interaction 支持继续询问任一角色发帖原因。后端通过 app.extensions['neo4j_storage'] 注入 GraphStorage,Neo4jStorage 内包含 EmbeddingService、NERExtractor 和 SearchService,其中混合搜索采用 0.7 向量相似度与 0.3 BM25 关键词搜索。

  1. 公关团队在发布新闻稿前,上传草稿并观察模拟公众在社交平台上的讨论、争论和情绪变化。
  2. 市场研究或交易研究人员将金融新闻输入系统,观察模拟环境中的市场情绪与话题传播。
  3. 政策团队将拟议法规作为文档上传,测试不同角色对政策内容的可能反应。
  4. 研究人员需要把人物、组织和事件从材料中抽取为可检索的 Neo4j 知识图谱时,可将其作为模拟前的数据准备环节。
  5. 创作者希望基于一段文本,让带有持续记忆和人格的角色产生后续互动与叙事反应时,可以运行完整模拟。

这个 Agent 有哪些优点和局限?

优点
  • 用 Neo4j Community Edition 5.15 和 Ollama 替代 Zep Cloud 与云端模型 API,部署后可在本地运行且不需要云 API 密钥。
  • 从文档图谱构建、角色生成、社交互动模拟到 ReportAgent 报告和角色追问,提供了完整的端到端流程。
  • GraphStorage 抽象接口将应用服务层与图数据库分开,文档明确说明可通过实现一个类替换 Neo4j。
  • SearchService 的混合检索明确结合向量相似度与 BM25,权重为 0.7 与 0.3。
局限
  • 推荐的 qwen2.5:32b 配置需要 24 GB 显存;最低配置仍建议 16 GB 内存和 10 GB 显存,CPU-only 模式会明显更慢。
  • 运行环境依赖 Neo4j、Ollama 和嵌入模型,Docker 方案还需要 Docker 与 Docker Compose。
  • 默认 Neo4j 用户名和密码在示例配置中为 neo4j/mirofish,部署者需要自行评估和修改本地安全配置。
  • 项目虽称可通过修改 LLM_BASE_URL 和 LLM_API_KEY 更换提供商,但 README 未给出各第三方提供商的具体配置示例或兼容性测试结果。

如何安装或部署这个 Agent?

推荐 Docker 部署:
git clone https://github.com/nikmcfly/MiroFish-Offline.git
cd MiroFish-Offline
cp .env.example .env
docker compose up -d
docker exec mirofish-ollama ollama pull qwen2.5:32b
docker exec mirofish-ollama ollama pull nomic-embed-text
然后打开 http://localhost:3000。默认配置指向本地 Ollama 与 Neo4j:LLM_API_KEY=ollama、LLM_BASE_URL=http://localhost:11434/v1、LLM_MODEL_NAME=qwen2.5:32b、NEO4J_URI=bolt://localhost:7687、NEO4J_USER=neo4j、NEO4J_PASSWORD=mirofish、EMBEDDING_MODEL=nomic-embed-text。

如何使用这个 Agent?

启动服务后访问 http://localhost:3000,并上传待分析文档。依次执行或使用界面中的 Graph Build、Env Setup 和 Simulation:先建立实体关系图谱,再创建角色环境并运行社交互动模拟。模拟完成后查看 ReportAgent 生成的结构化分析,并通过 Interaction 与某个模拟角色继续对话。显存较少时,可在 .env 中将 LLM_MODEL_NAME 改为 qwen2.5:14b 或 qwen2.5:7b;文档说明嵌入模型仍使用 nomic-embed-text。

这个 Agent 与同类方案有什么区别?

相较于原始 MiroFish,本分支将中文界面改为英文,并将 Zep Cloud 图谱记忆、DashScope/OpenAI API 和 Zep 嵌入替换为本地 Neo4j Community Edition 5.15、Ollama 以及通过 Ollama 运行的 nomic-embed-text;原项目面向中国市场,而此分支强调零云端依赖。

常见问题

是否必须使用云端 API 或云端密钥?
不是。默认配置使用本地 Ollama,README 将该部署描述为零云端依赖;LLM_API_KEY 的示例值为 ollama。
最低硬件条件是什么?
文档列出的最低配置为 16 GB 内存、10 GB 显存、20 GB 磁盘和 4 核 CPU,适用于 14b 模型;推荐配置为 32 GB 内存、24 GB 显存、50 GB 磁盘和 8 核以上 CPU。
可以不用 Docker 吗?
可以。手动路径要求启动 Neo4j 5.15 和 Ollama,拉取 qwen2.5 与 nomic-embed-text,在 backend 安装 requirements.txt 后运行 python run.py,并在 frontend 执行 npm install 与 npm run dev。
能否更换本地 Ollama 模型或模型提供商?
可以改用 qwen2.5:14b 或 qwen2.5:7b 以降低显存需求。文档还说明可修改 LLM_BASE_URL 和 LLM_API_KEY,换成 Claude、GPT 或其他 OpenAI-compatible API。

相关 Agents