this post was submitted on 22 Jan 2026
373 points (93.9% liked)

Privacy

44741 readers
1103 users here now

A place to discuss privacy and freedom in the digital world.

Privacy has become a very important issue in modern society, with companies and governments constantly abusing their power, more and more people are waking up to the importance of digital privacy.

In this community everyone is welcome to post links and discuss topics related to privacy.

Some Rules

Related communities

much thanks to @gary_host_laptop for the logo design :)

founded 6 years ago
MODERATORS
 

Hello!

As a handsome local AI enjoyer™ you’ve probably noticed one of the big flaws with LLMs:

It lies. Confidently. ALL THE TIME.

(Technically, it “bullshits” - https://link.springer.com/article/10.1007/s10676-024-09775-5

I’m autistic and extremely allergic to vibes-based tooling, so … I built a thing. Maybe it’s useful to you too.

The thing: llama-conductor

llama-conductor is a router that sits between your frontend (OWUI / SillyTavern / LibreChat / etc) and your backend (llama.cpp + llama-swap, or any OpenAI-compatible endpoint). Local-first (because fuck big AI), but it should talk to anything OpenAI-compatible if you point it there (note: experimental so YMMV).

Not a model, not a UI, not magic voodoo.

A glass-box that makes the stack behave like a deterministic system, instead of a drunk telling a story about the fish that got away.

TL;DR: “In God we trust. All others must bring data.”

Three examples:

1) KB mechanics that don’t suck (1990s engineering: markdown, JSON, checksums)

