Startseite / Artikel / Hyperresearch: So prüft Claude Code Zitate und führt ein Recherche-Archiv

Hyperresearch: So prüft Claude Code Zitate und führt ein Recherche-Archiv

Installieren und konfigurieren Sie einen Recherche-Agenten mit 16 Schritten für Claude Code, wählen Sie die passende Stufe und das Register, holen Sie Open-Access-Volltexte und prüfen Sie, was er wirklich gelesen hat.

2396 Wörter

Hyperresearch ist ein Open-Source-Python-Paket, das genau das beheben will. Es lässt Claude Code wie einen Deep-Research-Agenten arbeiten: eine Pipeline mit 16 Schritten, ein dauerhaftes Archiv mit allem, was gelesen wurde, und eine Reihe von Prüfungen, die einen Bericht stoppen, wenn seine Zitate nicht halten. Das Repository liegt unter https://github.com/jordan-gibbs/hyperresearch, das Paket gibt es auf PyPI. Im Folgenden geht es darum, wie man es betreibt, und um die zwei Konfigurationsentscheidungen, die einen ersten Lauf nützlich oder enttäuschend machen.

Drei Angewohnheiten, die es vermeidet

Drei Designentscheidungen leisten den Großteil der Arbeit, und jede beantwortet ein Versagen, das Sie von anderen Recherche-Agenten kennen. Sie erklären auch, wofür die lange Laufzeit gut ist.

Reparieren statt neu erzeugen. Sobald der Bericht entworfen ist, haben die Agenten, die ihn bearbeiten, auf Ebene der Claude-Code-Allowlist nur noch Lese- und Bearbeitungsrechte. Der Patcher und der Polish-Auditor können physisch keinen neuen Entwurf schreiben. Wer ein gewöhnliches Modell nach einer Kritik ein Dokument mit 20.000 Wörtern neu erzeugen lässt, gibt ihm Tausende Gelegenheiten, unbemerkt eine gesicherte Tatsache zu ändern oder fallen zu lassen. Hier passt der Befund eines Kritikers entweder in eine kleine, gezielte Änderung oder wird als strukturelles Versagen eskaliert. Das Dokument kann sich nicht still und heimlich umbauen.

Wiederholung ist keine Bestätigung. Wird eine Pressemitteilung von fünfzig Medien nachgedruckt, sieht ein unkalibrierter Agent einen überwältigenden Konsens. Dagegen gruppiert ein Unabhängigkeits-Audit nahezu identische Kopien nach inhaltlicher Ähnlichkeit und teilt das Gewicht dann auf die Gruppe auf. Fünf Nachdrucke derselben Mitteilung zählen am Ende so viel wie eine Quelle.

Die ursprüngliche Frage bleibt angeheftet. Ihr exakter Prompt wird einmal in eine Datei query.md geschrieben, und jeder spätere Schritt und jeder gestartete Subagent liest ihn erneut. Multi-Agenten-Pipelines driften, und bis Schritt 9 kann aus dem Thema eine einfachere Verwandte Ihrer eigentlichen Frage geworden sein. Den Text festzuhalten und neu zu lesen, ist eine simple Lösung, die funktioniert.

Langfristig zahlt sich vielleicht das Archiv am meisten aus. Jede Seite, jedes PDF und jede Arbeitsnotiz landet in einem durchsuchbaren Speicher aus Markdown-Dateien und SQLite im Projektordner. Ein späterer Lauf im selben Ordner schaut zuerst nach, was schon vorhanden ist, bevor er etwas herunterlädt. So wächst die Recherche, statt zu verschwinden.

Installation ohne Enttäuschung

Die Installation besteht aus zwei Befehlen, ausgeführt im Projektverzeichnis, in dem das Archiv liegen soll:

cd your-project
pip install hyperresearch && hyperresearch install

