Skip to main content
Glama

Eine Schwarmintelligenz-Engine, die die Zukunft probt.

Füttern Sie sie mit einem Dokument. Beschreiben Sie ein Szenario. Beobachten Sie, wie Hunderte von KI-Agenten mit unterschiedlichen Persönlichkeiten, Erinnerungen und sozialen Instinkten interagieren – und mit einer Vorhersage zurückkehren.

License npm Docker Website


Was es tut

DeepMiro extrahiert Entitäten und Beziehungen aus jedem Dokument – einem Richtlinienentwurf, einem Marktbericht, einem Kapitel eines Romans – und konstruiert eine parallele digitale Welt. Darin bilden Hunderte autonomer Agenten Meinungen, streiten auf simulierten sozialen Plattformen, wechseln ihre Loyalitäten und erzeugen emergentes Verhalten, das kein einzelner Prompt vorhersagen könnte.

Sie erhalten einen strukturierten Vorhersagebericht und eine lebendige Welt zurück, die Sie Agent für Agent befragen können.

Eingabe: Ein PDF und eine Frage in einfacher Sprache. Ausgabe: Ein detaillierter Vorhersagebericht + eine interaktive Simulation, die Sie erkunden können.

Wie es funktioniert

Document ──► Entity Extraction ──► Agent Generation ──► Dual-Platform Simulation ──► Prediction Report
              (NER + GraphRAG)    (personas, memory,     (Twitter-like + Reddit-like     (ReportAgent with
                                   social networks)       parallel interaction)            deep analysis tools)

Phase

Was passiert

Graph-Erstellung

Extrahiert Entitäten, Beziehungen und Kontext aus Ihren Dokumenten. Erstellt einen Wissensgraphen mittels GraphRAG.

Umgebungseinrichtung

Generiert Agenten-Personas mit unterschiedlichen Persönlichkeiten, Überzeugungen und sozialen Verbindungen.

Simulation

Agenten interagieren parallel auf zwei Plattformen (Twitter-ähnlich und Reddit-ähnlich). Dynamische Speicheraktualisierungen in jeder Runde.

Berichtserstellung

Ein ReportAgent analysiert die Umgebung nach der Simulation – Stimmungsschwankungen, Fraktionsbildung, virale Dynamiken, Ergebnistrajektorien.

Tiefe Interaktion

Chatten Sie mit jedem Agenten, um seine Argumentation zu verstehen. Fragen Sie den ReportAgent für eine weiterführende Analyse.

Schnellstart

1. API-Schlüssel abrufen

Registrieren Sie sich unter deepmiro.org → Dashboard → API Keys. Ihr Schlüssel sieht aus wie dm_xxxxxxxxx.

2. Installation

Claude Code (Plugin – empfohlen) – ein Befehl gibt Ihnen die /predict-Fähigkeit + den verbundenen MCP-Server:

claude plugin marketplace add kakarot-dev/deepmiro
claude plugin install deepmiro@deepmiro-marketplace
export DEEPMIRO_API_KEY=dm_your_key   # or set it in ~/.claude/settings.json

Starten Sie dann Claude Code neu und sagen Sie /predict oder predict how people will react to [scenario].

Andere Clients:

Client

Installation

OpenAI Codex

codex plugin install kakarot-dev/deepmiro

Claude Desktop

Hinzufügen zu claude_desktop_config.json: "deepmiro": {"command": "npx", "args": ["-y", "deepmiro-mcp"], "env": {"DEEPMIRO_API_KEY": "dm_xxx"}}

ChatGPT Desktop

Einstellungen → MCP Servers → Hinzufügen → npx deepmiro-mcp mit env DEEPMIRO_API_KEY

Cursor / Windsurf

Einstellungen → MCP → Hinzufügen → npx deepmiro-mcp mit env DEEPMIRO_API_KEY

VS Code (Copilot)

Hinzufügen zu .vscode/mcp.json: "deepmiro": {"command": "npx", "args": ["-y", "deepmiro-mcp"], "env": {"DEEPMIRO_API_KEY": "dm_xxx"}}

