Communitygithub.com

GraphRAG

Erstelle eine GraphRAG-Pipeline über Dokumente. Verwende dies, wenn eine reine Vektorsuche Chunks ohne Verbindungen zurückgibt oder wenn Fragen Multi-Hop-Schlussfolgerungen erfordern.

Was ist GraphRAG?

Dieser Skill implementiert eine GraphRAG-Pipeline (Retrieval-Augmented Generation über einen Wissensgraphen) als Alternative zur reinen Vektorsuche. Er extrahiert Entitäten und Beziehungen aus Dokumenten, speichert diese in einer Graphdatenbank (lokal mit Kuzu oder skalierbar mit Neo4j) und nutzt die Graphstruktur zur Beantwortung komplexer, verbindungsbasierter Fragen. Der Fokus liegt auf Multi-Hop-Szenarien, bei denen Beziehungen über mehrere Knoten hinweg verfolgt werden müssen (z. B. „Welche Lieferanten waren von der Störung in Werk X betroffen?“). Der Skill führt durch die Definition eines vorab festgelegten Schemas, die Extraktion und Deduplizierung von Entitäten, das Laden in die Datenbank sowie die Abfrage mit Cypher und die Synthese der Antwort durch ein LLM. Er eignet sich besonders für Developer Tools und KI-Agenten, die Dokumente analysieren, Zusammenhänge erkennen und globale Zusammenfassungen erstellen müssen. Hinweis: Für einfache Einzelfakten ist die reine Vektorsuche oft effizienter.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/unisone/openclaw-skill-suite/tree/main/skills/graphrag

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

GraphRAG Skill

Retrieval-Augmented Generation über einem Wissensgraphen anstelle von flachen Chunks. Aus Ihren Dokumenten werden Entitäten und Beziehungen extrahiert, in einer Graphdatenbank gespeichert und das LLM nutzt zur Abfragezeit die Graphstruktur für Schlussfolgerungen.

Warum ein Graph statt Vektoren

Die Vektorsuche findet ähnliche Chunks. Sie kann keine Verbindungen verfolgen:

  • „Welche Lieferanten waren von der Störung in Werk X betroffen?“ benötigt Störung → betrifft → Werk → beliefert_durch → Lieferant – zwei Hops, die kein einzelner Chunk enthält.
  • „Fasse alles zusammen, was wir über Projekt Y wissen“ benötigt die Gemeinschaft von Entitäten rund um Y, nicht die zehn ähnlichsten Absätze.

Wenn Ihre Fragen einfache Faktenabfragen sind, bleiben Sie bei Vektor-RAG – es ist einfacher. Greifen Sie zu GraphRAG, wenn Fragen Beziehungen überspannen.

Stack

  • Kuzu – eingebettete Graphdatenbank (pip install kuzu), kein Server nötig, Cypher-Abfragesprache. Fangen Sie hier an.
  • Neo4j – wenn die eingebettete Lösung nicht mehr ausreicht: Mehrbenutzer, größere Graphen, Bloom-Visualisierung. Dieselben Cypher-Kenntnisse sind übertragbar.
  • LLM-Extraktion – jedes starke Modell mit strukturierter Ausgabe für die Extraktion von Entitäten/Beziehungen.

Pipeline

1. Definieren Sie zuerst das Schema

Lassen Sie den Extraktor nicht frei Typen erfinden – Sie erhalten 40 Schreibweisen derselben Beziehung. Deklarieren Sie Knoten- und Kantentypen vorab:

CREATE NODE TABLE Person(name STRING, PRIMARY KEY(name));
CREATE NODE TABLE Project(name STRING, status STRING, PRIMARY KEY(name));
CREATE NODE TABLE Document(title STRING, date DATE, PRIMARY KEY(title));
CREATE REL TABLE WORKS_ON(FROM Person TO Project, role STRING);
CREATE REL TABLE MENTIONS(FROM Document TO Person);
CREATE REL TABLE MENTIONS_PROJECT(FROM Document TO Project);

Halten Sie das Schema klein (5-10 Knotentypen). Sie können es erweitern; Sie können einen unübersichtlichen Graphen nicht günstig wieder „ent-extrahieren".

2. Entitäten und Beziehungen extrahieren

Teilen Sie Dokumente in Chunks (500-1000 Token, überlappend), dann fordern Sie den Extraktor auf:

Extrahiere Entitäten und Beziehungen aus dem folgenden Text.

Erlaubte Knotentypen: Person, Project, Document
Erlaubte Kantentypen: WORKS_ON (Person→Project), MENTIONS (Document→Person),
                    MENTIONS_PROJECT (Document→Project)

Regeln:
- Namen normalisieren („J. Schmidt" und „Hans Schmidt" sind dieselbe Person)
- Nur Beziehungen extrahieren, die im Text ausdrücklich genannt oder klar impliziert sind
- Gib JSON zurück: {"nodes": [...], "edges": [...]}

Text:
<chunk>

Überprüfen Sie 10-20 Chunks manuell stichprobenartig. Die Extraktionsqualität ist die Obergrenze für alles nachgelagerte – ein verrauschter Graph liefert verrauschte Antworten.

3. In Kuzu laden

import kuzu
db = kuzu.Database("./knowledge.kz")
conn = kuzu.Connection(db)
# Schema erstellen, dann parameterisiertes MERGE/CREATE pro extrahiertem Knoten/Kante

Beim Laden deduplizieren (MERGE auf Primärschlüssel) – dieselbe Entität erscheint in vielen Chunks.