Danach tippen Sie /hyperresearch <your question> (Ihre Frage) in Claude Code. Unterstützt wird Python 3.11 bis 3.13. Wenn Sie 3.14 nutzen, das noch nicht unterstützt wird, legen Sie zuerst mit pyenv install 3.13 oder uv venv -p 3.13 eine 3.13-Umgebung an.

Den nächsten Punkt erwähnt die Dokumentation einmal, und die meisten überlesen ihn. Der Standard-Webprovider ist builtin, ein einfacher HTTP-Abruf ganz ohne Suche. Er hat keine zusätzlichen Abhängigkeiten, ist aber nicht das, worauf die Pipeline abgestimmt wurde. Wenn sich der Quellenkorpus nach einem Standardlauf dünn anfühlt, liegt es daran.

Die Lösung ist das Extra crawl4ai:

pip install "hyperresearch[crawl4ai]"

Dann wählen Sie es in .hyperresearch/config.toml aus:

[web]
provider = "crawl4ai"

Damit läuft das Abrufen über einen Headless-Browser mit Stealth-Handling, und es kommen PDF-Textextraktion sowie die Browser-Eskalationsspur dazu. Exa und Tavily werden unterstützt, wenn Sie Schlüssel haben. Parallel braucht kein Konto, sucht aber nur, und Massenabrufe fallen auf eine URL nach der anderen zurück. Es eignet sich daher am besten als Ergänzung.

Noch eine Entscheidung bei der Installation. Eine Installation pro Projekt hält fremde Claude-Code-Sitzungen sauber. Eine globale (hyperresearch install --global) macht den Befehl überall verfügbar, kostet aber etwa fünfzehn Zeilen in der Systemerinnerung jeder Sitzung. Fangen Sie pro Projekt an.

Wählen Sie eine Stufe, bevor Sie drei Stunden verbrennen

Jeder Lauf landet in einer von drei Stufen. Schritt 1 wählt sie aus und klassifiziert die Anfrage, ohne Sie zu fragen.

  • light führt fünf der sechzehn Schritte in etwa 30 bis 40 Minuten aus und passt zu klar umrissenen Faktenfragen, Überblicken und Vergleichen.
  • full ist der Standard und führt alles aus: adversariale Kritiker, Zitatprüfung, das volle Programm. Rechnen Sie mit etwa 1,5 bis 2,5 Stunden.
  • dissertation greift nur, wenn der Prompt ausdrücklich danach fragt. Die Arbeit wird in 4 bis 10 Kapitel gegliedert, stützt sich auf 300 bis 450 Quellen und umfasst 25.000 bis 80.000 Wörter. Das dauert ungefähr 4 bis 8 Stunden.

Verzichten Sie auf full, wenn eine gute Suche und zwanzig Minuten Lektüre reichen würden. Der Klassifikator ist vernünftig, aber die Formulierung Ihres Prompts schubst ihn, und die Bitte um eine „comprehensive analysis“ („umfassende Analyse“) kann zwei Stunden kosten, die Sie nicht hätten aufwenden müssen.

Das Register ist der zweite Hebel, und es wird aus dem Verb in Ihrem Prompt abgeleitet. „Teach me X“ („Bring mir X bei“) liefert eine Lernerklärung. „What does the field around X look like“ („Wie sieht das Feld rund um X aus“) liefert eine Landkarte ohne Urteil. Der Standard, analyze, baut eine wertende Argumentation auf, und advocate verteidigt eine einzige These, die Sie benennen. Nennen Sie das Register ausdrücklich, und Ihre Anweisung schlägt die Vermutung.

Das funktioniert, weil die Kritiker dem Register folgen, statt dagegen zu arbeiten. Unter survey beanstandet der dialektische Kritiker eine unfaire Darstellung konkurrierender Sichtweisen und drängt nicht auf ein Urteil, und der Polish-Auditor lässt Ihre Einschränkungen stehen. Unter advocate werden die Prüfungen strenger. Zitatprüfung und Ship-Gate geben nie nach, und das ist richtig so: Die Verifikation sollte nicht lockerer werden, nur weil Sie einen sanfteren Ton wollten.