You keep “knowledge” as dumb folders on disk. Drop docs (.txt, .md, .pdf) in them. Then:

  • >>attach <kb> — attaches a KB folder
  • >>summ new — generates SUMM_*.md files with SHA-256 provenance baked in
  • `>> moves the original to a sub-folder

Now, when you ask something like:

“yo, what did the Commodore C64 retail for in 1982?”

…it answers from the attached KBs only. If the fact isn’t there, it tells you - explicitly - instead of winging it. Eg:

The provided facts state the Commodore 64 launched at $595 and was reduced to $250, but do not specify a 1982 retail price. The Amiga’s pricing and timeline are also not detailed in the given facts.

Missing information includes the exact 1982 retail price for Commodore’s product line and which specific model(s) were sold then. The answer assumes the C64 is the intended product but cannot confirm this from the facts.

Confidence: medium | Source: Mixed

No vibes. No “well probably…”. Just: here’s what’s in your docs, here’s what’s missing, don't GIGO yourself into stupid.

And when you’re happy with your summaries, you can:

  • >>move to vault — promote those SUMMs into Qdrant for the heavy mode.

2) Mentats: proof-or-refusal mode (Vault-only)

Mentats is the “deep think” pipeline against your curated sources. It’s enforced isolation:

  • no chat history
  • no filesystem KBs
  • no Vodka
  • Vault-only grounding (Qdrant)

It runs triple-pass (thinker → critic → thinker). It’s slow on purpose. You can audit it. And if the Vault has nothing relevant? It refuses and tells you to go pound sand:

FINAL_ANSWER:
The provided facts do not contain information about the Acorn computer or its 1995 sale price.

Sources: Vault
FACTS_USED: NONE
[ZARDOZ HATH SPOKEN]

Also yes, it writes a mentats_debug.log, because of course it does. Go look at it any time you want.

The flow is basically: Attach KBs → SUMM → Move to Vault → Mentats. No mystery meat. No “trust me bro, embeddings.”

3) Vodka: deterministic memory on a potato budget

Local LLMs have two classic problems: goldfish memory + context bloat that murders your VRAM.

Vodka fixes both without extra model compute. (Yes, I used the power of JSON files to hack the planet instead of buying more VRAM from NVIDIA).

  • !! stores facts verbatim (JSON on disk)
  • ?? recalls them verbatim (TTL + touch limits so memory doesn’t become landfill)
  • CTC (Cut The Crap) hard-caps context (last N messages + char cap) so you don’t get VRAM spikes after 400 messages

So instead of:

“Remember my server is 203.0.113.42” → “Got it!” → [100 msgs later] → “127.0.0.1 🥰”

you get:

!! my server is 203.0.113.42 ?? server ip203.0.113.42 (with TTL/touch metadata)

And because context stays bounded: stable KV cache, stable speed, your potato PC stops crying.


There’s more (a lot more) in the README, but I’ve already over-autism’ed this post.

TL;DR:

If you want your local LLM to shut up when it doesn’t know and show receipts when it does, come poke it:

PS: Sorry about the AI slop image. I can't draw for shit.

PPS: A human with ASD wrote this using Notepad++. If it the formatting is weird, now you know why.

top 50 comments
sorted by: hot top controversial new old
[–] termaxima@slrpnk.net 3 points 3 hours ago

Hallucination is mathematically proven to be unsolvable with LLMs. I don't deny this may have drastically reduced it, or not, I have no idea.

But hallucinations will just always be there as long as we use LLMs.

[–] Zexks@lemmy.world 4 points 7 hours ago* (last edited 6 hours ago) (1 children)

This is awesome. Ive been working on something similar. Youre not likely to get much useful from here though. Anything AI is by default bad here

[–] SuspciousCarrot78@lemmy.world 1 points 7 hours ago

Well, to butcher Sinatra: if it can make it on Lemmy and HN, it can make it anywhere :)

[–] cypherpunks@lemmy.ml 2 points 6 hours ago (1 children)
[–] SuspciousCarrot78@lemmy.world 2 points 5 hours ago* (last edited 5 hours ago)

Spite based inference?

You dirty pirate hooker.

I don’t believe you.

[–] nagaram@startrek.website 4 points 8 hours ago (1 children)

This + Local Wikipedia + My own writings would be sick

[–] SuspciousCarrot78@lemmy.world 2 points 7 hours ago* (last edited 7 hours ago) (1 children)

I’m not claiming I “fixed” bullshitting. I said I was TIRED of bullshit.

So, the claim I’m making is: I made bullshit visible and bounded.

The problem I’m solving isn’t “LLMs sometimes get things wrong.” That’s unsolvable AFAIK. What I'm solving for is "LLMs get things wrong in ways that are opaque and untraceable".

That's solvable. That’s what hashes get you. Attribution, clear fail states and auditability. YOU still have to check sources if you care about correctness.

The difference is - YOU are no longer checking a moving target or a black box. You're checking a frozen, reproducible input.

That’s… not how any of this works…

Please don't teach me to suck lemons. I have very strict parameters for fail states. When I say three strikes and your out, I do mean three strikes and you're out. Quants ain't quants, and models ain't models. I am very particular in what I run, how I run it and what I tolerate.

[–] nagaram@startrek.website 4 points 7 hours ago (1 children)

I think you missed the guy this is targeted at.

Worry not though. I get it. There isn't a lot of nuance in the AI discussion anymore and the anti-AI people are quite rude these days about anything AI at all.

You did good work homie!

[–] SuspciousCarrot78@lemmy.world 1 points 6 hours ago* (last edited 5 hours ago)

Thank you! I appreciate you.

PS: Where's the guy this should be targeted at?

[–] ThirdConsul@lemmy.zip 5 points 11 hours ago (2 children)

I want to believe you, but that would mean you solved hallucination.

Either:

A) you're lying

B) you're wrong

C) KB is very small

[–] SuspciousCarrot78@lemmy.world 9 points 9 hours ago (1 children)

D) None of the above.

I didn’t "solve hallucination". I changed the failure mode. The model can still hallucinate internally. The difference is it’s not allowed to surface claims unless they’re grounded in attached sources.

If retrieval returns nothing relevant, the router forces a refusal instead of letting the model free-associate. So the guarantee isn’t “the model is always right.”

The guarantee is “the system won’t pretend it knows when the sources don’t support it.” That's it. That's the whole trick.

KB size doesn’t matter much here. Small or large, the constraint is the same: no source, no claim. GTFO.

That’s a control-layer property, not a model property. If it helps: think of it as moving from “LLM answers questions” to “LLM summarizes evidence I give it, or says ‘insufficient evidence.’”

Again, that’s the whole trick.

You don't need to believe me. In fact, please don't. Test it.

I could be wrong...but if I'm right (and if you attach this to a non-retarded LLM), then maybe, just maybe, this doesn't suck balls as much as you think it might.

Maybe it's even useful to you.

I dunno. Try it?

[–] ThirdConsul@lemmy.zip 1 points 8 hours ago (1 children)

So... Rag with extra steps and rag summarization? What about facts that are not rag retrieval?

[–] SuspciousCarrot78@lemmy.world 7 points 8 hours ago* (last edited 6 hours ago) (4 children)

Parts of this are RAG, sure

RAG parts:

  • Vault / Mentats is classic retrieval + generation.
  • Vector store = Qdrant
  • Embedding and reranker

So yes, that layer is RAG with extra steps.

What’s not RAG -

KB mode (filesystem SUMM path)

This isn’t vector search. It’s deterministic, file-backed grounding. You attach folders as needed. The system summarizes and hashes docs. The model can only answer from those summaries in that mode. There’s no semantic retrieval step. It can style and jazz around the answer a little, but the answer is the answer is the answer.

If the fact isn’t in the attached KB, the router forces a refusal. Put up or shut up.

Vodka (facts memory)

That’s not retrieval at all, in the LLM sense. It's verbatim key-value recall.

  • JSON on disk
  • Exact store (!!)
  • Exact recall (??)

Again, no embeddings, no similarity search, no model interpretation.

"Facts that aren’t RAG"

In my set up, they land in one of two buckets.

  1. Short-term / user facts → Vodka. That for things like numbers, appointments, lists, one-off notes etc. Deterministic recall, no synthesis.

  2. Curated knowledge → KB / Vault. Things you want grounded, auditable, and reusable.

In response the to the implicit "why not just RAG then"

Classic RAG failure mode is: retrieval is fuzzy → model fills gaps → user can’t tell which part came from where.

The extra "steps" are there to separate memory from knowledge, separate retrieval from synthesis and make refusal a legal output, not a model choice.

So yeah; some of it is RAG. RAG is good. The point is this system is designed so not everything of value is forced through a semantic search + generate loop. I don't trust LLMs. I am actively hostile to them. This is me telling my LLM to STFU and prove it, or GTFO. I know that's a weird way to operate maybe (advesarial, assume worst, engineer around issue) but that's how ASD brains work.

load more comments (4 replies)
[–] Kobuster@feddit.dk 1 points 10 hours ago (3 children)

Hallucination isn't nearly as big a problem as it used to be. Newer models aren't perfect but they're better.

The problem addressed by this isn't hallucination, its the training to avoid failure states. Instead of guessing (different from hallucination), the system forces a Negative response. That's easy and any big and small company could do it, big companies just like the bullshit

[–] SuspciousCarrot78@lemmy.world 6 points 8 hours ago

^ Yes! That. Exactly that. Thank you!

I don't like the bullshit...and I'm not paid to optimize for bullshit-leading-to-engagment-chatty-chat.

"LLM - tell me the answer and then go away. If you can't, say so and go away. Optionally, roast me like you've watched too many episodes of Futurama while doing it"

[–] Squizzy@lemmy.world 2 points 9 hours ago

Buuuuullshit. Asked different models about the ten highest summer transfer scorers and got wildly different answers. They then tried to explain why amd got more wrong numbers.

[–] ThirdConsul@lemmy.zip 1 points 9 hours ago* (last edited 9 hours ago)

A very tailored to llms strengths benchmark calls you a liar.

https://artificialanalysis.ai/articles/gemini-3-flash-everything-you-need-to-know (A month ago the hallucination rate was ~50-70%)

[–] domi@lemmy.secnd.me 5 points 11 hours ago (1 children)

I have a Strix Halo machine with 128GB VRAM so I'm definitely going to give this a try with gpt-oss-120b this weekend.

[–] SuspciousCarrot78@lemmy.world 1 points 9 hours ago (1 children)

Show off :)

You're self hosting that, right? I will not be held responsible for some dogey OpenRouter quant hosted by ToTaLlY NoT a ScAM LLC :)

[–] domi@lemmy.secnd.me 4 points 9 hours ago (1 children)

Of course, self hosted with llama-swap and llama.cpp. :)

[–] SuspciousCarrot78@lemmy.world 4 points 8 hours ago* (last edited 8 hours ago) (1 children)

This is the way. Good luck with OSS-120B. Those OSS models, they

  • really
  • like
  • bullet
  • points
[–] domi@lemmy.secnd.me 4 points 5 hours ago

gpt-oss is pretty much unusable without custom system prompt.

Sycophancy turned to 11, bullet points everywhere and you get a summary for the summary of the summary.

[–] pineapple@lemmy.ml 2 points 9 hours ago (1 children)

This is amazing! I will either abandon all my other commitments and install this tomorrow or I will maybe hopefully get it done in the next 5 years.

Likely accurate jokes aside this will be a perfect match with my obsidian volt as well as researching things much more quickly.

[–] SuspciousCarrot78@lemmy.world 3 points 9 hours ago

I hope it does what it I claim it does for you. Choose a good LLM model. Not one of the sex-chat ones. Or maybe, exactly one of those. For uh...research.

[–] Pudutr0n@lemmy.world 3 points 10 hours ago (1 children)

re: the KB tool, why not just skip the llm and do two chained fuzzy finds? (what knowledge base & keywords question keywords)

[–] SuspciousCarrot78@lemmy.world 2 points 9 hours ago* (last edited 7 hours ago) (1 children)

re: the KB tool, why not just skip the llm and do two chained fuzzy finds? (what knowledge base & question keywords)

Yep, good question. You can do that, it's not wrong. If your KB is small + your question is basically “find me the paragraph that contains X,” then yeah: two-pass fuzzy find will dunk on any LLM for speed and correctness.

But the reason I put an LLM in the loop is: retrieval isn’t the hard part. Synthesis + constraint are. What a LLM is doing in KB mode (basically) is this -

  1. Turns question into extraction task. Instead of “search keywords,” it’s: “given these snippets, answer only what is directly supported, and list what’s missing.”

  2. Then, rather that giving 6 fragments across multiple files, the LLM assembles the whole thing into a single answer, while staying source locked (and refusing fragments that don't contain the needed fact).

  3. Finally: it has "structured refusal" baked in. IOW, the whole point is that the LLM is forced to say "here are the facts I saw, and this is what I can't answer from those facts".

TL;DR: fuzzy search gets you where the info lives. This gets you what you can safely claim from it, plus an explicit "missing list".

For pure retreval: yeah - search. In fact, maybe I should bake in a >>grep or >>find commands. That would be the right trick for "show me the passage" not "answer the question".

I hope that makes sense?

[–] Pudutr0n@lemmy.world 3 points 6 hours ago (1 children)
[–] SuspciousCarrot78@lemmy.world 2 points 5 hours ago

Thank you. I appreciate you saying so!

[–] SuspciousCarrot78@lemmy.world 4 points 12 hours ago

Responding to my own top post like a FB boomer: May I make one request?

If you found this little curio interesting at all, please share in the places you go.

And especially, if you're on Reddit, where normies go.

I use to post heavily on there, but then Reddit did a reddit and I'm done with it.

https://lemmy.world/post/41398418/21528414

Much as I love Lemmy and HN, they're not exactly normcore, and I'd like to put this into the hands of people :)

PS: I am think of taking some of the questions you all asked me here (de-identified) and writing a "Q&A_with_drBobbyLLM.md" and sticking it on the repo. It might explain some common concerns.

And, If nothing else, it might be mildly amusing.

[–] 7toed@midwest.social 5 points 14 hours ago (1 children)

Okay pardon the double comment, but I now have no choice but to set this up after reading your explainations. Doing what TRILLIONS of dollars hasn't cooked up yet.. I hope you're ready by whatever means you deam, when someone else "invents" this

[–] SuspciousCarrot78@lemmy.world 8 points 14 hours ago

It's copyLEFT (AGPL-3.0 license). That means, free to share, copy, modify...but you can't roll a closed source version of it and sell it for profit.

In any case, I didn't build this to get rich (fuck! I knew I forgot something).

I built this to try to unfuck the situation / help people like me.

I don't want anything for it. Just maybe a fist bump and an occasional "thanks dude. This shit works amazing"

load more comments
view more: next ›