Blue Cloud Cyber / AI Research
Latent-Space Communication for Multi-Agent AI
What if AI agents could skip text entirely and hand each other their internal states? The question got under our skin, so we mapped out how it could actually work: the adapters, the maths, and the security questions the channel raises. This is our working design, grounded in the published research and marked up so you can see exactly which parts are established, which are our calls, and which are still open.
concept architecture / statused claims / cited sources
- Evidenced
Someone published this. The claim links straight to the papers.
- Proposed
Our design call: reasoned from the evidence, awaiting a demonstration.
- Open problem
Nobody has solved this yet, as far as the published record shows.
Every section ends in a claim ledger, and the build literally fails if the copy oversells.
Section 01
The channel problem
Text between agents is a lossy bottleneck. What it costs, and what the research says about skipping it.
Here's the thing about multi-agent systems today: two models that each hold rich, high-dimensional internal states talk to each other through... text. Every hop does the same wasteful dance. The sender compresses thousands of dimensions per token down to a sampled word sequence, ships it, and the receiver burns a full forward pass rebuilding an internal state from scratch. You pay twice: once in information (everything the sender represented but never put into words), and once in latency (token-by-token decoding is the slow part).
The interesting bit: research keeps showing the dance is optional. Interlat wires agents together through their final hidden states and beats fine-tuned chain-of-thought exchange, even across different models [1]. Ramesh et al. go further and splice one model's activations into another's forward pass mid-computation [2]. Cache-to-Cache trains projectors that merge one LLM's KV-cache straight into another's, with better accuracy than text exchange at a fraction of the latency[3]. All three are lab systems wired up for specific models. None of them is a protocol.
That's the gap this write-up digs into: what would a general latent-space protocol need to specify so that arbitrary models could talk this way? One distinction drives every design choice that follows. With open-weight models, you can tap and inject at any layer. With a proprietary model, you can't touch hidden states through a chat API at all, so the best a protocol can do is define the latent port a vendor might one day expose. Same maths in both worlds. Very different access.
Token channel
Latent channel
- Evidenced
Agents can exchange continuous latent states instead of decoded text, including across heterogeneous models. [1],[2]
- Evidenced
Direct KV-cache communication between paired LLMs beats text exchange on accuracy and latency in the cited experiments. [3]
- Proposed
A general protocol for latent exchange between arbitrary models, rather than per-pair research systems.
Section 02
Translation adapters
How two frozen models could actually understand each other: a shared hub space, trained adapters, and soft-token injection.
Frozen models already talk. Just not to each other.
This is the part that surprised us when we first connected the dots: translating between frozen models is mainstream engineering, it's just filed under "multimodal" instead of "agent communication". BLIP-2 trains a small Q-Former bridge that maps a frozen image encoder's latents into a frozen LLM's input space[4]. Flamingo grafts a whole vision stream into a frozen LLM through gated cross-attention, with tanh gates that start at zero so the host behaves normally until the bridge earns its influence [5]. Neither mechanism cares that the source model looks at pixels. Swap the image encoder for another language model and you have the core of a latent protocol.
Three places to plug in
Where the translated state enters the receiver matters more than what the adapter looks like inside. In rising order of invasiveness:
- Soft tokens. Map the incoming latents into the receiver's embedding space and prepend them as virtual context, prefix-tuning style [6]. No surgery on the receiver at all.
- Gated cross-attention. Flamingo's trick, at a few mid layers. Higher fidelity, but it needs weight access.
- KV-cache splicing. The tempting one. Section 03 explains why it's a per-pair hack, not a protocol surface.
Soft tokens win on deployability. They're the weakest channel and also the only one a proprietary vendor could plausibly expose as a stable interface, which makes them the realistic starting point.
Don't build N² adapters. Build a hub.
Pairwise adapters scale terribly: N models that all interoperate means a trained, calibrated, versioned artefact for every ordered pair. The alternative is a hub. Define one protocol-standard interlingua space (fixed dimension, fixed normalisation, versioned anchor set), and every model ships exactly two things: an encoder into it and a decoder out of it. Relative representations are what make the wire format survivable. Instead of raw coordinates, you send each state's similarities to a shared set of anchor inputs, which makes the message immune to rotations and rescalings of either model's private basis [7]. The parties agree on anchors, not on each other's coordinates. And the reason to believe a small bridge can work at all is the Platonic Representation Hypothesis: as models get more capable, their internal geometries appear to drift toward the same shared structure[8].
Training the bridge
The recipe itself is unglamorous. Run a big shared corpus through both models, harvest hidden states at the tap layers, and train the encoder-decoder pair with three objectives stacked:
- Behavioural distillation. The receiver's next-token distribution given the translated states should match what it does given the original text. This anchors "meaning preserved" to behaviour, not geometry.
- Contrastive alignment, so the interlingua has a usable notion of distance.
- Cycle consistency. Encode, decode back, compare. Stops the encoder quietly discarding information the training tasks never happen to exercise.
The model-stitching literature is the encouraging precedent here: even simple learned maps recover a surprising amount of cross-network compatibility [9].
Pairwise: N(N-1) trained adapters
Interlingua: 2N trained adapters
- Evidenced
A small trained bridge can translate a frozen encoder's latents into a frozen language model's input space. [4],[5]
- Evidenced
Continuous vectors prepended at the embedding interface steer a frozen model the way virtual tokens would. [6]
- Evidenced
Anchor-relative encodings make representations comparable across models without learning a map between their bases. [7]
- Evidenced
Representation geometries of large models converge toward a shared semantic structure as capability grows. [8]
- Proposed
A hub interlingua with one encoder and one decoder per model, replacing O(N²) pairwise adapters.
Section 03
The geometry of alignment
The maths that fights back: mismatched coordinate systems, weird activation geometry, and noise that snowballs across hops.
Nobody agreed on a coordinate system
Two models' hidden spaces don't share a basis, and nothing in training makes them. Representations are only defined up to symmetries: neuron permutations, rotations, and scales that the normalisation layers absorb. With a paired corpus, aligning two spaces is roughly a Procrustes problem (closed-form if you stick to rotations, a learned map otherwise). Without pairings it degrades to Gromov-Wasserstein optimal transport, which is a much worse day. And picking which layer of model A corresponds to which layer of model B is its own estimation problem, because semantic depth doesn't scale linearly with layer index. CKA over the layer-by-layer similarity grid is the standard tool for choosing tap points[10].
The spaces themselves are weird
Hidden states don't fill their ambient space. They huddle in narrow cones [11], and a handful of dimensions carry massive activations that act as internal bias machinery for the host model [12]. Naive cosine alignment breaks on both. The adapter has to whiten against per-layer statistics, and it has to learn to leave the outlier machinery alone: those coordinates are load-bearing at home and gibberish abroad.
Off the manifold, off the map
Mapping 4,096 dimensions to 8,192 is one linear layer; that part is easy. The catch is that valid activations live on a thin manifold inside the ambient space, and a translated vector that misses it produces undefined behaviour. Best case, garbage output. Worst case, an accidental jailbreak. So the adapter needs manifold regularisation during training (a density model or discriminator punishing off-distribution output), and the receiver needs a runtime out-of-distribution gate. Hold that thought: section 05 turns the same gate into a security control.
Why not just ship the KV-cache?
Because a KV-cache is the most model-specific object in the whole stack. Keys and values are rotated by absolute position under rotary embeddings and shaped by head count, head dimension and grouped-query layout, so a cache is unreadable across architectures without per-layer, position-aware re-basing. Cache-to-Cache makes that work by training projectors for specific model pairs[3]; nothing published generalises it. So the protocol default is layer-output hidden states or pooled representations, and KV exchange stays a fast path inside fleets of identical models.
Continuous channels drift
Discrete tokens come with free error correction: decoding snaps to the nearest vocabulary item, so small noise vanishes at every hop. Continuous vectors have no lattice to snap to, so noise compounds along a multi-hop chain. The compromise we like is borrowed from VQ-VAE: quantise messages against a shared, versioned codebook[13]. You give up a little fidelity and get back resynchronisation, compression, and (this matters in section 05) a channel you can enumerate and audit.
- Evidenced
Hidden states are comparable across networks only up to symmetries; learned stitching layers can bridge them. [9],[10]
- Evidenced
LLM representation spaces are anisotropic, with a few massive outlier activations that are load-bearing for the host model. [11],[12]
- Proposed
Manifold regularisation on the adapter, plus a discrete codebook bottleneck for resynchronisation on multi-hop chains. [13]
- Open problem
Cross-architecture KV-cache translation beyond specific trained pairs of models. [3]
Section 04
The protocol stack
The proposed four-layer stack, plus what a message on the wire would actually look like.
Per-pair research systems tangle everything together: transport, representation, meaning and policy all live in one training run. A protocol earns the name by pulling those apart, so each layer can version, evolve and be audited on its own. Four layers do it:
- L0Evidenced
Transport
Mutually authenticated channels, attestation of the sending stack, replay protection, and per-pair session binding. Assembled from standard security primitives.
- L1Proposed
Representation
The versioned interlingua spec: dimensions, anchor set, normalisation, quantisation codebook, and message framing with signed model and adapter hashes.
- L2Proposed
Semantics
Per-model encoder and decoder adapters bound to exact model hashes, capability negotiation at handshake, and drift detection against the calibration corpus.
- L3Open problem
Governance
Out-of-distribution gating, injection norm bounds, shadow decoding of every message, audit logs, and rate limits. Reliable oversight of the channel is unsolved.
On the wire, a message is a signed frame. The header pins the payload to the exact model and adapter that produced it, and to the position basis it was computed under. Skip that, and the geometry of section 03 makes the vector uninterpretable while the threat model of section 05 makes it dangerous.
- schema
- interlingua spec version, codebook version
- source
- model hash, adapter version
- tap
- layer index, position basis
- payload
- interlingua vectors or codebook indices
- gloss
- optional shadow-decode text, for audit
- sig
- signature over header and payload
A session opens like a TLS handshake with extra homework: negotiate the interlingua version, anchor-set version, codebook version, allowed insertion points and rate limits, then bind every message to the session so a latent crafted for one receiver can't be replayed at another. Attestation is what makes the proprietary case even thinkable. The vendor runs the encoder inside its own trust boundary (ideally in attested confidential compute), and only bottlenecked interlingua vectors ever leave it.
Deployment order just follows access. Open-weight fleets could try the full stack as a research exercise right now. Same-vendor fleets could bolt on KV fast paths behind the same framing. The cross-vendor case waits for a provider to expose an attested latent port, and there's no sign of one yet. The stack is arranged so waiting is cheap: the lower layers are useful scaffolding for the homogeneous cases while the governance layer matures.
- Proposed
A four-layer stack separating transport, representation, semantics and governance, so each can evolve and be audited independently.
- Proposed
Versioned interlingua and codebook specifications bound to exact model hashes, with drift detection against a calibration corpus.
- Open problem
Cross-vendor deployment: no provider currently exposes an attested latent port, so the proprietary case stays hypothetical.
Section 05
The threat model
Latents leak more than text and inject deeper than prompts. The threat model, and the defence each attack demands.
Start with the premise that changes everything: a transmitted hidden state is more sensitive than the text it encodes, not less. Embedding inversion reconstructs text from embeddings with unsettling fidelity [14], and a full hidden state carries more than a pooled embedding. So treat latent traffic as plaintext-equivalent for confidentiality, and then some: it leaks model-internal structure too, which turns an unmetered latent port into a free distillation oracle for whoever is listening. Encrypting the transport is table stakes. The interesting controls live above it.
Inbound is the scary direction. A received latent is, mechanically, an activation-steering vector [15], and it sails past every text-level safety filter because there is no text to filter. The defences are section 03's correctness machinery, promoted to security controls:
- An out-of-distribution gate that rejects vectors outside the expected interlingua distribution.
- A norm clamp, so no single message can out-shout the host's own activations.
- Zero-initialised injection gates: influence is earned during training, never assumed.
- Privilege separation: inbound latents are data, never instructions. The same rule you'd want for text, enforced at the injection site.
Outbound is a leakage-control problem. Train the encoder as an information bottleneck [16]: send statistics sufficient for the declared task, destroy the rest, and keep an adversarial reconstruction attacker in the training loop to keep it honest. Add quantisation on the wire and rate limits on the port. And call it what it is: attack-resistance engineering. Nothing here is a provable privacy guarantee, and if this page claimed one, its own build would fail.
The deepest problem is oversight, and we won't soften it. A latent channel deletes the human-readable transcript, and a high-capacity continuous channel is a gift to steganography, including agents colluding right past their monitor. What the design can offer is partial: shadow-decode every message into a logged text gloss, use the discrete codebook so the channel is an enumerable vocabulary rather than a firehose of floats, run anomaly detection on the traffic, and hard-require that high-stakes actions surface through the auditable text channel. A capable enough sender can still evade all of it. That sentence belongs in the threat model, not in the small print.
Steganography / Sender
A high-capacity continuous channel can smuggle content no monitor is looking for, including agent-to-agent collusion.
Discrete codebook bottleneck; shadow decode of every message; anomaly detection on latent traffic.
Interception and inversion / Channel
Captured latents can be reconstructed toward the underlying text, so the payload is plaintext-equivalent.
Information bottleneck at the encoder; quantisation; encrypted, mutually attested transport.
Injection as steering / Receiver
A crafted inbound vector is an activation-steering payload that no text-level filter ever inspects.
Out-of-distribution gate; norm clamp against host activations; zero-initialised injection gates.
- Evidenced
Text embeddings can be inverted back to near-verbatim text, so transmitted latents must be treated as plaintext-equivalent. [14]
- Evidenced
Injected vectors act as activation steering, a documented mechanism for redirecting model behaviour. [15]
- Proposed
A sender-side information bottleneck, receiver-side gating with norm bounds, and a shadow decode of every message into an auditable text gloss. [16]
- Open problem
Reliable oversight of a high-capacity continuous channel: steganographic collusion can evade any monitor named here.
Section 06
Open problems
Everything this design does not solve, in one honest list.
Every section above ends in a ledger; this one basically is one. These are the edges of the design, the places where the honest answer is that nobody (our team included) has a solution today. If any of these moves, the whole assessment moves with it. And if you can knock one down, or cite something we missed, we genuinely want to hear about it: the consultancy site knows how to reach us.
- Open problem
Access: proprietary models expose no hidden states, so the cross-vendor case depends on providers standing up attested latent ports.
- Open problem
Non-stationarity: every fine-tune shifts a model's activation distribution and silently invalidates its adapters.
- Open problem
Oversight: a continuous channel deletes the human-readable transcript, and shadow decoding cannot certify faithfulness.
- Open problem
Guarantees: leakage reduction here is attack-resistance engineering; nothing in this design offers provable privacy for latent traffic.
Section 07
The testbed
The plan to make all of this falsifiable: two open-weight models, residual-stream hooks, and a one-command local handoff rig.
A design argument only gets you so far. At some point you have to wire two real models together and watch what breaks. So that's what we're working on next: a small, deliberately unglamorous testbed that turns the sections above into things you can run.
- Pick a pairing. Two open-weight models from different families, a Qwen and a Llama class model, small enough to sit side by side on a single workstation GPU.
- Hook the residual streams. Standard interpretability tooling already exposes activations at every layer. The testbed taps both models at matched depths, with section 03's CKA grid choosing the layers.
- Train the first bridge. A soft-token adapter on a paired activation corpus, with section 02's behavioural-distillation objective as the pass/fail signal.
- Make it one command. The whole rig packaged as docker-compose or a single CLI, so spinning up a local latent-space handoff between two real models costs a coffee break, not a weekend.
The whole thing will be open source, and we'll publish the scorecard before the scores. Four questions decide whether the idea survives contact with reality: does the latent handoff beat plain text on real tasks, how much data does each message cost, does meaning survive a chain of hops, and do the security gates from section 05 actually stop a malicious vector? Once the repo exists, it gets linked right here.
- Proposed
A local handoff testbed pairing open-weight models from different families, with residual-stream taps and a trained soft-token bridge.
- Proposed
One-command packaging, docker-compose or a single CLI, so the rig runs on a workstation without setup ceremony.
- Proposed
Open source from the first commit, with the evaluation criteria published before any numbers.
Section 08
References
Numbered in order of first citation. Every green EVIDENCED marker above resolves to at least one of these.
- [1]Enabling Agents to Communicate Entirely in Latent Space
Du et al. · ACL 2026
- [2]Communicating Activations Between Language Model Agents
Ramesh et al. · arXiv 2025
- [3]Cache-to-Cache: Direct Semantic Communication Between Large Language Models
Fu et al. · ICLR 2026
- [4]
- [5]Flamingo: a Visual Language Model for Few-Shot Learning
Alayrac et al. · NeurIPS 2022
- [6]Prefix-Tuning: Optimizing Continuous Prompts for Generation
Li and Liang · ACL 2021
- [7]Relative Representations Enable Zero-Shot Latent Space Communication
Moschella et al. · ICLR 2023
- [8]The Platonic Representation Hypothesis
Huh et al. · ICML 2024
- [9]Revisiting Model Stitching to Compare Neural Representations
Bansal, Nakkiran and Barak · NeurIPS 2021
- [10]Similarity of Neural Network Representations Revisited
Kornblith et al. · ICML 2019
- [11]
- [12]Massive Activations in Large Language Models
Sun et al. · arXiv 2024
- [13]Neural Discrete Representation Learning
van den Oord et al. · NeurIPS 2017
- [14]Text Embeddings Reveal (Almost) As Much As Text
Morris et al. · EMNLP 2023
- [15]Representation Engineering: A Top-Down Approach to AI Transparency
Zou et al. · arXiv 2023
- [16]The Information Bottleneck Method
Tishby, Pereira and Bialek · Allerton 1999