Der Umfang wird getrennt vom Ton gesteuert, über Profile, die Quellenziele und Tiefenbudgets festlegen:

hyperresearch profile list           # what's available, what's active
hyperresearch profile use premier    # 100-130 sources, doubled depth budget
hyperresearch profile use full       # back to the 55-80 baseline

Deckeln Sie vor einem langen Lauf auch die Ausgaben:

hyperresearch run init --budget 50

Wird die Grenze überschritten, stoppt der Lauf, statt aus dem Ruder zu laufen. Sie begrenzt die geschätzten API-äquivalenten Kosten und ist keine echte Rechnung. Nutzen Sie sie also bei den ersten Läufen, bis Sie wissen, was ein premier-Lauf kostet.

Die Einstellung, die die Quellenqualität verändert

Wenn es zu einem Thema echte Fachliteratur gibt, fragen Sie wissenschaftliche Datenbanken vor dem offenen Web ab. Eine Websuche liefert Leute, die über die Arbeit reden, eine wissenschaftliche Suche liefert die Arbeit selbst.

hpr scholar search "GLP-1 cardiovascular outcomes" -j
hpr scholar sources    # what's wired up, what each one covers

Eine einzelne Anfrage erreicht derzeit sieben Quellen. Bibliografische und Open-Access-Abdeckung kommt von Crossref, OpenAlex, CORE und DOAB. Neben Papern durchsucht es auch registrierte Studien in ClinicalTrials.gov, Unternehmensberichte in SEC EDGAR und Wirtschaftsreihen von FRED. Die Ergebnisse werden per DOI zusammengeführt, ersatzweise über normalisierte Titel. Das README zählt acht, weil auch RePEc aufgeführt ist, dessen API aber nicht durchsuchbar ist. Die zusammengeführte Liste markiert jeden Treffer nach Art, sodass Studien, aus denen nie ein Paper wurde, SEC-Berichte und Fed-Daten nicht mit Zeitschriftenartikeln verwechselt werden.

Nun die Einstellung selbst, eine echte Kontakt-E-Mail:

export HYPERRESEARCH_CONTACT_EMAIL="you@example.com"

Dieser eine Wert hat zwei Effekte. Er bringt Sie in die „Polite Pools“ von OpenAlex und Crossref, wo die Rate-Limits deutlich großzügiger sind als für anonyme Aufrufer. Außerdem verlangen ihn die Nutzungsbedingungen von Unpaywall, dem ersten Dienst, den die Pipeline bei der Suche nach Open-Access-Kopien befragt.

Ist die E-Mail leer, wird nur Europe PMC genutzt, und das deckt Biomedizin ab und nichts außerhalb seiner Open-Access-Teilmenge. Ist sie gesetzt, schickt eine Paywall den Agenten zuerst zu Unpaywall, mit Europe PMC und CORE dahinter in der Warteschlange, auf der Suche nach einer legalen kostenlosen Kopie, deren Volltext in der Notiz das Abstract ersetzt. Das entscheidet darüber, ob Ihr Archiv am Ende voller Stummel mit 1.500 Zeichen oder voller echter Paper ist.

Tragen Sie denselben Wert unter [scholar] in der Konfiguration ein:

[scholar]
oa_recovery = true
contact_email = "you@example.com"
oa_min_full_text_chars = 6000
oa_prefer_published = true

Beachten Sie oa_prefer_published, das hier im Stillen wichtige Arbeit leistet. Ist keine veröffentlichte Fassung frei zugänglich, liefert Unpaywall unter Umständen ein angenommenes Manuskript oder einen eingereichten Preprint, und beides entspricht nicht der Version of Record.

Die Ausgabe lesen, als wäre man dafür verantwortlich

