Fusion vs Fan-Out
Can an AI agent correlate intelligence on its own?
An AI agent can call several tools and join their outputs in context, but that is concatenation, not correlation, and it pays tokens and latency on every call. The cross-layer joins that make intelligence useful only exist while one crawl holds every layer at once. Bassethound does the join at collection time and hands the agent a finished five-layer dossier in a single call.
Best move: give the agent one tool that returns the layers already correlated, not five tools it has to join itself.
Why it works: correlation lives in cross-layer joins that exist only while a single crawl holds every layer in memory. Fan-out hands the agent disconnected snapshots and asks it to rebuild joins that no longer exist.
Key takeaways
- An agent can call multiple sources, but joining their outputs in context is concatenation, not correlation. The cross-layer links are already gone.
- Correlation depends on evidence gathered in one pass: the same origin, the same certificate, the same crawl, all seen together.
- Fan-out costs the agent tokens, latency, and reconciliation logic for every layer, and it pays that cost on every call.
- Different tools disagree on freshness and identity, so an agent joining five snapshots inherits five different “as of” times.
- Bassethound returns five correlated layers from one crawl in a single call, so the agent reasons over a finished dossier instead of assembling one.
What is the difference between fetching and correlating?
Fetching gets you a value. Correlating tells you two values belong to the same thing. An agent that calls a tech-stack tool gets a list of frameworks. A call to a certificate index gets TLS data. A call to a firmographics API gets a company record. Each of those is a fetch. Correlation is the claim that the TLS SAN in the certificate record covers the same hostname that serves the AI SDK in the tech list, and that both belong to the company the firmographics API named. That join lives in no single response. The agent has to build it, and it can only build it from the fields each tool happened to expose. If the certificate source redacts the SAN, or the tech tool reports a bare domain with no host, the link never forms. Correlation done at collection time keeps the raw evidence side by side. One crawl reads the response header, the certificate, the loaded script, and the llms.txt in the same pass, so that pass records the join as a fact instead of reconstructing it as a guess. Fetching is cheap, and every vendor sells it. The value is in the edges between fetches, and those edges are what fan-out destroys.
Why can’t an agent just join five tool outputs?
It can attempt the join. The cost is what makes it a poor plan. Each separate MCP returns a document the agent must pull into context, parse, and reconcile against the others. Five tool calls mean five round trips, five schemas, five identity models, and five freshness windows. The agent spends tokens holding all of it in context. It spends latency waiting on the slowest source. It spends reasoning steps deciding whether the “example.com” in one tool is the same entity as the IP in another. None of that work produces new evidence. It only tries to recover the correlation that existed before five vendors split the data. And the join is fragile. A rename, a redirect, or a proxied origin breaks the key the agent joined on, and the agent gets no signal that the join went wrong. It will present a confident, wrong correlation in the same tone as a right one. Doing the work once, at the source, removes every one of those failure modes, because the layers never came apart in the first place.
What correlation is lost when you fan out?
The cross-layer signals, the ones worth having. An AI SDK served from the same origin that also publishes an llms.txt is a stronger “ships AI” signal than either fact alone. A vector-store hostname that matches a TLS SAN ties a backend service to the exact domain you asked about. An email-auth record that names the same vendor detected in the tech stack confirms the provider instead of guessing it. A security header and the certificate that share one response tell you the edge is configured as one system. Every one of these is an edge between layers, and edges exist only while a single crawl holds every layer at once. Fan-out collects the layers from different vendors, at different times, under different identity models. By the time the agent sees the five results, the between-layer edges are already gone. The agent receives five nouns and no verbs. It can guess at the edges, but a guess is not evidence, and the correlation it wanted was the whole reason to investigate in the first place.
What does correlation at collection time buy you?
One “as of” time across every layer, so the tech stack, the certificate, and the firmographics all describe the same moment. One identity resolution, done once at the source, instead of five reconciliations done in the agent’s context. Provenance you can trace, because each detection carries how it was found and what it sat next to. And a finished dossier the agent reasons over rather than assembles. That last shift is the point. The agent’s job moves from data engineering to judgment. It reads a correlated result and decides what to do with it, instead of burning its context window reconciling snapshots that disagree. A correlated collection also knows what it missed. When a component is fully server-side or proxied and the crawl cannot see it, one pass records the gap and reports it. Five separate tools each report only their own slice, so the agent cannot tell a real absence from a layer nobody looked at. Correlation at collection time gives you both the joins and an accurate map of what is missing.
When should an agent still fan out to separate tools?
When the layers are independent and you want depth one source cannot give. Reach for a certificate index for exhaustive certificate history, a scanning service for exposed ports and services, a firmographics corpus for org charts and headcount. Those are deep single-layer datasets, and no fused tool replaces them. Fan-out is the right move when you need the deepest possible view of one layer, and you accept that you are getting one layer. It is the wrong move when you need the layers joined, because joining after the fact throws away the correlation you were trying to build and charges the agent to rebuild a worse copy. The two approaches compose. Bassethound covers the correlated middle: five layers from one crawl, in one call, already joined. The agent starts from that dossier and reaches for a specialist corpus only when a single axis needs to go deeper than a fused pass can. Start correlated, then drill. Do not start scattered and hope to correlate later.
Bassethound perspective
The fashionable answer is “give the agent the tools and let it reason.” We think that is a category error dressed as autonomy. An agent is good at judgment and bad at data engineering, and fan-out asks it to do data engineering on every call: reconcile five schemas, resolve one entity across five identity models, pick a freshness window, and pay tokens for all of it. The correlation an agent would try to reconstruct in context already existed, for free, while a single crawl held every layer in memory. Fan-out throws it away and then bills the agent to rebuild a worse copy. A competitor selling five separate MCPs will tell you correlation is the agent’s job. It is not. Correlation is a collection-time property, and once you split the crawl across vendors, no amount of reasoning puts the between-layer edges back. That is the whole bet: fusion is the moat, not fan-out. We do the join once, at the source, and hand the agent a finished dossier it can reason over. And we stay honest about limits. A static crawl plus optional JS render can miss fully server-side or proxied components, and the dossier flags those gaps rather than guessing.
Sources
- Model Context Protocol documentation: https://modelcontextprotocol.io
- llms.txt specification: https://llmstxt.org
- Mozilla SSL configuration reference: https://ssl-config.mozilla.org
- Pinecone documentation: https://docs.pinecone.io
Frequently asked questions
Can an AI agent correlate a domain's intelligence by calling several tools?
It can try. It calls each tool, loads every result into context, and joins them by reasoning. That recovers some correlation and pays tokens, latency, and reconciliation cost on every call, and the join breaks on renames or proxied origins.
Why is one correlated call better than five separate ones?
One crawl holds every layer at once, so cross-layer joins are facts, not inferences. Five separate calls arrive with five schemas and five freshness windows, and the between-layer edges are gone before the agent sees the data.
Does Bassethound remove the need for specialist tools?
No. For the deepest single-layer view (exhaustive cert history, exposed services, org charts) reach for Censys, Shodan, or ZoomInfo. Bassethound covers the correlated middle so the agent starts from a dossier and goes deep only where one axis needs it.
What correlation can't an agent reconstruct after fan-out?
Cross-layer edges. An SDK and an llms.txt from the same origin, a vector-store hostname matching a TLS SAN, an email-auth vendor that matches the tech stack. Those only exist while one crawl holds all layers together.
Is correlation just concatenating tool outputs in the prompt?
No. Concatenation puts values next to each other. Correlation asserts they belong to the same entity, gathered at the same time. Only collection-time joins carry that guarantee. In-context joins are inferences the agent can get wrong without knowing it.