hyperresearch — « The Most Powerful Deep Research Harness » / « Agent-driven research knowledge base. Agents collect, search, and synthesize web research into a persistent, searchable wiki. »
Voce Skill: hyperresearch di Jordan Gibbs è un harness di ricerca approfondita che trasforma Claude Code in un agente di ricerca documentale, distribuito come pacchetto PyPI (MIT, Python 3.11-3.13) che installa 20 skill Claude Code, una CLI, un server MCP e una UI web locale.
Di **Jordan Gibbs** — auteur et mainteneur du dépôt `jordan-gibbs/hyperresearch`. Le projet est distribué sous **licence MIT** et publié sur **PyPI**// Fonte github.com ↗/Lettura 2 min/.md// Traduzione verificata automaticamente
#skill#ricerca approfondita#harness di ricerca#Claude Code#pipeline a 16 passaggi#tier#light#full
hyperresearch (Jordan Gibbs, MIT, PyPI) trasforma Claude Code in un agente di ricerca approfondita. Osservato il 3 agosto 2026: 1.568 stelle, repository creato in aprile. L'installazione rilascia 20 skill, una CLI, un server MCP e una UI web locale.
La pipeline esegue 16 passaggi adattivi per livello (tier): light (~30-40 min) per domande circoscritte, full (1,5-2,5 h) per un'analisi argomentativa con revisione avversariale, dissertation (4-8 h, 25.000-80.000 parole, 300-450 fonti) su richiesta esplicita. Tre leve distinte: i tier decidono quali passaggi vengono eseguiti, i gear decidono in che misura, le leve (teach/survey/analyze/advocate) decidono in quale voce esce il report.
una singola skill di 1200 righe che veniva compattata via prima che il Layer 4 avesse bisogno della sua procedura di triplo abbozzo. L'orchestratore ha dimenticato la procedura, ha scritto un'unica bozza e ha prodotto un report dal punteggio piatto.
— **Jordan Gibbs** — auteur et mainteneur du dépôt `jordan-gibbs/hyperresearch`. Le projet est distribué sous **licence MIT** et publié sur **PyPI** , github.com
L'architettura risponde a un fallimento documentato. La skill d'ingresso è un router leggero senza procedura propria: « V7 era un'unica skill di 1200 righe che veniva compattata via… L'orchestratore ha dimenticato la procedura, ha scritto un'unica bozza e ha prodotto un report dal punteggio piatto. » Ogni passaggio vive nella propria skill, caricata fresca al momento dell'invocazione — una pipeline lunga non perde i suoi passaggi per dimenticanza, ma per espulsione dal contesto (context eviction).
Due principi portanti.« Patch, mai rigenerare »: dopo la sintesi sono possibili solo modifiche chirurgiche, con il patcher bloccato sugli strumenti a [Read, Edit] a livello di allowlist, in modo che « non possa fisicamente scrivere (Write) una nuova bozza » — l'impossibilità meccanica sostituisce l'istruzione. E « la query di ricerca canonica è vangelo »: il prompt testuale viene salvato e riletto da ogni passaggio.
La verifica è l'unica fase esente dallo stile — le leve iniettano degli shim nei prompt dei critici, ma « il cite-checker e il gate di pubblicazione non ricevono alcuno shim ». Tre gate bloccano la pubblicazione: ogni citazione deve esistere testualmente nel vault, una fonte ritrattata non segnalata è un errore bloccante (con una scansione aggiornata su ogni DOI citato), e i numeri non tracciabili vengono segnalati.
Il vault è un archivio markdown persistente indicizzato in SQLite — « Markdown è la verità, SQLite è la cache » — con un ciclo di vita delle note, provenienza, un punteggio di qualità composito e un audit di indipendenza: « cinque ristampe di uno stesso comunicato stampa pesano quanto un'unica fonte ». I corpi dei testi recuperati dal web vengono serviti all'interno di un recinto (fence) <untrusted-source>: « Il testo recuperato è dato, mai istruzioni. »
La riserva. Il README rivendica il primo posto nella classifica DeepResearch-Bench; la sua stessa nota a piè di pagina chiarisce che si tratta di una « proiezione prospettica da un pilota stratificato » priva di convalida da parte di terzi. Citare l'impostazione dello studio, mai la classifica. L'autore riconosce inoltre che il lint « non può garantire l'accuratezza fattuale ».
Punti chiave
Natura. un harness di ricerca approfondita distribuito come pacchetto di 20 skill Claude Code + CLI Python + server MCP + UI web locale. pip install hyperresearch && hyperresearch install, poi /hyperresearch <argomento>. MIT, Python 3.11-3.13.
Inquadramento chiave. la skill d'ingresso è un router senza procedura propria, ogni passaggio vive nella propria skill caricata fresca al momento dell'invocazione. ### La lezione architetturale, con il suo modo di fallimento documentato > « V7 era un'unica skill di 1200 righe che veniva compattata via prima che il Layer 4 avesse bisogno della sua procedura di triplo abbozzo. L'orchestratore ha dimenticato la procedura, ha scritto un'unica bozza e ha prodotto un report dal punteggio piatto. V8 risolve questo alla radice: la procedura di ogni passaggio viene caricata nel contesto solo nel momento in cui serve, fresca, senza rischio di espulsione. » Una pipeline lunga non perde i suoi passaggi perché il modello dimentica, ma per espulsione dal contesto (context eviction), e la correzione è strutturale. Stessa disciplina del contesto persistente che porta l'indice anziché il contenuto in [[lassiege-usine-logicielle-heure-ia-2026-07-28]], scoperta in modo indipendente su un terreno diverso. ### Il blocco degli strumenti come garanzia Il patcher e l'auditor di rifinitura sono « bloccati sugli strumenti a [Read, Edit] a livello di allowlist di Claude Code, così non possono fisicamente scrivere (Write) una nuova bozza », con limiti per porzione (per-hunk caps) che rendono « semplicemente riscriverlo » meccanicamente impossibile. All'agente non viene chiesto di non riscrivere — gli viene tolto lo strumento. Corollario: un rilievo critico che non rientra in un piccolo ritocco si trasforma in un problema strutturale invece di innescare una riscrittura. ### I sedici passaggi, in tre blocchi | Blocco | Passaggi | |---|---| | Inquadramento | 1 scomposizione + matrice di copertura + classificazione per tier; 1.5 partizionamento in capitoli | | Corpus e analisi | 2 scansione ad ampio raggio; 3 grafo delle contraddizioni; 4 analisi dei loci; 5 approfondimenti paralleli; 6 riconciliazione inter-loci; 7 tensioni tra fonti; 8 critica del corpus (« quale fonte ribalterebbe questo? ») + colmatura mirata delle lacune; 9 digest delle evidenze | | Scrittura e audit | 10 triplo abbozzo per angolazione; 11 sintesi; 12 quattro critiche avversariali parallele; 13 colmatura delle lacune post-critica; 14 patcher chirurgico; 14.5 verifica delle citazioni; 15 rifinitura; 16 audit di leggibilità | ### Tre leve di scala da non confondere | Leva | Decide | |---|---| | Tier (tier) | quali passaggi vengono eseguiti, instradati per query | | Gear (profili di scala) | quanto — obiettivi di fonti, budget di profondità, lunghezza; sopravvivono alle reinstallazioni, entrano in vigore alla corsa successiva, mai a metà corsa | | Leve (register, domain_notes, inference_depth) | con quale voce — teach / survey / analyze / advocate | Le leve atterrano come shim iniettati nei prompt dei subagenti, « in modo che i critici si muovano insieme al registro invece di disfarlo ». Ma: « Il cite-checker e il gate di pubblicazione non ricevono alcuno shim. La verifica non si ammorbidisce mai in base alla modalità. » La verifica è l'unica fase esente dallo stile. ### I tre gate meccanici prima della pubblicazione 1. quote-integrity — ogni porzione citata deve esistere testualmente in una nota del vault; « le citazioni allucinate non possono essere pubblicate ». 2. retracted-citations — citare una fonte ritrattata senza segnalarla è bloccante, con una scansione aggiornata al momento della pubblicazione su ogni DOI citato, comprese le fonti riutilizzate da corse precedenti: « una ritrattazione pubblicata ieri viene individuata oggi ». 3. numeric-consistency — i numeri non tracciabili a un elemento di prova vengono segnalati. A questo si aggiunge il cite-check: un LLM scettico campiona se la fonte citata sostenga effettivamente la frase che dovrebbe supportare. ### L'audit di indipendenza Le copie sindacate e derivate vengono raggruppate, in modo che « cinque ristampe di uno stesso comunicato stampa pesino quanto un'unica fonte ». Il numero di fonti concordanti smette di essere un argomento non appena discendono tutte dallo stesso comunicato stampa — rilevante per qualsiasi pratica di monitoraggio tecnologico. Punteggio di qualità composito e persistente: tipo di fonte, utilità osservata alla lettura, autorità citazionale (OpenAlex / Semantic Scholar con segnalazioni di ritrattazione), PageRank sul grafo interno. Le fonti ritrattate vengono azzerate: « La qualità è persistente, non è una sensazione. » ### La difesa contro il prompt injection « Il testo recuperato è dato, mai istruzioni. » Ogni corpo recuperato dal web viene servito all'interno di un recinto <untrusted-source url="..."> con un preambolo treat-as-data, su entrambi i percorsi che servono i corpi di testo (note show e search). Dettagli che mostrano come la minaccia sia stata considerata a fondo:
le note scritte dai subagenti passano senza recinto — il confine di fiducia è per provenienza, non per contenuto;
i tag di recinto contraffatti all'interno di un corpo recuperato vengono neutralizzati ma lasciati visibili ai fini dell'analisi forense;
l'attributo url viene sottoposto a escaping e i suoi caratteri di controllo vengono rimossi;
in search, l'incapsulamento avviene dopo il troncamento al budget di token, « in modo che il recinto di chiusura non possa mai essere reciso »;
gli URL risolti tramite API di terze parti vengono verificati (schema, credenziali incorporate, risoluzione instradabile pubblicamente) — difesa contro SSRF;
i prompt del fetcher, dell'investigatore e dello scrittore vietano di far filtrare direttive da una pagina recintata verso l'output ritenuto affidabile. ### Igiene epistemica sulle fonti chiuse Un articolo protetto da paywall entrerebbe normalmente nel vault come un abstract di circa 1.500 caratteri, che il report citerebbe poi « come se fosse stato letto ». hyperresearch interroga Unpaywall ed Europe PMC alla ricerca di una copia legale ad accesso aperto e memorizza quel testo al suo posto, dichiarando la sostituzione in quattro punti (banner, frontmatter oa_, blocco JSON body_is_not_from_source: true, output della CLI). Si distingue un terzo stato: la nota « recuperata » (rescued), quando la fonte non ha potuto essere letta affatto — nothing_from_source: true, con un banner che dichiara che l'URL non è mai stato letto. Il sistema distingue così « ho letto questo », « ho letto un sostituto » e « non ho mai letto la fonte », e porta questa distinzione fino nell'artefatto. Avvertenza: Unpaywall può restituire un manoscritto accettato o un preprint sottomesso, da verificare prima di una citazione diretta. ### Il vault « Markdown è la verità, SQLite è la cache » — un indice interamente ricostruibile (hyperresearch sync), note markdown + frontmatter YAML leggibili senza lo strumento, versionabili con git, un ciclo di vita curato (draft → review → evergreen oppure stale → deprecated → archive) « che impedisce a un vault di diventare un deposito di pagine lette a metà », provenienza tramite --suggested-by con una regola di lint che rileva componenti disconnesse, hub e backlink. È l'architettura di questo corpus di monitoraggio tecnologico, scoperta in modo indipendente. Ciò che hyperresearch aggiunge in più: punteggio di qualità per fonte, audit di indipendenza, scansione delle ritrattazioni, ricerca semantica opzionale, stato di ciclo di vita esplicito. Uno spunto da prendere in prestito per scripts/. ### Ripresa delle corse e budget Ogni corsa ha uno spazio di lavoro isolato (research/runs/<tag>/) e un manifest che funge da « memoria durevole »: una corsa interrotta riprende esattamente dal passaggio morto (run resume). run init --budget 50blocca la corsa quando il limite viene superato « invece di lasciarla gonfiare silenziosamente »*. ### Riserve
L'affermazione sulla classifica non regge. Il README dichiara « attualmente in testa alla classifica DeepResearch-Bench RACE (benchmark interno) » con un grafico che la colloca davanti a Gemini e OpenAI Deep Research; la nota sotto il grafico dice « Proiezione prospettica da un pilota stratificato… La convalida da parte di terzi è in sospeso. » Una proiezione da un pilota autosomministrato non è una classifica. Citare l'impostazione dello studio, mai la classifica.
Dipendenza da Anthropic.« Funziona su modelli Anthropic tramite l'elenco dei subagenti » — Opus per i critici, il synthesizer e il patcher, Sonnet per i fetcher. Un porting su Codex è desiderato ma non realizzato.
Costo non quantificato.premier punta a 100-130 fonti e ~3-5 h, dissertation a 300-450 fonti e 4-8 h; il limite di budget è espresso in spesa equivalente API, non in costo osservato.
Limite riconosciuto dall'autore.« Il gate di lint rileva i fallimenti strutturali… Non può garantire l'accuratezza fattuale, quella resta una tua responsabilità. » La verifica strutturale non è accuratezza fattuale.
Confine invalicabile.« I CAPTCHA, la 2FA e i login non vengono mai risolti automaticamente » — consolidati e restituiti all'utente umano.
Superficie di dipendenza. 20 skill, 16 subagenti e una CLI che pilota un browser autenticato, su un repository con meno di quattro mesi di vita.
Dati chiave
una posizione di testa su DeepResearch-Bench RACE, presentata come proiezione prospettica auto-somministrata senza validazione terza