Greift die Open-Access-Wiederherstellung, zeigt das Feld source: einer Notiz weiterhin die URL, die Sie angefragt haben, obwohl der Text womöglich von woanders stammt. Das Tool kennzeichnet das an vier Stellen: ein Banner am Kopf der Notiz, die Frontmatter-Felder oa_url, oa_source, oa_version und oa_license, ein JSON-Block oa aus hpr note show <id> --json, der body_is_not_from_source: true enthält, und ein Hinweis in der Abrufausgabe selbst.

Prüfen Sie oa_version, bevor Sie etwas zitieren. Steht dort acceptedVersion oder submittedVersion, gleichen Sie das Zitat mit dem veröffentlichten Paper ab.

Es gibt einen schwierigeren Fall. Eine Quelle, die sich gar nicht lesen lässt, etwa wegen eines 403 oder einer Login-Sperre, durchläuft dieselbe Suche, und die ganze Notiz wird aus der Open-Access-Kopie gebaut. Solche Notizen tragen oa_recovery_kind: rescued und nothing_from_source: true, und ein Banner räumt ein, dass die ursprüngliche URL nie geöffnet wurde. Glauben Sie ihm: Titel, Autoren und Text stammen allesamt vom Ersatz. Wenn Sie lieber gar keine Notiz hätten als eine aus einem Stellvertreter zusammengesetzte, setzen Sie oa_rescue_blocked = false.

Vor der Auslieferung läuft die Prüfbatterie. Eine zitierte Passage muss wortwörtlich in irgendeiner Archivnotiz vorkommen, ein erfundenes Zitat ist also ein harter Stopp. Eine zurückgezogene Quelle, die ohne Hinweis auf den Rückzug zitiert wird, ist ebenfalls ein harter Fehler, und der Retraction-Check prüft jede zitierte DOI genau zum Zeitpunkt der Auslieferung neu, nicht so, wie sie beim ersten Abruf stand. Zahlen ohne Beleg werden markiert.

hyperresearch run verify <tag> -j   # headings, length, citation density, cite-check resolution
hyperresearch run status -j         # step status, spend, escalation queue depth
hyperresearch run resume -j         # crashed runs pick up at the exact step

Der letzte Befehl ist ein Lebensretter: Scheitert ein Lauf bei Schritt 12, macht er bei Schritt 12 weiter.

Später mit dem Archiv arbeiten

Der Bericht ist das Ergebnis, das Archiv ist der Wert.

hyperresearch search "ion-trap gate fidelity" -j
hyperresearch search "quantum" --include-body -j
hyperresearch graph hubs -j          # most-connected notes
hyperresearch sources independence -j # syndication clusters
hyperresearch lint -j                # broken links, missing tags

Markdown ist die maßgebliche Quelle, SQLite dient nur als Cache, den man neu aufbauen kann. Geht die Datenbank verloren, erzeugt hyperresearch sync den Index aus den Dateien auf der Platte neu. Halten Sie den Ordner in Git und öffnen Sie ihn in einem beliebigen Editor. Ihre Recherche bleibt auch ohne das Tool lesbar, und diese Portabilität zählt mehr als jede einzelne Funktion.

Es läuft auch außerhalb von Claude Code. hyperresearch serve --open startet eine lokale Weboberfläche auf Port 8080, und nach pip install hyperresearch[mcp] stellt der Befehl hyperresearch mcp dreizehn Tools über stdio bereit, sodass Cursor oder Claude Desktop dasselbe Archiv abfragen können.

Grenzen und eine Behauptung, die man locker halten sollte

Blockierte Abrufe landen in einer Eskalations-Warteschlange, statt still verloren zu gehen. Führen Sie einmal hyperresearch setup aus und melden Sie sich bei Ihren Websites an. Ist die Erweiterung Claude-in-Chrome installiert, arbeitet ein Browser-Fetcher-Agent diese Warteschlange mit Ihrem echten, angemeldeten Chrome ab und kommt an Paywalls vorbei, für die Sie bezahlt haben. CAPTCHAs, 2FA und Logins werden nie automatisch erledigt, Sie bekommen sie gesammelt in einer einzigen Nachricht.