4. Abfragemuster

Lokale Suche – alles, was mit einer Entität verbunden ist:

MATCH (p:Person {name: $name})-[r]-(neighbor)
RETURN type(r), neighbor;

Multi-Hop-Schlussfolgerung – Beziehungen über den Graphen hinweg verfolgen:

// Wer arbeitet an Projekten, die in Dokumenten zur Störung erwähnt werden?
MATCH (d:Document)-[:MENTIONS_PROJECT]->(proj:Project)<-[:WORKS_ON]-(p:Person)
WHERE d.title CONTAINS 'Störung'
RETURN DISTINCT p.name, proj.name;

Globale Zusammenfassung – Community-Erkennung, dann jede Community zusammenfassen:

// Dicht verbundene Cluster finden (einmal ausführen, Community-ID auf Knoten speichern)
CALL show_tables();  // dann Community-Erkennung Ihres Graphen verwenden

Fassen Sie jede Community mit dem LLM zusammen: „Diese Entitäten gruppieren sich um thema X." Dies ist die GraphRAG-„globale Abfrage" – Fragen wie „Was sind die Hauptthemen in diesen Dokumenten?"

5. Mit dem LLM antworten

Das funktionierende Abfragemuster:

  1. Der Agent übersetzt die Frage in 1-3 Cypher-Abfragen
  2. Die Ergebnisse kommen als strukturierte Zeilen zurück
  3. Das LLM synthetisiert die Antwort aus den Zeilen unter Angabe von Knoten-/Kantenbelegen
  4. Wenn eine Abfrage nichts zurückgibt, formuliert der Agent sie um – niemals Graphinhalte halluzinieren

Zeitliches Wissen (Agentengedächtnis)

Für das agentsübergreifende Gedächtnis fügen Sie den Kanten Zeitstempel hinzu: VALID_FROM / VALID_TO-Zeitstempel, überholte Fakten werden markiert statt gelöscht. Dies ist das zeitliche Wissensgraph-Muster (siehe Graphiti/Zep): „Der Benutzer früher X bevorzugt, jetzt Y" bleibt abfragbar, anstatt überschrieben zu werden.

Anti-Patterns

  • Extrahieren ohne Schema. Freiform-Extraktion erzeugt einen Graphen, den niemand abfragen kann.
  • GraphRAG für alles. Einzelfakten aus sauberen Dokumenten? Vektorsuche ist günstiger und besser. Nutzen Sie den Graphen dort, wo Beziehungen wichtig sind.
  • Blindes Vertrauen in die Extraktion. Jede Pipeline braucht eine Stichproben- Schleife; Extraktionsfehler summieren sich unbemerkt.
  • Riesen-Chunks. Die Entitätsextraktion verschlechtert sich ab ~1000 Token – das Modell lässt Beziehungen weg. Kleinere Chunks, mehr davon.
  • Keine Deduplizierung beim Laden. „Hans Schmidt", „H. Schmidt", „Schmidt" als drei Knoten zerstören stillschweigend Multi-Hop-Abfragen.

Individual skills in this repo

This repo contains 10 individual skills — each has its own dedicated page.

astra-operator

Delegate computer-use and browser tasks to OpenAI

design-inspo

Find design inspiration from curated gallery sites. Use when a user needs UI/UX references, design examples, or inspiration for specific components (navbars, CTAs, hero sections, landing pages, etc.), full websites, SaaS products, mobile apps, animations, icons, branding, or design systems. Helps select the right inspiration source and browse examples.

mundane-demos

Demo strategy that leads with mundane real-life utility instead of benchmarks. Use when presenting an AI agent or product to non-technical audiences. Covers picking tasks the viewer did this morning, showing end-to-end completion, and letting speed be the wow factor.

release-notes

Generate polished release notes from git history. Use when cutting a release, before publishing a GitHub release, or when you need a changelog from commits between two tags. Groups changes by type, surfaces breaking changes, and drafts highlights.

remotion-product-demos

Create Apple-keynote-quality product demo videos with Remotion. Covers glass phone mockups, floating 3D spheres, typing animations, card UIs, ripple effects, and smooth scene transitions. Use when asked to create product demos, app showcase videos, UI walkthrough animations, or

repo-security-scan

Scan a repository for high-signal security issues and produce a report. Use when auditing a codebase for leaked secrets or vulnerable dependencies, before a release, or when onboarding an unfamiliar repo. Runs gitleaks secret scanning and osv-scanner dependency checks.

secure-agent-design

Security architecture patterns for personal AI agents that touch real accounts. Use when designing an agent with access to inbox, calendar, finances, or shopping. Covers per-user isolated VMs, pre-action sentinel checks, least-privilege connectors, human approval gates, and single-use payment credentials.

testimonial-launch

Turn user testimonials into launch distribution. Use when launching a product or feature and you want real user proof to carry the announcement instead of marketing copy. Covers soliciting specific testimonials, curating them, and amplifying via quote-posts.

unisone/openclaw-skill-suite

Create Apple-keynote-quality product demo videos with Remotion. Covers glass phone mockups, floating 3D spheres, typing animations, card UIs, ripple effects, and smooth scene transitions. Use when asked to create product demos, app showcase videos, UI walkthrough animations, or

validator-quotes

Earn and deploy third-party validator quotes for a launch. Use when you need credibility beyond your own claims. Covers who to approach, how to get honest reactions, and how to amplify them via quote-posts, based on the founder/CEO validators behind the Muse launch.

Verwandte Skills