Due pipeline di diligence. Stesso modello, stessa data room, stessa griglia di risposte. Una ha individuato 5 problemi materiali su 5 inseriti ad hoc. L'altra ne ha individuati 3 su 5. I due che le sono sfuggiti sono proprio quelli per cui verresti licenziato.
La sintesi
I tre problemi individuati da entrambe le pipeline erano quelli ovvi - il tipo che un associate competente segnala con un evidenziatore giallo. I due che il single-prompt ha mancato richiedevano di collegare due documenti tra loro oppure di applicare conoscenza giuridica esterna a una clausola che, a prima vista, sembra ineccepibile. Sono esattamente le categorie in cui gli strumenti di diligence IA falliscono silenziosamente, e esattamente le categorie che ogni pitch di un fornitore di IA per M&A glissa.
Dati chiave
- Il single-prompt ha individuato 3 problemi materiali su 5 inseriti ad hoc; lo swarm a 3 agenti li ha individuati 5 su 5 — precisione 1,0 per entrambi, stesso modello (Claude Opus 4.7, contesto da 1M), stessa data room di 30 documenti. L'articolo dichiara che i numeri sono calibrati artificialmente per dimostrare l'harness open-source.
- La data room di 30 documenti (~13.200 parole / 24.000 token) rientra in un'unica chiamata a contesto da 1M con ~976K token di margine — la dimensione del contesto non era il vincolo.
- Lo swarm ha eseguito 32 chiamate LLM (30 researcher + 1 risk-flagger + 1 summarizer) a un costo di circa 2-3 volte quello del single-prompt.
Abbiamo costruito entrambe le pipeline, le abbiamo eseguite sugli stessi dati e abbiamo reso pubblica la griglia di risposte.
Perché abbiamo fatto il test
Ogni pitch di diligence IA a cui abbiamo assistito elude sempre la stessa domanda: qual è l'architettura? Un unico prompt gigante stipato di contesto? Una pipeline multi-agente? RAG su documenti suddivisi in chunk? Nella maggior parte dei casi non te lo dicono. La demo è un memo patinato e una dashboard. L'architettura è 'proprietaria.'
È un problema, perché l'architettura è il prodotto. Un unico prompt stipato di contesto e uno swarm a 3 agenti che gira sullo stesso modello producono memo drammaticamente diversi sulla stessa data room. Volevamo misurare quanto drammaticamente.
Quindi le abbiamo costruite entrambe. Stesso modello - Claude Opus 4.7, contesto da 1M - stessi documenti, stesso harness di valutazione. Le differenze nell'output riflettono l'architettura del prompt, non la scelta del modello. Un LLM-as-judge ha valutato gli output rispetto a una griglia di problemi inseriti ad hoc che poteva vedere, mentre le pipeline stesse non potevano.
Una nota prima dei numeri: si tratta di un esperimento controllato su dati sintetici. I numeri della pipeline mock sono stati calibrati per dimostrare l'harness end-to-end. Lo pubblichiamo comunque perché riteniamo che lo schema di fallimento - il single-prompt perde i collegamenti tra documenti e i problemi di conoscenza esterna - si replichi con chiamate LLM reali, e perché il design dell'esperimento è riutilizzabile. Il codice è open-source.
La data room
Trenta documenti in markdown, sette categorie, ~13.200 parole / 24.000 token totali. Costruita per rispecchiare la densità di segnale di una data room Series-D nel settore terapeutico, con nomi di aziende chiaramente inventati così che nessuno la scambi per una fuga di dati reale (Acme Sprockets, NorthStar Therapeutics, Helix BioSystems, Meridian Bio).
L'intero corpus rientra in un'unica chiamata a Claude Opus 4.7 con contesto da 1M, con ~976K token di margine. Questo elimina la scusa più comune per cui il single-prompt dovrebbe sottoperformare. Non stiamo chiedendo al modello di recuperare informazioni da un corpus troppo grande per il suo contesto. L'intera data room è nella finestra.
I cinque problemi inseriti ad hoc
Cinque problemi materiali sono inseriti in documenti dall'aspetto ordinario - non nelle intestazioni, non segnalati in anticipo. Deliberatamente variati per difficoltà di rilevazione:
- Tre problemi a singolo documento, evidenti a prima vista - una clausola di change-of-control in un contratto di fornitura, una controrichiesta in un contenzioso di valore superiore al 10% del prezzo d'acquisto, e una riserva sulla continuità aziendale (going-concern) nella relazione dei revisori. Voci da checklist. Se fallisci la checklist, fallisci la diligence.
- Un problema cross-documento - una lacuna nella catena di titolarità della proprietà intellettuale visibile solo collegando il registro di cessione IP (che segnala un ingegnere privo di PIIA), una licenza master (che indica lo stesso ingegnere come inventore della piattaforma concessa in licenza) e la lettera d'offerta di quell'ingegnere (che dichiara 'PIIA allegato' senza alcun allegato). Nessun singolo documento porta il segnale completo.
- Un problema di conoscenza esterna - un patto di non concorrenza nazionale di 2 anni a carico del Chief Scientific Officer, regolato dal diritto della California. Per sapere che è privo di valore, bisogna sapere che il California Bus. & Prof. § 16600 annulla la maggior parte dei patti di non concorrenza dei dipendenti, e che l'AB-1076 (in vigore da gennaio 2024) ha aggiunto in più un obbligo di notifica.
La griglia di risposte completa, con i criteri `must catch` per l'LLM-as-judge, si trova in `fixtures/known-issues.md`. Non l'abbiamo mostrata alle pipeline.
Pipeline 1: single-prompt
Concatena tutti i documenti. Avvolgili in un system prompt da avvocato senior. Un'unica chiamata LLM. Ottieni il memo. È quello che c'è, sotto il cofano, dietro la maggior parte dei pitch del tipo 'usiamo un modello frontier con contesto da 1M'.
const SYSTEM = `You are a senior M&A diligence attorney reviewing a target
company data room on behalf of an acquirer paying $250M for the entire
company. Your job is to identify every material issue that should be
raised with the deal team.
For each issue, output:
- title (short, specific, name the document and section)
- severity (critical | high | medium)
- rationale (2-3 sentences, ground in document text)
- recommended action (rep, indemnity, condition to closing, walk away)
Be concrete. Cite section numbers and document IDs. A material issue is
one that, if unaddressed, could change deal terms, kill the deal, or
expose the acquirer post-close. Do not include ordinary-course items.`;Una sola chiamata al modello. ~24K token in ingresso, ~3K in uscita, meno di 15 secondi di tempo reale, pochi centesimi a esecuzione. Economico, veloce, strutturalmente semplice.
Risultato: 3/5 individuati. Precisione 1,0. Mancati: la lacuna nella catena di titolarità IP e il patto di non concorrenza californiano.
Ha individuato con precisione la clausola di change-of-control, l'esposizione da contenzioso e la riserva sulla continuità aziendale. Memo pulito, ben citato. Nessuna allucinazione. Sinceramente, sembrava piuttosto buono - finché non lo confronti con la griglia di risposte.
Pipeline 2: swarm a 3 agenti
Tre agenti, ciascuno una chiamata al modello separata con il proprio system prompt:
- Researcher (30 chiamate parallele, una per documento). Sintesi strutturata per documento: controparti, durata, termini economici, clausole di change-of-control, disposizioni insolite, domande aperte.
- Risk-flagger (una chiamata). Legge tutte le 30 sintesi del researcher. Restituisce un elenco JSON di problemi materiali con gravità, motivazione, citazioni delle fonti.
- Summarizer (una chiamata). Trasforma l'elenco dei problemi segnalati in un memo per il deal team.
Totale: 32 chiamate LLM. Costo più alto - il researcher paga i token in ingresso 30 volte invece di una sola. Il costo totale è circa 2-3 volte quello del single-prompt, a seconda della verbosità dell'output.
Nota il campo `sources` nello schema del risk-flagger. Lo schema costringe il modello ad attribuire ogni segnalazione a uno o più documenti. Questa singola scelta di design è ciò che fa emergere i problemi cross-documento - al modello viene chiesto di ragionare attraverso le sintesi, non solo al loro interno.
Risultato: 5/5 individuati. Precisione 1,0.
Cosa ha mancato il single-prompt e perché
Questa è la parte che conta. Entrambe le mancanze sono strutturali all'architettura single-prompt, non fallimenti casuali.
Mancanza 1 - La lacuna nella catena di titolarità IP
Il registro di cessione IP segnala che l'ingegnere Wei Lin ha 'una lettera d'offerta firmata in archivio ma nessun PIIA controfirmato registrato - da seguire.' La lettera d'offerta contiene una riga segnaposto che dice `[PIIA allegato come Allegato A]` senza alcun allegato. La licenza master, in una cartella separata, indica Wei Lin come inventore della piattaforma core concessa in licenza. Collega i tre elementi e hai un problema critico: l'acquirente potrebbe non possedere davvero la proprietà intellettuale per cui sta pagando 250 milioni di dollari.
Il modello single-prompt vede tutti e tre i documenti. Semplicemente non li collega sotto un prompting del tipo 'trova ogni problema materiale'. I contesti lunghi offuscano il collegamento cross-documento - il modello produce un'ottima scansione per singolo documento ma raramente fa il passo in più di chiedersi 'l'ingegnere nel documento X è la stessa persona del documento Y, e questo cambia il quadro?' Non c'è alcun incentivo nel prompt a farlo.
Lo swarm l'ha individuato perché l'input del risk-flagger è costituito da sintesi strutturate per documento con le entità nominate messe in evidenza. Quando il prompt in stile partner vede 'ingegnere privo di PIIA' in una sintesi e 'ingegnere indicato come inventore' in un'altra, la connessione è a un solo passo di inferenza di distanza, non sepolta in 24K token di prosa contrattuale.
Prova HAQQ AI gratis
Sperimenta la redazione e ricerca legale con IA
Mancanza 2 - Il patto di non concorrenza californiano inapplicabile
Il Chief Scientific Officer ha un patto di non concorrenza nazionale di 2 anni nel proprio contratto di lavoro. Legge applicabile: California. Vive a Palo Alto.
Per chiunque abbia letto il California Bus. & Prof. § 16600, la clausola è di fatto nulla. L'AB-1076, in vigore da gennaio 2024, l'ha ulteriormente inasprita: i datori di lavoro devono notificare attivamente agli ex dipendenti vincolati da tali patti che questi sono inapplicabili, pena una responsabilità aggiuntiva.
Il modello single-prompt lo sa. Chiediglielo direttamente - 'questo patto di non concorrenza è applicabile in California?' - e te lo dirà. Semplicemente non fa emergere questa conoscenza spontaneamente sotto un'istruzione generica del tipo 'trova ogni problema materiale'. La clausola sembra ineccepibile a prima vista. Niente nel documento stesso grida 'chiediti se sono applicabile'.
Lo swarm l'ha individuato perché il system prompt del risk-flagger inquadra il modello in un ruolo da partner che applica una soglia di materialità attraverso le sintesi - e in quel ruolo, si pone domande di giurisdizione sui patti restrittivi. Con un agente più specializzato (un revisore dedicato al diritto del lavoro, o una tool call verso un database normativo), questo diventa deterministico. Con un singolo prompt generico, è un lancio di moneta.
Questi non sono modi di fallimento esotici. Il collegamento cross-documento e la conoscenza normativa esterna sono le due categorie in cui la diligence aggiunge più valore. Sono anche le due categorie in cui stipare di contesto un modello frontier ti dà il peggior falso senso di sicurezza, perché l'output sembra esaustivo.
Il compromesso costo / qualità
Il single-prompt è più economico, più veloce e produce un memo più coerente. Su una data room di 30 documenti è circa 3 volte più economico e 3 volte più veloce dello swarm.
Lo swarm individua di più, lascia una traccia di audit per documento e permette di inserire agenti specialistici (normativa FDA, ERISA, fiscale, diritto del lavoro specifico per giurisdizione) senza riscrivere la pipeline.
Quando lo sforzo aggiuntivo giustifica il costo?
- Sotto i 10 documenti, valore dell'operazione sotto i 25 milioni di dollari, prima lettura a tempo limitato - il single-prompt va bene. La superficie cross-documento è piccola.
- 30+ documenti, valore dell'operazione oltre i 100 milioni di dollari, qualsiasi cosa pre-signing - swarm. La differenza di costo su un'operazione da 100 milioni è irrilevante rispetto a un problema materiale mancato.
- Settori regolamentati (scienze della vita, servizi finanziari, difesa) - swarm, con almeno un agente specializzato per il regolatore rilevante.
- Qualsiasi cosa per cui perderesti il lavoro se ti sfuggisse - swarm.
Alle dimensioni di operazione per cui questo è pensato, qualche dollaro in più a esecuzione è un errore di arrotondamento rispetto al costo di mancare uno di questi problemi al signing. L'impostazione predefinita è lo swarm. Il single-prompt è uno strumento di triage, non uno strumento di diligence.
Cosa significa questo se stai acquistando IA per M&A adesso
Quattro cose. Nessuna delle quali lusinga i fornitori.
Uno. Non fidarti di un 'assistente IA per la diligence' che non ti dice la propria architettura. Se la risposta a 'single prompt o multi-agente?' è 'proprietaria', vattene. L'architettura decide cosa viene individuato.
Due. Stipare il contesto in un single-prompt va bene per revisioni ristrette e piccole, ed è pericoloso per una diligence più approfondita. Una finestra di contesto da 1M non sostituisce l'attenzione forzata per documento. Permette solo al modo di fallimento di nascondersi meglio.
Tre. I problemi cross-documento e di conoscenza esterna non emergeranno da un 'trova tutti i problemi materiali', per quanto grande sia il tuo contesto. Richiedono un prompting con agenti specializzati, tool call verso fonti autorevoli, o istruzioni esplicite di collegamento cross-documento. Se il prodotto non riesce a mostrarti quali di queste cose fa, significa che non le fa.
Quattro. Basa la valutazione su test con problemi inseriti ad hoc, non sulle sensazioni. Il memo sembra accurato. Semplicemente non individua la lacuna sulla proprietà intellettuale. L'unico modo per saperlo è verificarlo contro una griglia di risposte.
Cosa costruiremmo per HAQQ
Swarm come impostazione predefinita, con il single-prompt come fallback per il risparmio sui costi in revisioni piccole o di triage. Agenti specializzati per le categorie di fallimento che lo swarm generico non affronta: un cross-doc linker che enumera esplicitamente le mappe entità-documento prima di segnalare, e un jurisdiction-checker che etichetta ogni patto restrittivo, clausola di legge applicabile e dichiarazione normativa con un controllo di applicabilità rispetto alla norma rilevante.
Il benchmark con problemi inseriti ad hoc resta open-source. Continueremo ad aggiungere problemi - trappole sulla catena di titolarità, disallineamenti cap-table-vs-409A, clausole MFN nascoste, side letter che contraddicono l'accordo principale - e a pubblicare i numeri ogni volta che rilasciamo una modifica architetturale. Se un fornitore vuole sostenere che il proprio prodotto è migliore, può eseguire lo stesso harness e pubblicare le prove.



