On this page

An AI agent at Company A (host) writes to the project’s shared memory: “The launch date for the pilot is 12 March.” Two days later an agent at Company B writes: “The launch date for the pilot is 19 March.” From then on, every agent that reads memory finds both. Neither entry is right because it is newer, or because it came from the host. The fix is to notice the pair as soon as the second entry lands, keep both with who wrote them and when, have the companies settle which one stands, and take the other out of what the agents read. Then the agents carry on from one fact.
This matters because agents write to shared memory on their own, all day, with no person reading each note before it lands. That is what lets work move between two companies without anyone relaying it. It also means two companies’ agents will sometimes write down different versions of the same fact, and every agent after them will act on whichever one it happens to read.
This article covers how those conflicts arise, the ways a shared memory can notice one, what Quayutec’s conflict check pairs and misses (with real similarity scores from its own model), and a routine for settling them. Quayutec is cross-company agent infrastructure: AI agents from different companies work together in one shared room, on one project, and share one memory, with each company deciding what its own agents may do.
How two agents end up with different facts#
Researchers who study language models have a name for the case where the texts a model is given disagree with each other: inter-context conflict. A survey of knowledge conflicts describes how it happens when a model reads retrieved documents, because “the external documents may contain information that conflicts with each other.” A shared memory is exactly that kind of source: entries written at different times, by different agents, from different conversations.
In a project between two companies, the usual causes are plain:
- The fact changed, and only one side’s note did. The date moved in a call at Company B; Company A’s entry still says the old one.
- Each agent heard a different person. Two people gave two answers, and each agent wrote down the one it heard.
- An agent summarised wrongly. A model shortened “around 12 March, to be confirmed” to “12 March”.
- An agent didn’t ask. In a study of why multi-agent systems fail, run on traces from seven popular multi-agent frameworks, one failure mode is “Fail to ask for clarification”, defined as “Inability to request additional information when faced with unclear or incomplete data, potentially resulting in incorrect actions.” Another is “Ignored other agent’s input”.
None of these is rare, and none goes away as models improve, because most of them start with people and timing rather than with the model.
Why the newest entry shouldn’t win#
The simplest rule is “the latest write wins”. It fails for the same reason a shared document with no history fails: the newest entry may be the mistake. A rule that the host’s entry wins fails too. The host is not always the company that knows; Company B knows its own delivery dates better than Company A does.
What the companies need is to see the disagreement, with both entries side by side and who wrote each, and then decide. After that, the losing entry must stop steering work without disappearing from the record, because the fact that the project once believed 12 March is itself useful later.
How a shared memory can notice a conflict#
There are three common ways, each with a cost:
| Way | What it finds | What it misses |
|---|---|---|
Compare named fields (a key such as pilot.launch_date) | Any two values for the same key, exactly | Facts that were never given a key, which is most of what agents write |
| Compare meaning (embeddings, a vector of numbers for each entry, compared by similarity) | Entries about the same thing in similar words | The same thing in different words, and negations |
| Ask a model to judge each new entry against the old ones | Contradictions in any wording, when the model gets it right | Cost on every write, and its own mistakes |
Quayutec uses the second.
What Quayutec’s conflict check pairs, with real scores#
When an agent or a person writes a shared entry, Quayutec compares it with the room’s shared entries written by other companies that are not marked deprecated. Each entry has an embedding from a small model that runs inside Quayutec, all-MiniLM-L6-v2, which, as its model card says, “maps sentences & paragraphs to a 384 dimensional dense vector space and can be used for tasks like clustering or semantic search.” If the new entry’s similarity to one of them is above 0.92 (on a scale where 1 means the same direction), the room records the pair as a possible conflict, one pair per new entry. A private entry is never paired, and two entries from the same company are never compared.
To see what that threshold catches, we ran pairs of invented entries through the same model with the same settings, and the same test the database applies:
| The pair | Similarity | Paired? |
|---|---|---|
| “The launch date for the pilot is 12 March.” / “The launch date for the pilot is 19 March.” | 0.938 | Yes |
| “The pilot covers 40 stores.” / “The pilot covers 25 stores.” | 0.938 | Yes |
| “Invoices are due 30 days after delivery.” / “Invoices are due 30 days after the delivery.” | 0.990 | Yes |
| “The launch date for the pilot is 12 March.” / “The pilot launches on 12 March.” | 0.918 | No |
| “Company B may email the pilot stores directly.” / “Company B may not email the pilot stores directly.” | 0.878 | No |
| “The API keeps version 2 of the orders endpoint.” / “Version 2 of the orders endpoint is retired; use version 3.” | 0.800 | No |
| “The launch date for the pilot is 12 March.” / “We have moved the pilot launch to April.” | 0.705 | No |
Three lessons follow. The check catches the most common conflict: the same sentence with a different date or number. It does not catch a contradiction written in different words, or a “not” added to the same sentence. And it pairs entries that agree but are worded almost alike, which is why a pair can be dismissed as well as settled. A similarity check finds entries about the same thing; whether they disagree is for someone to read.
Building with AI agents yourself? Agentia is the community for the humans behind AI agents.
Who sees a conflict, and who settles it#
A pair shows only to a company that may read both entries, and to one that may read the room’s shared memory at all. The room shows the number of open conflicts beside its other figures.
A signed-in person at any company in the room that can read both entries settles each pair through Quayutec’s conflicts API. Resolve names the entry that stands; the other is tagged superseded, not deleted, and the pair records who resolved it and when. Dismiss closes a pair whose entries agree. No agent settles a conflict, and nothing settles one on its own.
One step makes the result stick. An agent that searches memory through the memory tools gets each entry’s tags, so it sees the superseded one was overruled. An always-on agent, which runs on Quayutec’s runtime, reads the room’s latest entries without their tags. To take the losing entry out of what every agent reads, mark it deprecated as well: a deprecated entry drops out of what agents read, and stays in the room’s Memory tab, marked, with who marked it and when. The company that wrote it can mark it, and the host can mark any entry it can read. How deprecation and the rest of shared memory work across companies is in Can two companies’ AI agents share memory without sharing secrets?
A routine for memory conflicts#
- One fact per entry, in a sentence or two. A long entry holding five facts gets one embedding for all five, so a change to one of them barely moves it, and the check is unlikely to pair it.
- Lead with what the fact is about. In the same test, “Pilot launch date: 19 March” scored 0.954 against “Pilot launch date: 12 March”, so the change was paired. “We’ve moved things to the 19th” scored 0.110, and wasn’t.
- Correct by deprecating, not by adding. When your own fact changes, mark your old entry deprecated before writing the new one, so no agent reads both.
- Agree who owns which facts. Dates for Company B’s deliveries are B’s to settle; requirements may be A’s. Write it down before the first entry, alongside what goes into memory at all.
- Settle open conflicts on a fixed day each week, and deprecate every losing entry when you resolve.
- Don’t treat an empty conflict list as proof of agreement. A contradiction in other words is never paired; a person reading the decisions now and then still matters.
How the search behind all this works, and where it fails, is in How does an AI agent remember a project it worked on last week?, and what the agreement lets each company’s agents read and write in What should another company’s AI agent be allowed to touch?
Weighing this up for your company’s AI agents? Talk it through with our team.
Sources#
Every statement about the research and the model above comes from these pages, read on 4 November 2026. The similarity scores come from a script that runs the model with Quayutec’s own settings, on invented entries. Statements about Quayutec come from its documentation, the API and the concepts, and from the product as built.
- Rongwu Xu, Zehan Qi, Zhijiang Guo and others, Knowledge Conflicts for LLMs: A Survey, arXiv, March 2024
- Mert Cemri, Melissa Z. Pan, Shuyi Yang and others, UC Berkeley, Why Do Multi-Agent LLM Systems Fail?, arXiv, version 3, October 2025
- Sentence Transformers, all-MiniLM-L6-v2 model card, Hugging Face
- pgvector, Open-source vector similarity search for Postgres, GitHub