Selbst-Hosting

Kein API-Schlüssel erforderlich. Führen Sie die Engine lokal aus und verweisen Sie den MCP-Server darauf:

git clone https://github.com/kakarot-dev/deepmiro.git
cd deepmiro
cp .env.example .env    # add your LLM API key
docker compose -f docker/docker-compose.yml up -d

# Connect your AI client to the local engine
claude mcp add deepmiro -e MIROFISH_URL=http://localhost:5001 -- npx -y deepmiro-mcp
# Required in .env
LLM_API_KEY=your_key
LLM_BASE_URL=https://api.openai.com/v1
LLM_MODEL_NAME=gpt-4o-mini

SURREALDB_URL=ws://localhost:8000/rpc
SURREALDB_USER=root
SURREALDB_PASS=root

MCP-Server

DeepMiro ist ein MCP-Server. MCP ist der universelle Standard, der von Claude, ChatGPT, Gemini, Cursor, VS Code und jedem großen KI-Client übernommen wurde – ein Server, funktioniert überall.

npx deepmiro-mcp

Verfügbare Tools: create_simulation, quick_predict, simulation_status, get_report, interview_agent, upload_document, list_simulations, search_simulations.

Was ist anders

DeepMiro ist ein auf Leistung ausgerichteter Fork der ursprünglichen MiroFish-Engine. Gleicher OASIS-Simulationskern, neu aufgebaute Infrastruktur:

Komponente

MiroFish (Original)

DeepMiro

Empfehlungs-Engine

Vollständiger LLM-Aufruf pro Runde (~200s/Runde)

Zwischengespeicherte TWHIN-BERT Embeddings (~15ms/Runde)

Entitätsextraktion

Sequentielles NER

5-Worker paralleles NER via ThreadPoolExecutor

Graph-Erstellungszeit

~5 Minuten

~56 Sekunden

Graph-Datenbank

Zep Cloud (proprietär)

SurrealDB (selbst gehostet, Open-Source)

Vektorsuche

Cloud-abhängig

Hybrid HNSW + BM25 (lokal, 768-dim Kosinus)

Embedding-Modell

An Zep gebunden

nomic-embed-text-v1.5 via Fireworks (austauschbar)

Dokumentenaufnahme

Manuelle Texteingabe

Upload-Endpunkt mit Magic-Byte-Validierung (PDF, MD, TXT)

LLM-Anbieter

Alibaba Qwen (fest codiert)

Jede OpenAI-kompatible API

Bereitstellung

Nur Docker

Docker + Helm Chart + k3s-bereit

Persona-Treue: Wie DeepMiro Agenten im Charakter hält

Multi-Agenten-LLM-Simulationen haben ein schmutziges Geheimnis: Personas driften. Nach Runde 20 beginnt Tucker Carlson, die ACLU zu zitieren. Nach Runde 45 klingt Marco Rubio wie Bernie Sanders. Jede unverwechselbare Stimme kollabiert in dasselbe fade "hilfreiche Assistenten"-Register.

Das ist kein Prompting-Problem – es ist ein Aufmerksamkeitsverlust-Problem. Kim et al. (COLM 2024) haben bewiesen, dass die Aufmerksamkeit von LLMs auf System-Prompt-Token über Runden hinweg geometrisch abnimmt. LLaMA2-70B driftet innerhalb von 8 Runden signifikant. Größere Modelle driften mehr, nicht weniger. Eine 2KB-Persona kann nicht mit 50KB angesammelter Gesprächshistorie konkurrieren.

Jede naive Multi-Agenten-Simulation stößt an diese Wand. DeepMiro nicht, weil wir kopiert haben, was Stanfords Generative Agents (Park et al. 2023) für ihre 25-Agenten-Smallville-Simulation getan haben – mit einigen praktischen Abkürzungen.

Was wir tun

