MiroFish Offline

Simulate document-driven public reaction and social dynamics entirely on local infrastructure.

Stars
★ 2.7k
Last updated
7mo ago
License
AGPL-3.0
Primary language
Python

At a glance

How it runs
Self-hosted serviceWeb app
Works with
Universal · cross-platformOpenAI API · Claude API
Cost
Free, no paid service needed
Setup effort
High · needs real infrastructure
You'll need
DockerDocker ComposeNeo4j Community Edition 5.15OllamaShell / CLINetwork accessLocal filesystem
Typical use
A PR team uploads a draft press release before publication to examine simulated public discussion, arguments, and sentiment movement.
Not a fit if
  • Users without a 24 GB VRAM GPU
  • Anyone wanting a quick, lightweight trial
  • Teams unwilling to run Neo4j and Ollama themselves

What does this agent do, and when should you use it?

MiroFish Offline is an English, fully local fork of MiroFish for document-driven multi-agent simulations. Its Flask API exposes graph, simulation, and reporting functions, while Neo4j Community Edition 5.15 stores graph and memory data and Ollama supplies local models and embeddings. The system creates hundreds of personas with individual traits, opinion bias, reaction speed, influence level, and memories, then has them interact on simulated social platforms. After a run, ReportAgent combines focus-group interviews with knowledge-graph evidence to produce a structured analysis, and users can continue chatting with simulated agents. It supports Docker Compose deployment as well as a manual Python, Node.js, Neo4j, and Ollama setup.

A user uploads a document such as a press release, policy draft, or financial report. Graph Build extracts people, companies, events, and relationships, then builds a Neo4j knowledge graph with individual and group memory. Env Setup generates hundreds of personas with personality, opinion bias, reaction speed, influence level, and past-event memory. Simulation has those personas post, reply, argue, and shift opinions on simulated social platforms while tracking sentiment evolution, topic propagation, and influence dynamics. ReportAgent then interviews a focus group, searches the graph for evidence, and generates a structured analysis; Interaction lets the user ask an agent why it posted. The backend injects GraphStorage through app.extensions['neo4j_storage']; Neo4jStorage includes EmbeddingService, NERExtractor, and SearchService, with hybrid search weighted 0.7 vector similarity and 0.3 BM25 keyword search.

  1. A PR team uploads a draft press release before publication to examine simulated public discussion, arguments, and sentiment movement.
  2. A market or trading researcher feeds in financial news to observe simulated market sentiment and topic propagation.
  3. A policy team uploads a proposed regulation to test how distinct simulated personas may react to it.
  4. A researcher needs document entities and relationships extracted into a searchable Neo4j knowledge graph before running a social simulation.
  5. A creative practitioner wants persistent, personality-driven characters to respond and interact around a supplied text.

How do you install or deploy this agent?

Recommended Docker setup:

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

Then open http://localhost:3000. The documented local defaults are 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, and EMBEDDING_MODEL=nomic-embed-text.

How do you use this agent?

Once the services are running, open http://localhost:3000 and upload the document to analyze. Use the Graph Build, Env Setup, and Simulation workflow: create the entity-and-relationship graph, generate the persona environment, and run the simulated social interactions. Review the structured analysis produced by ReportAgent, then use Interaction to continue a conversation with a simulated persona. On lighter hardware, set LLM_MODEL_NAME in .env to qwen2.5:14b or qwen2.5:7b; the documented embedding model remains nomic-embed-text.

What are this agent's strengths and limitations?

Pros
  • It replaces Zep Cloud and cloud model APIs with Neo4j Community Edition 5.15 and Ollama, enabling a documented local deployment without cloud API keys.
  • It covers the complete flow from document graph construction and persona generation through social simulation, reporting, and follow-up agent conversations.
  • The documented GraphStorage abstraction separates the application service layer from the graph database, so another graph database can be substituted by implementing one class.
  • Its SearchService uses an explicitly defined hybrid retrieval formula: 0.7 vector similarity plus 0.3 BM25 keyword search.
Limitations
  • The recommended qwen2.5:32b configuration calls for 24 GB of GPU VRAM; even the minimum documented setup calls for 16 GB RAM and 10 GB VRAM, and CPU-only inference is significantly slower.
  • Operation depends on Neo4j, Ollama, and an embedding model; the recommended path additionally requires Docker and Docker Compose.
  • The example configuration includes the Neo4j credentials neo4j/mirofish, so deployers need to assess and change local security settings themselves.
  • Although the project says LLM_BASE_URL and LLM_API_KEY can be changed for other providers, it does not provide provider-specific configuration examples or compatibility test results.

How does this agent compare with similar options?

