MiroFish Offline
在本地模拟文档引发的舆情、情绪与社会互动。
- Star 数
- ★ 2.7k
- 最近更新
- 7 个月前
- License
- AGPL-3.0
- 主语言
- Python
- FA 评分
- 40/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API · Claude API
- 费用
- 免费,无需付费服务
- 上手难度
- 高 · 需要较重的基础设施
- 开始前需要
- 典型场景
- 公关团队在发布新闻稿前,上传草稿并观察模拟公众在社交平台上的讨论、争论和情绪变化。
- 不适合
- 没有 24GB 显存 GPU 的个人用户
- 希望几分钟内跑起来的轻量试用者
- 不愿自行维护 Neo4j 与 Ollama 服务的团队
这个 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 当前 | 40 · 缺口较多 | 自托管服务免费 | ★ 2.7k | 7 个月前 | Python | OpenAI API · Claude API |
| Concordia: 生成式社会模拟库 | 62 · 存在缺口 | 代码库 / SDK免费 + 模型费 | ★ 1.9k | 4 天前 | Python | — |
| Yuxi(语析)——可私有部署的多租户知识智能体平台 | 85 · 表现良好 | 自托管服务免费 + 模型费 | ★ 7.6k | 2 天前 | Python | OpenAI API |
| TradingAgents 多智能体交易研究框架 | 74 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 121k | 4 天前 | Python | OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
README描述本地部署并给出Neo4j、Ollama配置,Docker workflow将权限限制为contents:read和packages:write,支持有限最小权限与数据流说明;但配置也明确允许改用Claude、GPT等外部API,材料没有敏感数据处理、删除/回滚或上传前确认机制,故相应分数较低。README对原项目和OASIS作了来源说明,仍缺少更完整的修改来源细节。
README列出Neo4j、Ollama、模型及硬件前置条件,前端API设置超时、记录网络和响应错误,并有重试辅助函数;但仓库材料中不同安装路径使用pip与uv,配置和部署主张没有由运行证据支持,错误处理也主要是日志和重试,故仅给部分分。
文档列出公关危机、交易信号、政策分析和创作等场景,并说明模型档位、CPU模式及本地栈,足以表明目标场景和环境适配;但边界、适用性条件及触发条件没有明确界定,交易信号等用途也未说明预测能力限制。
README有工作流、架构、硬件要求和两种安装方式,命名与项目身份大体一致;AGPL-3.0在元数据、README和许可证文件中相互印证。示例主要是启动配置,FAQ、限制说明、变更记录和维护责任人信息不足,安装说明对替代模型和依赖版本也不够完整。
产品描述了从文档到图谱、模拟、报告和代理交互的流程,报告和模拟产物看起来便于使用;本地模型与图谱集成提供了相对原云服务版本的差异价值。但需要较高RAM/VRAM、磁盘和模型下载,且用途主张没有结果证据,因此成本收益只获低分。
README给出架构图、配置键、工作流和硬件要求,LICENSE与package.json支持许可主张;但多项能力、翻译规模和本地化主张主要由README自述,所提供的前端API与路由片段不能独立佐证整体能力,也未区分模拟输出与现实预测的证据强度。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- “完全本地”取决于实际LLM配置;README也支持切换到外部API。上传敏感文档前应核实部署配置和数据流。
- 交易信号与舆情预测是文档列出的用途,不代表输出已验证或可用于现实决策;README同时提示模型运行可能需要较高硬件资源。
常见问题
是否必须使用云端 API 或云端密钥?
最低硬件条件是什么?
可以不用 Docker 吗?
能否更换本地 Ollama 模型或模型提供商?
谢谢反馈,我们会据此改进页面。