MiroFish Offline

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

Star 数
★ 2.5k
最近更新
6 个月前
License
AGPL-3.0
主语言
Python

30 秒速览

可在哪里用
通用 · 跨平台OpenAI API · Claude API
开始前需要
DockerDocker ComposeNeo4j Community Edition 5.15OllamaShell / 命令行网络访问本地文件系统
典型场景
公关团队在发布新闻稿前,上传草稿并观察模拟公众在社交平台上的讨论、争论和情绪变化。
主要局限
推荐的 qwen2.5:32b 配置需要 24 GB 显存;最低配置仍建议 16 GB 内存和 10 GB 显存,CPU-only 模式会明显更慢。

这个 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?

推荐 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 有哪些优点和局限?

优点
  • 用 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 与同类方案有什么区别?

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

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 Star 最近更新 主语言 完整支持的平台
MiroFish Offline 当前 30 · 缺口较多 ★ 2.5k 6 个月前 Python OpenAI API · Claude API
Concordia: 生成式社会模拟库 39 · 缺口较多 ★ 1.7k 9 天前 Python
TradingAgents 多智能体交易研究框架 76 · 表现良好 ★ 108k 6 天前 Python OpenAI API · Claude API
Yuxi(语析)——可私有部署的多租户知识智能体平台 41 · 缺口较多 ★ 7.2k 今天 Python OpenAI API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
30/ 100 五分制 1.5 / 5
信任安全 2/29
可靠稳定 3/14
适用触发 8/18
规范维护 8/18
有效结果 7/13
证据核验 2/8
查看各维度的扣分理由
信任安全2 / 29 · 0.3/5

证据显示:README明确说明是MiroFish的fork,并列出修改点,但未提供上游提交哈希或详细来源验证;未发现权限管理、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响、回滚机制等文档或代码证据。扣分原因:这些方面在提供的文件中完全缺失。

可靠稳定3 / 14 · 1.1/5

证据显示:README描述了工作流程和架构,但未提供错误处理或失败消息的文档;依赖项(Neo4j、Ollama、Python包)在README中列出,但未提供版本锁定或完整性校验。扣分原因:自洽性仅部分体现,依赖可用性仅列出名称,失败消息无证据。

适用触发8 / 18 · 2.2/5

证据显示:README列出了多种使用场景(PR危机测试、交易信号、政策分析)和硬件要求,但未明确能力边界或触发条件;环境适配提供了Docker和手动安装选项。扣分原因:能力边界和触发精度未说明。

规范维护8 / 18 · 2.2/5

证据显示:README提供了安装说明、架构图、配置示例和许可证(AGPL-3.0),但缺少FAQ、已知限制、版本历史或变更日志;命名稳定性未明确。扣分原因:信息架构和安装说明较充分,但其他方面不足。

有效结果7 / 13 · 2.7/5

证据显示:README描述了输出(报告、交互)和边际价值(本地化、多场景),但未提供性能基准或成本效益分析。扣分原因:输出可用性仅描述,边际价值和成本效益有部分证据。

证据核验2 / 8 · 1.3/5

证据显示:README声称是MiroFish的fork并列出修改,但未提供上游提交哈希或可验证的测试结果;未区分事实与推断。扣分原因:声明可追溯性弱,交叉验证不足,事实与推断未分离。

风险与缓解建议
  • 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
  • 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
  • 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
  • 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 未提供任何安全审计或权限管理文档,部署前需自行审查代码。
  • 依赖项未锁定版本,存在供应链风险。
  • 未提供错误处理或失败恢复机制,生产使用需谨慎。
证据充分度: 评估于 2026年8月9日 审查版本 313fe642853f
查看完整评分方法 →

常见问题

是否必须使用云端 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。
在 GitHub 查看 ↗ 安装 ↓

相关 Agents