1. Strukturierte Personas mit expliziten negativen Beispielen. Jeder Agent erhält ein strukturiertes Profil neben der Prosa-Biografie:

  • ideology_anchor — ein 2-5 Wörter umfassendes parteipolitisches Tag ("konservativer Populist", "progressive Arbeit")

  • core_beliefs — 3-5 deklarative Aussagen in der ersten Person, kein Herumdrucksen

  • verbal_tics — 3-5 wörtliche Phrasen, die die Person tatsächlich verwendet

  • never_say — 3-5 Sätze, die die Person sich weigern würde auszusprechen

  • speaking_style — Register + rhetorische Gewohnheiten

Der never_say-Block ist der Drift-Killer. Modelle driften zum Schwerpunkt dessen, was sie sagen. Explizite negative Beispiele ("Tucker Carlson würde niemals sagen 'Ich stehe zur ACLU'") verankern das LLM gegen diesen Zusammenbruch.

2. Dynamische Persona-Regenerierung pro Runde. Anstatt die Persona auf System-Prompt-Ebene festzulegen und den Aufmerksamkeitsverlust ab Runde 1 zu beobachten, bauen wir system_message.content vor jeder Agentenaktion neu auf. Jede Runde sieht der Agent ein frisches Drittpersonen-Charakter-Briefing:

# Character Brief: Tucker Carlson

The agent in this conversation is Tucker Carlson.
You are simulating how Tucker Carlson would respond.

## What Tucker Carlson Would NEVER Say
- "I stand with the ACLU"
- "We need to find common ground with progressives"
...

## What Tucker Carlson Has Said Recently
- "Permanent Washington wants you to believe..."
- "Let's pause for a moment — they're not even hiding it"
...

## Task
What would Tucker Carlson actually do? React in his authentic voice.
Do not become a neutral assistant. Do not seek balance.

Die Persona wird nie alt, weil sie jede Runde frisch aus denselben strukturierten Feldern aufgebaut wird.

3. Drittpersonen-Framing. "Du bist Tucker Carlson" löst RLHF-Hilfsassistenten-Schmeichelei aus – das Modell versucht höflich und ausgewogen zu sein, weil es so darauf trainiert wurde, auf "Du bist X"-Anweisungen zu reagieren. Drittpersonen-Framing ("der Agent ist Tucker Carlson", "was würde Tucker Carlson tun?") umgeht diesen Auslöser vollständig. Diese einzelne Änderung ist tragend.

4. Selbstkonsistenz-Anker. Jede Runde injiziert die eigenen 3 aktuellsten Beiträge des Agenten als Referenzmaterial. Tucker Carlson sieht, was er gerade gesagt hat, was ihn eher dazu bringt, etwas Konsistentes dazu zu sagen. Das ist billiger Drift-Widerstand – keine zusätzlichen LLM-Aufrufe, nur Lesen aus dem Aktionsprotokoll.

5. Keine angesammelte Chat-Historie. Im Gegensatz zu naiven Multi-Agenten-Setups füttert DeepMiro jedem Agenten NICHT die laufende Gesprächshistorie aus früheren Runden. Agenten erhalten ihre frische Persona + die aktuellen Feed-Beobachtungen. Die Aufmerksamkeit bleibt auf Charakter + gegenwärtigen Kontext fokussiert, nicht auf 50KB abgestandenen Lärm.

Was wir nicht tun

  • Wir schreiben keine Reaktionen vor. Agenten wird nicht gesagt "verspotten Sie liberale Inhalte" oder "unterstützen Sie konservative Inhalte" – das würde das Ergebnis vorschreiben und den Vorhersagewert der Simulation zerstören. Das emergente Verhalten ist der ganze Punkt.

  • Wir filtern Feeds nicht nach Ideologie. Tucker Carlson sieht AOCs Beiträge. So hat er etwas, wogegen er sich wehren kann. Echokammern sind keine Simulationen.

  • Wir forken OASIS nicht. Der gesamte Fix ist ein Laufzeit-Wrapper um CAMELs Agent-Pager. Kein Upstream-Drift, keine Fork-Wartung.

Forschungsgrundlagen

Technik

