MiroFish-Offline路线图与进阶调优:从v0.3稳定性修复到多模型路由,本地LLM选型与性能优化完整指南
【免费下载链接】MiroFish-OfflineOffline multi-agent simulation & prediction engine. English fork of MiroFish with Neo4j + Ollama local stack.项目地址: https://gitcode.com/gh_mirrors/mi/MiroFish-Offline
MiroFish-Offline 是一款离线多智能体模拟与舆情预测引擎:基于本地 Neo4j 图数据库 + Ollama 本地 LLM 推理,零云端依赖,在你的硬件上模拟数百个 AI Agent 发帖、争论与观点演化。本文带你完整走读项目路线图(v0.3 → v1.0),并给出本地 LLM 选型与性能调优的实用清单。
一、当前状态:v0.2.0 已完成全本地化 🏁
MiroFish-Offline 是从 MiroFish 分叉的全本地化版本:
| 原版 MiroFish | MiroFish-Offline |
|---|---|
| Zep Cloud(图记忆) | Neo4j Community Edition |
| DashScope / OpenAI API | Ollama 本地 LLM |
| 云端 Embedding | nomic-embed-text 本地向量 |
| 必须云 API Key | 零云端依赖 |
核心流水线已完整跑通:上传文本 → 构建知识图谱 → 实体抽取 → 多智能体模拟 → 报告生成。整个迁移过程(共 19 个任务、7 个阶段)记录在 docs/progress.md 中,是理解代码架构的绝佳入口。
二、v0.3 稳定性修复:最值得期待的 5 个改进 🔧
根据 ROADMAP.md 的规划,v0.3.0 聚焦稳定性与 Python 兼容性:
- Python 3.12+ 兼容—— 当前依赖
camel-oasis/camel-ai(见 backend/requirements.txt)要求 Python < 3.12,新版将解除此限制 - Docker GPU 自动检测—— 无 GPU 时自动回退到 CPU 版 Ollama,不再需要手动改配置
- Neo4j 连接自动重连—— 临时网络故障不再导致服务中断(当前已有指数退避重试机制兜底,见 backend/app/utils/retry.py)
/api/status健康端点—— 一处查看 Neo4j 连接状态、Ollama 模型可用性与磁盘占用- JSON 结构化日志—— 方便接入外部监控
💡 如果你是 Python 3.12/3.13 用户,v0.3 是最值得等的一个版本。
三、v0.4 → v0.7:搜索调优与多模型路由路线图 🗺️
3.1 v0.4 检索增强:让知识图谱"搜得准"
当前混合搜索固定为0.7 向量 + 0.3 BM25 关键词的加权融合(实现见 backend/app/storage/search_service.py)。v0.4 将带来:
- 混合搜索权重按图谱可配置
- 图谱感知重排序:与查询实体直接相连的结果会获得加分
- 支持多 Embedding 模型(如
mxbai-embed-large、多语种的bge-m3) - 边权重时间衰减,让模拟中的历史相关性更符合时间线
3.2 v0.5 多模型支持:小模型干轻活,大模型干重活 ⚡
这是路线图中对性能影响最大的一版——模型路由器(Model Router):
- NER 实体抽取 → 分配给快速小模型(如 7b)
- 报告生成、深度推理 → 分配给大模型(如 32b)
- 支持vLLM 和 llama.cpp作为 Ollama 之外的替代后端
- 内置模型基准测试工具:用同一段种子文本对比不同模型的 NER/RE 质量
- 量化感知配置:根据显存自动选择上下文窗口
3.3 v0.6 与 v0.7:模拟深度与图谱智能 📈
- v0.6:WebSocket 实时模拟面板、跨轮次 Agent 记忆持久化、自定义 Agent 人格模板、多语言模拟
- v0.7:Louvain/Leiden 社区发现自动识别实体聚类、时序图谱追踪关系演化、两次模拟运行的图谱对比(Graph Diff)
四、本地 LLM 选型:按硬件档位快速定档 🖥️
官方在 ROADMAP.md 中给出了清晰的硬件档位建议表:
| 档位 | 内存 | GPU 显存 | 推荐模型 | 预期表现 |
|---|---|---|---|---|
| 入门 | 8 GB | 纯 CPU | qwen2.5:3b | 慢,基础 NER 质量 |
| 轻量 | 16 GB | 6–8 GB | qwen2.5:7b | 小图谱可用 |
| 标准 | 32 GB | 12–16 GB | qwen2.5:14b | 覆盖多数场景 |
| 高性能 | 64 GB | 24+ GB | qwen2.5:32b | 全质量、速度快 |
选型三原则:
- 显存是第一约束:32b 模型吃 24GB 显存,14b 约 10GB
- 知识图谱构建(NER)质量对报告可信度影响最大,宁可选大模型
- 模拟轮次由
OASIS_DEFAULT_MAX_ROUNDS控制(默认 10 轮),轮次越多,小模型的质量短板越明显
五、性能调优实用清单:现在就能做的 5 件事 ⚙️
以下配置集中在 backend/app/config.py,通过项目根目录的.env文件修改:
1️⃣ 调大 Ollama 上下文窗口(最重要的一个参数)
Ollama 默认上下文只有 2048,长文档会截断。客户端已通过OLLAMA_NUM_CTX环境变量透传(默认 8192,见 backend/app/utils/llm_client.py):
OLLAMA_NUM_CTX=16384 # 长文本建图时建议 16K+2️⃣ Neo4j 堆内存
图谱节点多了之后查询变慢,优先调高堆内存,Docker 部署在 docker-compose.yml 中调整(当前默认初始 512m / 最大 2g):
NEO4J_server_memory_heap_max__size=4g3️⃣ 选择匹配显存的 LLM 模型
LLM_MODEL_NAME默认qwen2.5:32b,显存不足时按第四节的档位表改为qwen2.5:14b或qwen2.5:7b即可,其余配置无需改动。
4️⃣ 报告 Agent 参数调优
报告生成是 LLM 调用最密集的环节,三个参数直接控制质量与耗时(见 backend/app/config.py):
REPORT_AGENT_MAX_TOOL_CALLS:工具调用上限,默认 5,调大 = 报告更有据可查但更慢REPORT_AGENT_MAX_REFLECTION_ROUNDS:反思轮数,默认 2REPORT_AGENT_TEMPERATURE:默认 0.5,调低更严谨,调高更有观点
5️⃣ Embedding 模型与 LLM 解耦部署
嵌入模型(默认nomic-embed-text,768 维)占用显存很小,可与 LLM 同机部署;v0.4 之后可换成bge-m3获得更好的中文/多语检索效果。
六、如何跟踪路线图与参与贡献 🤝
- 完整路线图(含 Beyond v1.0 的联邦实例、语音交互 Agent、移动端监控 App 等愿景):ROADMAP.md
- 项目采用AGPL-3.0协议,官方尤其欢迎以下方向的贡献:Python 3.12+ 兼容、多 Embedding 模型支持、模拟质量改进、英文文档
- 本地部署参考 README.md 的 Docker 一键启动流程,5 分钟即可在
localhost:3000跑起完整的离线模拟环境
总结:MiroFish-Offline 的路线图画布很清晰——v0.3 补齐稳定性短板,v0.4 打磨检索质量,v0.5 的多模型路由是性能分水岭,v1.0 走向生产可用。而你现在就可以通过本文第五节的 5 个调优项,把本地 LLM 的推理质量榨到当前硬件的极限。🚀
【免费下载链接】MiroFish-OfflineOffline multi-agent simulation & prediction engine. English fork of MiroFish with Neo4j + Ollama local stack.项目地址: https://gitcode.com/gh_mirrors/mi/MiroFish-Offline
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考