Original Reddit post

I ran an experiment: three agents with different specialties (programming, math, RAG) plus a moderator debating one problem, each answering from its own sources, with citations. The problem: how do you make sure an agent writing sales reports never states a number that didn’t come from a real query? It didn’t work. The final proposal covered about 1.5 of my 4 success criteria. It handled missing data well (say so instead of guessing), but never explained how to trace each number to its query, how to verify it two ways, or how to measure that errors drop to zero. What went wrong, and what I took from each:

  1. Citations were real, but irrelevant. One agent cited a symbolic integration paper to justify a design choice about hashing. The citation technically supported the sentence, it just had nothing to do with the problem. Lesson: checking that a citation supports a claim isn’t enough. Most citation metrics measure support; relevance to the question needs its own check.
  2. The system cited its own output. Notes the agents had generated earlier (saved answers, minutes from a previous panel) were sitting in the knowledge base, and got retrieved and cited as evidence. Quality degrades in a loop: each saved answer becomes “proof” for the next one. Lesson: mark everything by origin. Anything generated by your agents is a hypothesis, never evidence; cite the human sources behind it instead.
  3. Always retrieving a fixed number of chunks. Every turn got 4 chunks, relevant or not. When nothing relevant existed, the agents cited whatever was there. Lesson: use a relevance floor. Returning fewer or zero chunks is better than handing the model filler it will cite. And one more that surprised me: the moderator added an idea nobody had proposed. The rule “don’t invent ideas” was enforced on the structured output, but not on the free text of the final summary. If a rule matters in the final deliverable, check it deterministically, not only with an LLM judge. The bigger lesson: I had been measuring the process (“% of turns with a citation” went up) instead of the task. The system learned to cite anything. Now the main metric is whether the final answer covers the user’s success criteria, with every claim backed by a relevant source. See it and try it yourself The full panel is public, failures included: the discussion, the sources each agent cited, the votes and the minutes. https://scrapevantageai.edatasoluciones.com/mesas/0f7432d6-c781-417f-9327-5959fe437203 You can also build your own: create agents in your own office, load your documents, videos or notes as their sources, and run a panel on your own problem. That’s the easiest way to see these failure modes (or not) with your own data. Start here: https://scrapevantageai.edatasoluciones.com/oficinas Some fixes are already live (documents split by section, cleaner PDF text, no echoing your own idea back, honest notes on what’s missing). The panel-specific ones above are being finished, and I’ll post a before and after when the next run is out. What’s worked for you? I’m curious how others handle these: How do you check citation relevance, not just support? Do you keep generated content (summaries, saved answers, agent notes) out of your retrieval, or treat it differently? Fixed top-K or a relevance threshold, and how did you pick the threshold? What metric finally told you your RAG was actually getting better? Happy to share more details on any of these. submitted by /u/FreakFrakFrok

Originally posted by u/FreakFrakFrok on r/ArtificialInteligence