Quelle

Aufmerksamkeitsverlust bei System-Prompts

Kim et al. — Measuring and Controlling Persona Drift (COLM 2024)

Drittpersonen-Framing umgeht RLHF-Schmeichelei

Park et al. — Generative Agents (Stanford 2023)

Negative Beispiele > positive Anweisung

Examining Identity Drift in LLM Agents (arXiv 2412.00804)

Dynamische Persona-Zusammenfassung pro Aktion

Park et al. — Generative Agents (Stanford 2023)

JSON-Personas kollabieren zu neutralem Register

Persona-Aware Contrastive Learning (ACL 2025)

Benchmarks

15-Agenten-Schnellsimulation, angereicherter Prompt, End-to-End gemessen:

Phase

Zeit

Graph-Erstellung

~10s

Agenten-Generierung

~3 Min

Simulation (110 Twitter + 26 Reddit Aktionen)

~4 Min

Gesamt-Pipeline

~7 Min (schnell) / ~12 Min (Standard, 80 Agenten)

Der größte Gewinn ist das Empfehlungssystem: TWHIN-BERT-Embeddings werden einmal pro Benutzer bei der Einrichtung berechnet, dann werden nur neue Beiträge jede Runde inkrementell eingebettet. Kosinus-Ähnlichkeit via numpy ersetzt das, was früher ein vollständiger LLM-Inferenzaufruf war – 13.000x schneller pro Runde.

Monorepo-Struktur

deepmiro/
├── engine/              # Python Flask simulation backend
│   ├── app/
│   │   ├── api/         # REST endpoints (simulation, graph, documents, report)
│   │   ├── services/    # Graph builder, simulation runner, report agent
│   │   ├── storage/     # SurrealDB adapter, embedding service, NER
│   │   └── utils/       # LLM client, retry logic, logging
│   └── pyproject.toml
├── mcp-server/          # TypeScript MCP server (npm: deepmiro-mcp)
│   └── src/
├── .claude-plugin/      # Claude Code plugin + marketplace manifests
├── .codex-plugin/       # OpenAI Codex plugin manifest
├── .agents/             # Codex marketplace catalog
├── .mcp.json            # MCP config (auto-loaded when running `claude` here)
├── skills/predict/      # /predict skill (auto-setup, narration, interviews)
├── helm-chart/          # Kubernetes (k3s) deployment
├── docker/              # Dockerfiles + compose
├── docs/                # Landing page
└── locales/             # i18n (en, zh)

Anwendungsfälle

Bereich

Beispiel

Marktanalyse

Laden Sie einen Ergebnisbericht hoch. "Wie werden Privatanleger auf diese Prognoseanpassung reagieren?"

Richtlinientests

Laden Sie einen Regulierungsentwurf hoch. "Welche öffentliche Gegenreaktion sollten wir erwarten und von welchen demografischen Gruppen?"

PR & Kommunikation

Laden Sie eine Pressemitteilung hoch. "Wie wird diese Ankündigung über 48 Stunden in den sozialen Medien ankommen?"

Wettbewerbsanalyse

Laden Sie Produktspezifikationen der Konkurrenz hoch. "Wie wird unsere Nutzerbasis auf diese Funktionslücke reagieren?"

Kreative Erkundung

Laden Sie die ersten 80 Kapitel eines Romans hoch. "Welches Ende würde sich aus dieser Charakterdynamik ergeben?"

Krisensimulation

Laden Sie einen Vorfallbericht hoch. "Wie entwickelt sich die öffentliche Meinung, wenn wir mit X statt Y reagieren?"

Danksagungen

DeepMiro ist ein Fork von MiroFish, ursprünglich erstellt von Guo Hangjiang und unterstützt von der Shanda Group. Die Simulationsschicht wird von OASIS vom CAMEL-AI-Team betrieben.

Lizenz

AGPL-3.0


deepmiro.org · Erstellt von Joel Libni

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kakarot-dev/deepmiro'

If you have feedback or need assistance with the MCP directory API, please join our Discord server