Das Lint-Gate fängt strukturelle Fehler wie fehlende Gerüste, unterbrochene Herkunftsketten und ungelöste kritische Befunde ab. Faktische Richtigkeit kann es nicht versprechen, eine Grenze, die das README offen nennt. Die Quellenauswahl bleibt beim Agenten, also bleibt auch die Steuerung bei Ihnen.

Dann ist da die Leaderboard-Behauptung. Laut Repo liegt es in der Kategorie RACE von DeepResearch-Bench auf Platz eins, die Bildunterschrift unter dem Diagramm ist allerdings offen: eine vorausschauende Hochrechnung aus einem stratifizierten Pilotprojekt, intern gebenchmarkt, mit ausstehender Validierung durch Dritte. Das zu veröffentlichen ist vertretbar, es als feststehende Tatsache weiterzugeben dagegen nicht. Der eigentliche Maßstab sind Ihre eigenen Läufe.

Beachten Sie auch das Tempo. Das erste PyPI-Release stammt vom April 2026, Mitte September 2026 kam nach siebzehn Releases die 0.11.1. Software unter 1.0, die sich so schnell ändert, wird sich bis zum Lesen dieses Textes weiterbewegt haben. Gleichen Sie also jedes hier genannte Flag mit dem README ab. Die Lizenz ist MIT.

Ein erster Lauf, den Sie wirklich beurteilen können

Testen Sie es nicht an einem Thema, das neu für Sie ist, denn dann bemerken Sie keine Fehler. Wählen Sie etwas, das Sie gut genug kennen, um Fehler zu erkennen, mit solider Literatur darunter und einem Haufen aufgewärmter Kommentare darüber. Diese Kombination legt die zwei Schwächen offen, die man allein am Berichtstext nicht sieht:

/hyperresearch Survey the evidence on whether remote work changes
software team productivity. Separate individual output from team-level
coordination costs, and distinguish measured studies from company
self-reports. Survey the landscape; don't argue for a position.

Die Formulierung leistet hier echte Arbeit. „Survey“ („Überblick“) wählt das Register, also kartiert die Ausgabe das Feld, ohne ein Urteil zu fällen. Die zwei verlangten Abgrenzungen werden in Schritt 1 zu atomaren Checklistenpunkten, an denen der Anweisungs-Kritiker später den Entwurf misst. Der letzte Satz überschreibt die Register-Vermutung, damit sie nicht allein vom Verb abhängt.

Nehmen Sie für den ersten Versuch light und bewerten Sie nicht die Prosa. Öffnen Sie fünf Notizen im Archiv und beantworten Sie vier Fragen:

  1. Wurden die eigentlichen Studien abgerufen oder nur Artikel, die sie beschreiben?
  2. Welche Notizen enthalten Volltext, welche nur ein Abstract mit 1.500 Zeichen? Schauen Sie bei allem Geretteten auf oa_version und nothing_from_source.
  3. Nehmen Sie drei Aussagen aus dem Bericht und prüfen Sie, ob die zitierte Notiz jede davon wirklich stützt.
  4. Führen Sie hyperresearch sources independence -j aus. Wurden syndizierte Berichte zu Clustern zusammengefasst, oder zählt eine einzelne Pressemitteilung immer noch fünfmal?

Wenn diese Antworten zu dem passen, was Sie selbst herausgefunden hätten, sind längere Läufe Ihren Nachmittag wert. Der Test funktioniert mit jedem Recherche-Agenten. Die meisten behalten nur nicht die Notizen, mit denen man ihn durchführen kann.

Starten Sie im Repo mit einer Installation pro Projekt, dem Extra crawl4ai und Ihrer Kontakt-E-Mail, und investieren Sie dann vierzig Minuten in einen light-Lauf.