MiroFish Offline
在本地模拟文档引发的舆情、情绪与社会互动。
- Star 数
- ★ 2.5k
- 最近更新
- 6 个月前
- License
- AGPL-3.0
- 主语言
- Python
- FA 评分
- 30/100 · 缺口较多
30 秒速览
- 可在哪里用
- 通用 · 跨平台OpenAI API · Claude API
- 开始前需要
- 典型场景
- 公关团队在发布新闻稿前,上传草稿并观察模拟公众在社交平台上的讨论、争论和情绪变化。
- 主要局限
- 推荐的 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 关键词搜索。
- 公关团队在发布新闻稿前,上传草稿并观察模拟公众在社交平台上的讨论、争论和情绪变化。
- 市场研究或交易研究人员将金融新闻输入系统,观察模拟环境中的市场情绪与话题传播。
- 政策团队将拟议法规作为文档上传,测试不同角色对政策内容的可能反应。
- 研究人员需要把人物、组织和事件从材料中抽取为可检索的 Neo4j 知识图谱时,可将其作为模拟前的数据准备环节。
- 创作者希望基于一段文本,让带有持续记忆和人格的角色产生后续互动与叙事反应时,可以运行完整模拟。
如何安装或部署这个 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?
查看各维度的扣分理由
证据显示:README明确说明是MiroFish的fork,并列出修改点,但未提供上游提交哈希或详细来源验证;未发现权限管理、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响、回滚机制等文档或代码证据。扣分原因:这些方面在提供的文件中完全缺失。
证据显示:README描述了工作流程和架构,但未提供错误处理或失败消息的文档;依赖项(Neo4j、Ollama、Python包)在README中列出,但未提供版本锁定或完整性校验。扣分原因:自洽性仅部分体现,依赖可用性仅列出名称,失败消息无证据。
证据显示:README列出了多种使用场景(PR危机测试、交易信号、政策分析)和硬件要求,但未明确能力边界或触发条件;环境适配提供了Docker和手动安装选项。扣分原因:能力边界和触发精度未说明。
证据显示:README提供了安装说明、架构图、配置示例和许可证(AGPL-3.0),但缺少FAQ、已知限制、版本历史或变更日志;命名稳定性未明确。扣分原因:信息架构和安装说明较充分,但其他方面不足。
证据显示:README描述了输出(报告、交互)和边际价值(本地化、多场景),但未提供性能基准或成本效益分析。扣分原因:输出可用性仅描述,边际价值和成本效益有部分证据。
证据显示:README声称是MiroFish的fork并列出修改,但未提供上游提交哈希或可验证的测试结果;未区分事实与推断。扣分原因:声明可追溯性弱,交叉验证不足,事实与推断未分离。
- 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 未提供任何安全审计或权限管理文档,部署前需自行审查代码。
- 依赖项未锁定版本,存在供应链风险。
- 未提供错误处理或失败恢复机制,生产使用需谨慎。