Compared with the original MiroFish, this fork provides an English UI and replaces Zep Cloud graph memory, DashScope/OpenAI APIs, and Zep embeddings with local Neo4j Community Edition 5.15, Ollama, and Ollama-hosted nomic-embed-text. The original is described as Chinese-market oriented, while this fork is positioned around zero cloud dependencies.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
MiroFish Offline This agent 40 · Major gaps Self-hosted serviceFree ★ 2.7k 7mo ago Python OpenAI API · Claude API
Concordia: A Library for Generative Social Simulation 62 · Some gaps Library / SDKFree + model costs ★ 1.9k 4d ago Python —
Yuxi – Self-Hosted Multi-Tenant Knowledge Agent Platform 85 · Good Self-hosted serviceFree + model costs ★ 7.6k 2d ago Python OpenAI API
TradingAgents Financial Research Framework 74 · Some gaps CLIFree + model costs ★ 121k 4d ago Python OpenAI API · Claude API

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
40/ 100 5-point scale 2.0 / 5
Trust 8/29
Reliability 5/14
Adaptability 9/18
Convention 8/18
Effectiveness 7/13
Verifiability 3/8
Why each dimension lost points
Trust8 / 29 · 1.4/5

The README describes local deployment and provides Neo4j and Ollama configuration; the Docker workflow limits permissions to contents:read and packages:write, supporting modest least-privilege and data-flow scores. However, the configuration explicitly allows switching to external providers such as Claude or GPT, and the supplied material shows no sensitive-data controls, deletion or rollback mechanism, or pre-upload confirmation. The README attributes the original project and OASIS, but gives limited detail on modification provenance.

Reliability5 / 14 · 1.8/5

The README lists Neo4j, Ollama, model, and hardware prerequisites. The frontend API sets a timeout, logs network and response errors, and includes a retry helper. However, the supplied materials show different installation paths using pip and uv, and deployment claims lack runtime evidence; error handling is mostly logging and retries, so scores are partial.

Adaptability9 / 18 · 2.5/5

The documentation names PR crisis testing, trading signals, policy analysis, and creative experiments, and describes model sizes, CPU mode, and the local stack. This supports the stated scenarios and environment fit. Capability limits, suitability conditions, and trigger conditions are not clearly defined, and the trading-signal use case does not explain limits on predictive validity.

Convention8 / 18 · 2.2/5

The README provides workflow, architecture, hardware requirements, and two installation paths, with generally stable project naming. AGPL-3.0 is consistent across metadata, README, and the license file. Examples are mostly setup commands; FAQ, limitations, changelog, and maintenance responsibility are sparse, and installation notes do not fully cover alternative models or dependency versions.

Effectiveness7 / 13 · 2.7/5

The product describes a document-to-graph, simulation, report, and agent-interaction workflow, with outputs that appear usable. Local model and graph integration provide stated value over the original cloud-service setup. However, the hardware and model-download requirements are substantial, and the use-case claims have no outcome evidence, so cost-benefit receives a low score.

Verifiability3 / 8 · 1.9/5

The README supplies an architecture diagram, configuration keys, workflow, and hardware requirements; LICENSE and package.json support the license claim. Many capability, translation, and local-first claims remain README assertions. The provided API and router excerpts cannot independently corroborate the whole product, and the materials do not distinguish simulated output from evidence of real-world predictive accuracy.

Risks and how to mitigate them
  • Not found in source: sensitive-data handlingUse dedicated, low-privilege, revocable API keys — never production credentials — and keep secrets out of logs.
  • Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
  • “Fully local” depends on the actual LLM configuration; the README also supports switching to external APIs. Verify deployment settings and data flows before uploading sensitive documents.
  • Trading signals and opinion forecasts are listed use cases, not evidence that outputs are validated or suitable for real-world decisions. The README also indicates potentially substantial hardware requirements.
Evidence confidence: Low Reviewed Nov 08, 2026 Reviewed revision 313fe642853f
See the full review method →
Maintain this project? Add the FARS badge to your README

The badge shows the current review score and verdict and links back to this page. It refreshes about once an hour after a re-review.

FARS

[![FARS review](https://followagents.com/badge/mirofish-offline.svg)](https://followagents.com/en/agents/mirofish-offline)
<a href="https://followagents.com/en/agents/mirofish-offline"><img src="https://followagents.com/badge/mirofish-offline.svg" alt="FARS review"></a>

FAQ

Does it require cloud APIs or cloud API keys?
No. The default setup uses local Ollama and is described as having zero cloud dependencies; the example LLM_API_KEY value is ollama.
What hardware does it need?
The documented minimum is 16 GB RAM, 10 GB GPU VRAM, 20 GB disk, and a 4-core CPU for a 14b model. The recommended configuration is 32 GB RAM, 24 GB VRAM, 50 GB disk, and 8+ CPU cores.
Can I run it without Docker?
Yes. The manual path starts Neo4j 5.15 and Ollama, pulls qwen2.5 and nomic-embed-text, installs backend requirements and runs python run.py, then runs npm install and npm run dev in frontend.
Can I change the model or provider?
You can use qwen2.5:14b or qwen2.5:7b for lighter hardware. The project also states that changing LLM_BASE_URL and LLM_API_KEY can switch to Claude, GPT, or another OpenAI-compatible API.
Was this page helpful?
View on GitHub ↗ Install ↓