I'm tired of LLM bullshitting. So I fixed it.
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” - link.springer.com/article/10.1…
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).
I tried to make 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— generatesSUMM_*.mdfiles 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 ip→ 203.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:
- Primary (Codeberg): codeberg.org/BobbyLLM/llama-co…
- Mirror (GitHub): github.com/BobbyLLM/llama-cond…
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.
llama-conductor
Route workflows, not models. Glass-box, not black-box. Squash LLM nonsense.Codeberg.org

itkovian
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to itkovian • • •itkovian
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to itkovian • • •Good question.
It doesn’t “correct” the model after the fact. It controls what the model is allowed to see and use before it ever answers.
There are basically three modes, each stricter than the last. The default is "serious mode" (governed by serious.py). Low temp, punishes chattiness and inventiveness, forces it to state context for whatever it says.
Additionally, Vodka (made up of two sub-modules - "cut the crap" and "fast recall") operate at all times. Cut the crap trims context so the model only sees a bounded, stable window. You can think of it like a rolling, summary of what's been said. That summary is not LLM generated summary either - it's concatenation (dumb text matching), so no made up vibes.
Fast recall OTOH stores and recalls facts verbatim from disk, not from the model’s latent memory.
It writes what you tell it to a text file and then when you ask about it, spits it back out verbatim ((!! / ??)
And that's the baseline
In KB mode, you make the LLM answer based on the above settings + with re
... Show more...Good question.
It doesn’t “correct” the model after the fact. It controls what the model is allowed to see and use before it ever answers.
There are basically three modes, each stricter than the last. The default is "serious mode" (governed by serious.py). Low temp, punishes chattiness and inventiveness, forces it to state context for whatever it says.
Additionally, Vodka (made up of two sub-modules - "cut the crap" and "fast recall") operate at all times. Cut the crap trims context so the model only sees a bounded, stable window. You can think of it like a rolling, summary of what's been said. That summary is not LLM generated summary either - it's concatenation (dumb text matching), so no made up vibes.
Fast recall OTOH stores and recalls facts verbatim from disk, not from the model’s latent memory.
It writes what you tell it to a text file and then when you ask about it, spits it back out verbatim ((!! / ??)
And that's the baseline
In KB mode, you make the LLM answer based on the above settings + with reference to your docs ONLY (in the first instance).
When you >>attach , the router gets stricter again. Now the model is instructed to answer only from the attached documents.
Those docs can even get summarized via an internal prompt if you run >>summ new, so that extra details are stripped out and you are left with just baseline who-what-where-when-why-how.
The SUMM_*.md file come SHA-256 provenance, so every claim can be traced back to a specific origin file (which gets moved to a subfolder)
TL;DR: If the answer isn’t in the KB, it’s told to say so instead of guessing.
Finally, Mentats mode (Vault / Qdrant). This is the “I am done with your shit" path.
It's all of the three above PLUS a counter-factual sweep.
It runs ONLY on stuff you've promoted into the vault.
What it does is it takes your question and forms in in a particular way so that all of the particulars must be answered in order for there to BE an answer. Any part missing or not in context? No soup for you!
In step 1, it runs that past the thinker model. The answer is then passed onto a "critic" model (different llm). That model has the job of looking at the thinkers output and say "bullshit - what about xyz?".
It sends that back to the thinker...who then answers and provides final output. But if it CANNOT answer the critics questions (based on the stored info?). It will tell you. No soup for you, again!
TL;DR:
The “corrections” happen by routing and constraint. The model never gets the chance to hallucinate in the first place, because it literally isn’t shown anything it’s not allowed to use. Basic premise - trust but verify (and I've given you all the tools I could think of to do that).
Does that explain it better? The repo has a FAQ but if I can explain anything more specifically or clearly, please let me know. I built this for people like you and me.
itkovian
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to itkovian • • •God, I hope so. Else I just pissed 4 months up the wall and shouted a lot of swears at my monitor for nada :)
Let me know if it works for you
itkovian
in reply to SuspciousCarrot78 • • •FrankLaskey
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to FrankLaskey • • •On the stuff you use the pipeline/s on? About 85-90% in my tests.
Just don't GIGO (Garbage in, Garbage Out) your source docs...and don't use a retarded LLM.
That's why I recommend Qwen3-4 2507 Instruct. It does what you tell it to (even the abilterated one I use).
Random Sexy-fun-bot900-HAVOK-MATRIX-1B.gguf? I couldn't say :)
SuspciousCarrot78
in reply to FrankLaskey • • •Comment removed by (auto-mod?) cause I said sexy bot. Weird.
Restating again:
On the stuff you use the pipeline/s on? About 85-90% in my tests. Just don't GIGO (Garbage in, Garbage Out) your source docs...and don't use a dumb LLM. That's why I recommend Qwen3-4 2507 Instruct. It does what you tell it to (even the abilterated one I use).
7toed
in reply to SuspciousCarrot78 • • •Please elaborate, that alone piqued my curiosity. Pardon me if I couldve searched
SuspciousCarrot78
in reply to 7toed • • •Yes of course.
Abliterated is a technical LLM term meaning "safety refusals removed".
Basically, abliteration removes the security theatre that gets baked into LLM like chatGPT.
I don't like my tools deciding for me what I can and cannot do with them.
I decide.
Anyway, the model I use has been modified with a newer, less lobotomy inducing version of abliteration (which previously was a risk).
huggingface.co/DavidAU/Qwen3-4…
According to validation I've seen online (and of course, I tested it myself), it's lost next to zero "IQ" and dropped refusals by about...90%.
... Show more...In fact, in some domains it's actually a touch smarter, because it doesn't try to give you "perfect" model answers. Maths reasoning for example,
Yes of course.
Abliterated is a technical LLM term meaning "safety refusals removed".
Basically, abliteration removes the security theatre that gets baked into LLM like chatGPT.
I don't like my tools deciding for me what I can and cannot do with them.
I decide.
Anyway, the model I use has been modified with a newer, less lobotomy inducing version of abliteration (which previously was a risk).
huggingface.co/DavidAU/Qwen3-4…
According to validation I've seen online (and of course, I tested it myself), it's lost next to zero "IQ" and dropped refusals by about...90%.
In fact, in some domains it's actually a touch smarter, because it doesn't try to give you "perfect" model answers. Maths reasoning for example, where the answer is basically impossible, it will say "the answer is impossible. Here's the nearest workable solution based on context" instead of getting stuck in a self-reinforcing loop, trying to please you, and then crashing.
In theory, that means you could ask it for directions on how to cook Meth and it would tell you.
I'm fairly certain the devs didn't add the instructions for that in there, but if they did, the LLM won't "sorry, I can't tell you, Dave".
Bonus: with my harness over the top, you'd have an even better idea if it was full of shit (it probably would be, because, again, I'm pretty sure they don't train LLM on Breaking Bad).
Extra double bonus: If you fed it exact instructions for cooking meth, using the methods I outlined? It will tell you exactly how to cook Meth, 100% of the time.
Say...you...uh...wanna cook some meth? :P
PS: if you're more of a visual learner, this might be a better explanation
DavidAU/Qwen3-4B-Hivemind-Instruct-NEO-MAX-Imatrix-GGUF at main
huggingface.co7toed
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to 7toed • • •DoctimusLime
in reply to SuspciousCarrot78 • • •BaroqueInMind
in reply to SuspciousCarrot78 • • •I have no remarks, just really amused with your writing in your repo.
Going to build a Docker and self host this shit you made and enjoy your hard work.
Thank you for this!
SuspciousCarrot78
in reply to BaroqueInMind • • •Thank you ❤
Please let me know how it works...and enjoy the >>FR settings. If you've ever wanted to trolled by Bender (or a host of other 1990s / 2000s era memes), you'll love it.
Diurnambule
in reply to BaroqueInMind • • •SuspciousCarrot78
in reply to Diurnambule • • •There are literally dozens of us. DOZENS!
I'm on a potato, so I can't attach it to something super sexy, like a 405B or a MoE.
If you do, please report back.
PS: You may see (in the docs) occasional references that slipped passed me to MoA. That doesn't stand for Mixture of Agents. That stood for "Mixture of Assholes". That's always been my mental model for this.
Or, in the language of my people, this was my basic design philosophy:
YOU (question)-> ROUTER+DOCS (Ah shit, here we go again. I hate my life)
|
ROUTER+DOCS -> Asshole 1: Qwen ("I'm right")
|
ROUTER+DOCS -> Asshole 2: Phi ("No, I'm right")
|
ROUTER+DOCS -> Asshole 3: Nanbeige ("Idiots, I'm right!")
|
ROUTER+DOCS (Jesus, WTF. I need booze now) <- (all assholes)
|
--> YOU (answer)
(this could have been funnier in the ASCII actually worked but man...Lemmy borks that)
EDIT: If you want to be boring about it, it's more like this
pastebin.com/gNe7bkwa
PS: If you like it, let other people in other places know about it.
llama-conductor goes brrrr - Pastebin.com
PastebinTerces
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to Terces • • •SpaceNoodle
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to SpaceNoodle • • •LOL. Don't do that. Wikipedia is THE nosiest source.
Would you like me to show you HOW and WHY the SUMM pathway works? I built it after I tried a "YOLO wikipedia in that shit - done, bby!". It...ended poorly
MNByChoice
in reply to SuspciousCarrot78 • • •Not OP, but random human.
Glad you tried the "YOLO Wikipeida", and are sharing that fact as it saves the rest of us time. :)
SuspciousCarrot78
in reply to MNByChoice • • •SpaceNoodle
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to SpaceNoodle • • •Of course. Here is a copy paste from my now defunct reddit account. Feel free to follow the pastebin links to see what v1 of SUMM did. Whats in the router uses is v1.1:
########
My RAG
I've recently been playing around with making my SLM's more useful and reliable. I'd like to share some of the things I did, so that perhaps it might help someone else in the same boat.
Initially, I had the (obvious, wrong) idea that "well, shit, I'll just RAG dump Wikipedia and job done". I trust it's obvious why that's not a great idea (retrieval gets noisy, chunks lack context, model spends more time sifting than answering).
Instead, I thought to myself "why don't I use the Didactic Method to teach my SLMs what the ground truth is, and then let them argue from there?". After all, Qwen3-4B is pretty good with its reasoning...it just needs to not start from a position of shit.
The basic work flow -
TLDR
- Use a strong model to write clean, didactic notes from source docs.
- Distill + structure those notes with a local 8B model.
... Show more...Of course. Here is a copy paste from my now defunct reddit account. Feel free to follow the pastebin links to see what v1 of SUMM did. Whats in the router uses is v1.1:
########
My RAG
I've recently been playing around with making my SLM's more useful and reliable. I'd like to share some of the things I did, so that perhaps it might help someone else in the same boat.
Initially, I had the (obvious, wrong) idea that "well, shit, I'll just RAG dump Wikipedia and job done". I trust it's obvious why that's not a great idea (retrieval gets noisy, chunks lack context, model spends more time sifting than answering).
Instead, I thought to myself "why don't I use the Didactic Method to teach my SLMs what the ground truth is, and then let them argue from there?". After all, Qwen3-4B is pretty good with its reasoning...it just needs to not start from a position of shit.
The basic work flow -
TLDR
Details
(1) Create a "model answer" --> this involves creating a summary of source material (like say, markdown document explaining launch flags for llama.cpp). You can do this manually or use any capable local model to do it, but for my testing, I fed the source info straight in Gippity 5 with specfic "make me a good summary of this, hoss" prompt
Like so: pastebin.com/FaAB2A6f
(2) Save that output as SUMM-llama-flags.md. You can copy paste it into Notepad++ and do it manually if need to.
(3) Once the summary has been created, use a local "extractor" and "formatter" model to batch extract high yield information (into JSON) and then convert that into a second distillation (markdown). I used Qwen3-8b for this.
Extract prompt pastebin.com/nT3cNWW1
Format prompt (run directly on that content after model has finished its extraction) pastebin.com/PNLePhW8
(4) Save that as DISTILL-llama-flags.md.
(5) Drop Temperature low (0.3) and made Qwen3-4B cut the cutsey imagination shit (top_p = 0.9, top_k=0), not that it did a lot of that to begin with.
(6) Import DISTILL-llama-flags.md into your RAG solution (god I love markdown).
Once I had that in place, I also created some "fence around the law" (to quote Judaism) guard-rails and threw them into RAG. This is my question meta, that I can append to the front (or back) of any query. Basically, I can ask the SLM "based on escalation policy and the complexity of what I'm asking you, who should answer this question? You or someone else? Explain why."
pastebin.com/rDj15gkR
(I also created another "how much will this cost me to answer with X on Open Router" calculator, a "this is my rig" ground truth document etc but those are sort of bespoke for my use-case and may not be generalisable. You get the idea though; you can create a bunch of IF-THEN rules).
The TL:DR of all this -
With a GOOD initial summary (and distillation) you can make a VERY capable little brain, that will argue quite well from first principles. Be aware, this can be a lossy pipeline...so make sure you don't GIGO yourself into stupid. IOW, trust but verify and keep both the source material AND SUMM-file.md until you're confident with the pipeline. (And of course, re-verify anything critical as needed).
I tested, and retested, and re-retest a lot (literally 28 million tokens on OR to make triple sure), doing a bunch of adversarial Q&A testing, side by side with GPT5, to triple check that this worked as I hoped it would.
The results basically showed a 9/10 for direct recall of facts, 7-8/10 for "argue based on my knowledge stack" or "extrapolate based on knowledge stack + reference to X website" and about 6/10 on "based on knowledge, give me your best guess about X adjacent topic". That's a LOT better than just YOLOing random shit into Qdrant...and orders of magnitude better than relying on pre-trained data.
Additionally, I made this this cute little system prompt to give me some fake confidence -
Tone: neutral, precise, low-context.Rules:Answer first. No preamble. ≤3 short paragraphs.Minimal emotion or politeness; no soft closure.Never generate personal memories, subjective experiences, or fictional biographical details.Emotional or expressive tone is forbidden.Cite your sourcesEnd with a declarative sentence.Append: "Confidence: [percent] | Source: [Pretrained | Deductive | User | External]".\^ model reported, not a real statistical analysis. Not really needed for Qwen model, but you know, cute.
The nice thing here is, as your curated RAG pile grows, so does your expert system’s "smarts", because it has more ground truth to reason from. Plus, .md files are tiny, easy to demarcate, highlight important stuff (enforce semantic chunking) etc.
The next step:
Build up the RAG corpus and automate steps 1-6 with a small python script, so I don't need to baby sit it. Then it basically becomes "drop source info into folder, hit START, let'er rip" (or even lazier, set up a Task Scheduler to monitor the folder and then run "Amazing-python-code-for-awesomeness.py" at X time).
Also, create separate knowledge buckets. OWUI (probably everything else) let's you have separate "containers" - right now within my RAG DB I have "General", "Computer" etc - so I can add whichever container I want to a question, ad hoc, query the whole thing, or zoom down to a specific document level (like my DISTILL-llama.cpp.md)
I hope this helps someone! I'm just noob but I'm happy to answer whatever questions I can (up to but excluding the reasons my near-erotic love for .md files and notepad++. A man needs to keep some mystery).
EDIT: Gippity 5 made a little suggestion to that system prompt that turns it from made up numbers to something actually useful to eyeball. Feel free to use; I'm trialing it now myself
##THE GIPPTY 5 PIPE - USE WHICHEVER SECTION YOU NEED##You are a conversation - Pastebin.com
PastebinSlimePirate
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to SlimePirate • • •SlimePirate
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to SlimePirate • • •tomenzgg
in reply to SuspciousCarrot78 • • •Pudutr0n
in reply to SuspciousCarrot78 • • •frightful_hobgoblin
in reply to SlimePirate • • •db0
in reply to SuspciousCarrot78 • • •AI Horde
aihorde.netSuspciousCarrot78
in reply to db0 • • •db0
in reply to SuspciousCarrot78 • • •FauxLiving
in reply to db0 • • •AI Horde has a OpenAI compatible REST API (oai.aihorde.net/). They say that it doesn't support the full feature set of their native API, but will almost assuredly work with this.
OP manually builds the oapi JSON payload and then uses the python requests library to handle the request.
The fields they're using match the documentation on oai.aihorde.net/docs
You would need to add a header with your AI Horde API key. Looks like that would only need to be done in router_fastapi.py - call_model_prompt() (line 269) and call_model_messages() (line 303) and then everything else is setup according to documentation
FastAPI - Swagger UI
oai.aihorde.netSuspciousCarrot78
in reply to FauxLiving • • •Fuck, I'm an all seeing, prescient wizard! Neat!
Uh, I mean... "yes of course, I intended to have Ai Horde piping baked in from the get go".
Do let me know if my shit works with their shit to make...not shit.
#####################
EDIT: For fun, I asked my router to ask Qwen3-4B 2507 WTF Ai Horde was. I'm showing this for interest sake, because 1) shows you how the thing works IRL 2) shows you how and when it's WRONG in a LOUD way, if you know how to read it.
######################
This is in default mode, no KBs attached. Just straight YOLOing the question at it, cold, and asking it to argue from it's own internal priors.
AI-horde is a decentralized platform where users rent or sell computational power (GPU time) to run AI models. It connects AI model developers who need processing with individuals or organizations who have idle GPU hardware. The platform uses blockchain-like tokens to manage payments and incentives. It’s not a single AI system but a marketplace for GPU resources.
Missing details: Spec
... Show more...Fuck, I'm an all seeing, prescient wizard! Neat!
Uh, I mean... "yes of course, I intended to have Ai Horde piping baked in from the get go".
Do let me know if my shit works with their shit to make...not shit.
#####################
EDIT: For fun, I asked my router to ask Qwen3-4B 2507 WTF Ai Horde was. I'm showing this for interest sake, because 1) shows you how the thing works IRL 2) shows you how and when it's WRONG in a LOUD way, if you know how to read it.
######################
This is in default mode, no KBs attached. Just straight YOLOing the question at it, cold, and asking it to argue from it's own internal priors.
AI-horde is a decentralized platform where users rent or sell computational power (GPU time) to run AI models. It connects AI model developers who need processing with individuals or organizations who have idle GPU hardware. The platform uses blockchain-like tokens to manage payments and incentives. It’s not a single AI system but a marketplace for GPU resources.
Missing details: Specific token mechanics, current model library, or user onboarding flow could affect accuracy. For example, if token economics changed recently, the explanation might not reflect current conditions.
Confidence: Medium | Source: Model
#####################################
That's the routers way of saying "hey, best guess. Sorry". And from what I can see, it sort of right, but specifics are wrong. So, ok for a cheap YOLO, not for "I bet my money on this" Let's call this a 4/10
####################################
Now, I gave it web access privileges. It did this. Let's call this 7/10
An AI-horde is a free, open-source community service that allows anyone to contribute computing power to generate AI-generated images and text. It functions as a crowdsourced distributed cluster of workers focused on image and text generation tasks [1]. This model resembles collaborative projects like Folding@home, where users share computational resources for a common goal [2].
####################################
Finally, here's what it does in >>KB mode. I scraped the FAQ and then did >>summ new. Eyeballing it against the FAQ, it's call this 8.5/10. YMMV
AI-horde is a decentralized platform for distributed AI computing. It allows users to rent out their idle GPU hardware to run AI models, connecting developers needing processing power with volunteers who provide it through open APIs. The system uses a non-cryptocurrency-based incentive called Kudos to prioritize contributions, where workers earn Kudos for completing tasks, and these are not tradable assets but rather internal metrics of service quality and project loyalty.
Access to AI-horde is managed via API keys; anonymous usage is allowed but receives the lowest priority. The project emphasizes volunteerism and discourages commercialization of Kudos, treating its sale or exchange for money or cryptocurrency as contrary to its ethos. Participation as a worker involves installing the AI-horde client, selecting task types (e.g., image or text generation), configuring supported models, and running the worker to begin earning Kudos.
Confidence: high | Source: Docs
################################
FINALLY, for "fun", I >>kb attached all and asked it to reason over the above three responses, in context of what it has in the KB store, and rank them out of 10.
[3] is most correct, scoring 9.5/10. It accurately reflects the core model: decentralized GPU renting via open APIs, Kudos as a non-crypto, non-tradable incentive tied to volunteerism, and the crowdsourced nature of contributions. It also correctly notes access via API keys and lower priority for anonymous use.
[2] is accurate but less complete, scoring 7.5/10. It correctly identifies the crowdsourced, open-source, volunteer-based nature and analogy to Folding@home. However, it omits key specifics like Kudos, API key access, and the explicit non-commercialization stance.
[1] is partially correct but misleading, scoring 6/10. It correctly describes GPU
Confidence: medium | Source: Docs
TL;DR
* KB mode: source-based info and when queried against, adjudication accuracy = v.good
* Clean, reproducible demo. Try it yourself
db0
in reply to SuspciousCarrot78 • • •Very impressive. The only mistake on the third one is that the kudos are actually transferrable (i.e. "tradable"), but we forbid exchanges for monetary rewards.
Disclaimer: I'm the lead developer for the AI Horde. I also like you've achieved here and would be interesting if we can promote this usage via the AI Horde in some way. If you can think of some integration or collaboration we could do, hit me up!
PS: While the OpenAI API is technically working, we still prefer people to use our own API as it's much more powerful (allowing people to use multiple models, filter workers, tweak more vars) and so on. If you would support our native API, I'd be happy to add a link to your software in our frontpage in the integrations area for LLMs.
SuspciousCarrot78
in reply to db0 • • •Oh shit! Uh...thank you! Umm. Yes. That was unexpected :)
Re: collab. I'm away for a bit with work, but let me think on it for a bit? There's got to be a way to make this useful to more peeps.
Believe it or not, I am not a CS guy at ALL (I work in health-care) and I made this for fun, in a cave, with a box of scraps.
I'm not good at CS. I just have a ... "very special" brain. As in, I designed this thing from first principles using invariants, which I understand now is not typical CS practice.
db0
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to db0 • • •db0
in reply to SuspciousCarrot78 • • •WTF is a "goon-coder" lol :D
I haven't had good experiences with HN myself, even when I was simply trying to post about the AI Horde.
SuspciousCarrot78
in reply to db0 • • •I had to look it up. Apparently, it's someone who over-optimises the bells and whistles and never ships a finished product.
gooncode.dev/
GoonCode | Beyond vibe coding
gooncode.devrollin
in reply to SuspciousCarrot78 • • •At first blush, this looks great to me. Are there limitations with what models it will work with? In particular, can you use this on a lightweight model that will run in 16 Gb RAM to prevent it hallucinating? I've experimented a little with running ollama as an NPC AI for Skyrim - I'd love to be able to ask random passers-by if they know where the nearest blacksmith is for instance. It was just far too unreliable, and worse it was always confidently unreliable.
This sounds like it could really help these kinds of uses. Sadly I'm away from home for a while so I don't know when I'll get a chance to get back on my home rig.
SuspciousCarrot78
in reply to rollin • • •My brother in virtual silicon: I run this shit on a $200 p.o.s with 4gb of VRAM.
If you can run an LLM at all, this will run. BONUS: because of the way "Vodka" operates, you can run with a smaller context window without eating shit of OOM errors. So...that means.. if you could only run a 4B model (because the GGUF itself is 3GBs without the over-heads...then you add in the drag from the KV cache accumulation).. maybe you can now run next sized up model...or enjoy no slow down chats with the model size you have.
rollin
in reply to SuspciousCarrot78 • • •I never knew LLMs can run on such low-spec machines now! That's amazing. You said elsewhere you're using Qwen3-4B (abliterated), and I found a page saying that there are Qwen3 models that will run on "Virtually any modern PC or Mac; integrated graphics are sufficient. Mobile phones"
Is there still a big advantage to using Nvidia GPUs? Is your card Nvidia?
My home machine that I've installed ollama on (and which I can't access in the immediate future) has an AMD card, but I'm now toying with putting it on my laptop, which is very midrange and has Intel Arc graphics (which performs a whole lot better than I was expecting in games)
Qwen3 LLM Hardware Requirements – CPU, GPU and Memory
Allan Witt (Hadrware Corner)SuspciousCarrot78
in reply to rollin • • •Yep, LLMs can and do run on edge devices (weak hardware).
One of the driving forces for this project was in fact trying to make my $50 raspberry pi more capable of running llm. It sits powered on all the time, so why not?
No special magic with NVIDIA per se, other than ubiquity.
Yes, my card is NVIDIA, but you don't need a card to run this.
null
in reply to SuspciousCarrot78 • • •als
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to als • • •Yes. Several reasons -
GitHub - scrapy/scrapy: Scrapy, a fast high-level web crawling & scraping framework for Python.
GitHubFrankLaskey
in reply to als • • •SuspciousCarrot78
in reply to FrankLaskey • • •Angel Mountain
in reply to SuspciousCarrot78 • • •Super interesting build
And if programming doesn't pan out please start writing for a magazine, love your style (or was this written with your AI?)
SuspciousCarrot78
in reply to Angel Mountain • • •Karkitoo
in reply to SuspciousCarrot78 • • •( ͡° ͜ʖ ͡°)
Anyway, the other person is right. Your writing style is great !
I successfully read your whole post and even the README. Probably the random outbursts grabbed my attention back to te text.
Anyway version 2, this
Is a very cool idea ! I cannot wait to either :
- incorporate it to my workflows
- let it sit in a tab to never be touched ever again
- tgeoryceaft, do tests and request features so much as to burnout
Last but not least, thank you for not using github as your primary repo
SuspciousCarrot78
in reply to Karkitoo • • •Hmm. One of those things is not like the other, one of those things just isn't the same...
About the random outburst: caused by TOO MUCH FUCKING CHATGPT WASTING HOURS OF MY FUCKING LIFE, LEADING ME DOWN BLIND ALLEYWAYS, YOU FUCKING PIEC...
...sorry, sorry...
Anyway, enjoy. Don't spam my Github inbox plz :)
Karkitoo
in reply to SuspciousCarrot78 • • •I can spam your codeberg's then ? :)
Understandable, have a great day.
SuspciousCarrot78
in reply to Karkitoo • • •Don't spam my Codeberg either.
Just send nudes.
In ASCII format.
By courier pigeon
CIA_chatbot
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to CIA_chatbot • • •CIA_chatbot
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to CIA_chatbot • • •Alvaro
in reply to SuspciousCarrot78 • • •Anarki_
in reply to Alvaro • • •SuspciousCarrot78
in reply to Alvaro • • •LLMs are inherently unreliable in “free chat” mode. What llama-conductor changes is the failure mode: it only allows the LLM to argue from user curated ground truth and leaves an audit trail.
You don't have to trust it (black box). You can poke it (glass box). Failure leaves a trail and it can’t just hallucinate a source out of thin air without breaking LOUDLY and OBVIOUSLY.
TL;DR: it won't piss in your pocket and tell you it's rain. It may still piss in your pocket (but much less often, because it's house trained)
bilouba
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to bilouba • • •Just bush-league ones I did myself, that have no validation or normative values. Not that any of the LLM benchmarks seem to have those either LOL
I'm open to ideas, time wiling. Believe it or not, I'm not a code monkey. I do this shit for fun to get away from my real job
bilouba
in reply to SuspciousCarrot78 • • •Maybe try to contact "AI Explained" on YT, he's the best IMO. Your solution might be novel or not but he might help you figuring that. If it is indeed novel, it might be worth it to share it with the larger community.
Of course, I totally get that you might not want to do any of that.
Thank you for your work!
wolfrasin
in reply to SuspciousCarrot78 • • •Hey Human,
Thank you!
SuspciousCarrot78
in reply to wolfrasin • • •sp3ctr4l
in reply to SuspciousCarrot78 • • •This seems astonishingly more useful than the current paradigm, this is genuinely incredible!
I mean, fellow Autist here, so I guess I am also... biased towards... facts...
But anyway, ... I am currently uh, running on Bazzite.
I have been using Alpaca so far, and have been successfully running Qwen3 8B through it... your system would address a lot of problems I have had to figurr out my own workarounds for.
I am guessing this is not available as a flatpak, lol.
I would feel terrible to ask you to do anything more after all of this work, but if anyone does actually set up a podman installable container for this that actually properly grabs all required dependencies, please let me know!
SuspciousCarrot78
in reply to sp3ctr4l • • •Indeed. And have you heard? That makes the normies think were clankers (bots). How delightful.
Re: the Linux stuff...please, if someone can do that, please do. I have no idea how to do that. I can figure it out but making it into a "one click install" git command took several years off my life.
Believe it or not, I'm not actually a IT / CS guy. My brain just decided to latch onto this problem one day 6 months ago and do an autism.
I'm 47 and I still haven't learned how to operate this vehicle...and my steering is getting worse, not better, with age.
sp3ctr4l
in reply to SuspciousCarrot78 • • •Oh I entirely believe you.
Hell hath no wrath like an annoyed high functioning autist.
I've ... had my own 6 month black out periods where I came up with something extremely comprehensive and 'neat' before.
Seriously, bootstrapping all this is incredibly impressive.
I would... hope that you can find collaborators, to keep this thing alive in the event you get into a car accident (metaphorical or literal), or, you know, are completely burnt out after this.
... but yeah, it is... yet another immensely ironic aspect of being autistic that we've been treated and maligned as robots our whole lives, and then when the normies think they've actually built the AI from sci fi, no, turns out its basically extremely talented at making up bullshit and fudging the details and being a hypocrite, which... appalls the normies when they have to look into a hyperpowered mirror of themselves.
And then, of course, to actually fix this, its some random autist no one has ever heard of (apologies if you are famous and i am unaware of this), who is putting in an enormou
... Show more...Oh I entirely believe you.
Hell hath no wrath like an annoyed high functioning autist.
I've ... had my own 6 month black out periods where I came up with something extremely comprehensive and 'neat' before.
Seriously, bootstrapping all this is incredibly impressive.
I would... hope that you can find collaborators, to keep this thing alive in the event you get into a car accident (metaphorical or literal), or, you know, are completely burnt out after this.
... but yeah, it is... yet another immensely ironic aspect of being autistic that we've been treated and maligned as robots our whole lives, and then when the normies think they've actually built the AI from sci fi, no, turns out its basically extremely talented at making up bullshit and fudging the details and being a hypocrite, which... appalls the normies when they have to look into a hyperpowered mirror of themselves.
And then, of course, to actually fix this, its some random autist no one has ever heard of (apologies if you are famous and i am unaware of this), who is putting in an enormous of effort, that... most likely, will not be widely recognized.
... fucking normies man.
SuspciousCarrot78
in reply to sp3ctr4l • • •Not famous, no :)
I hear you, brother. Normally, my hyperfocus is BJJ (I've been at that for 25 years; it's a sickness). I herniated a disc in my low back and lost the ability to exercise for going on 6 months.
BJJ is like catnip for autists. There is an overwhelming population of IT, engineers and ASD coded people in BJJ world.
There's even a gent we loving call Blinky McHeelhook, because well...see for yourself
Noticing the effects of elbow position, creating an entire algorithm, flow chart and epistemology off the fact?
"VERY NORMAL."
Anyway, when my body said "sit down", my brain went "ok, watch this".
I'm sorry. I'm so sorry. No one taught me how to drive this thing :)
PS: I only found out after my eldest was diagnosed. Then my youngest. The my MIL said "go get tested". I did.
Result - ASD.
Her response - "We know".
Great - thanks for telling me. Would have been useful to know, say... 40ish years ago.
- YouTube
www.youtube.comFmstrat
in reply to sp3ctr4l • • •No promises, but if I end up running this it will be by putting it in a container. If I do, then I'll put a PR on Codeberg with a Docker Compose file (compatible with Podman on Bazzite).
@SuspciousCarrot78@lemmy.world
SuspciousCarrot78
in reply to Fmstrat • • •sp3ctr4l
in reply to Fmstrat • • •WolfLink
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to WolfLink • • •Fair point on setting expectations, but this isn’t just LLMs checking LLMs. The important parts are non-LLM constraints.
The model never gets to “decide what’s true.” In KB mode it can only answer from attached files. Don't feed it shit and it won't say shit.
In Mentats mode it can only answer from the Vault. If retrieval returns nothing, the system forces a refusal. That’s enforced by the router, not by another model.
The triple-pass (thinker → critic → thinker) is just for internal consistency and formatting. The grounding, provenance, and refusal logic live outside the LLM.
So yeah, no absolute guarantees (nothing in this space has those), but the failure mode is “I don’t know / not in my sources, get fucked” not “confidently invented gibberish.”
skisnow
in reply to WolfLink • • •SuspciousCarrot78
in reply to skisnow • • •skisnow
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to skisnow • • •Yeah.
The SHA isn’t there to make the model smarter. It’s there to make the source immutable and auditable.
Having been burnt by LLMs (far too many times), I now start from a position of "fuck you, prove it".
The hash proves which bytes the answer was grounded in, should I ever want to check it. If the model misreads or misinterprets, you can point to the source and say “the mistake is here, not in my memory of what the source was.”.
If it does that more than twice, straight in the bin. I have zero chill any more.
Secondly, drift detection. If someone edits or swaps a file later, the hash changes. That means yesterday’s answer can’t silently pretend it came from today’s document. I doubt my kids are going to sneak in and change the historical prices of 8 bit computers (well, the big one might...she's dead keen on being a hacker) but I wanted to be sure no one and no-thing was fucking with me.
Finally, you (or someone else) can re-run the same question against the same hashed inputs and see if th
... Show more...Yeah.
The SHA isn’t there to make the model smarter. It’s there to make the source immutable and auditable.
Having been burnt by LLMs (far too many times), I now start from a position of "fuck you, prove it".
The hash proves which bytes the answer was grounded in, should I ever want to check it. If the model misreads or misinterprets, you can point to the source and say “the mistake is here, not in my memory of what the source was.”.
If it does that more than twice, straight in the bin. I have zero chill any more.
Secondly, drift detection. If someone edits or swaps a file later, the hash changes. That means yesterday’s answer can’t silently pretend it came from today’s document. I doubt my kids are going to sneak in and change the historical prices of 8 bit computers (well, the big one might...she's dead keen on being a hacker) but I wanted to be sure no one and no-thing was fucking with me.
Finally, you (or someone else) can re-run the same question against the same hashed inputs and see if the system behaves the same way.
So: the hashes don't fix hallucinations (I don't even think that's possible, even with magic). The hashes make it possible to audit the answer and spot why hallucinations might have happened.
PS: You’re right that interpretation errors still exist. That's why Mentats does the triple-pass and why the system clearly flags “missing / unsupported” instead of filling gaps. The SHA is there to make the pipeline inspectable, instead of “trust me, bro.”.
Guess what? I don't trust you. Prove it or GTFO.
skisnow
in reply to SuspciousCarrot78 • • •Eh. This reads very much like your headline is massively over-promising clickbait. If your fix for an LLM bullshitting is that you have to check all its sources then you haven’t fixed LLM bullshitting
That’s… not how any of this works…
Disillusionist
in reply to SuspciousCarrot78 • • •UNY0N
in reply to SuspciousCarrot78 • • •THIS IS AWESOME!!! I've been working on using an obsidian vault and a podman ollama container to do something similar, with VSCodium + continue as middleware. But this! This looks to me like it is far superior to what I have cobbled together.
I will study your codeberg repo, and see if I can use your conductor with my ollama instance and vault program. I just registered at codeberg, if I make any progress I will contact you there, and you can do with it what you like.
On an unrelated note, you can download wikipedia. Might work well in conjunction with your conductor.
en.wikipedia.org/wiki/Wikipedi…
Wikipedia:Database download - Wikipedia
en.wikipedia.orgSuspciousCarrot78
in reply to UNY0N • • •Please enjoy :) Hope it's of use to you!
EDIT: Please don't yeet wikipedia into it. It will die. And you will be sad.
UNY0N
in reply to SuspciousCarrot78 • • •brettvitaz
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to brettvitaz • • •For the record: none of my posts here are AI-generated. The only model output in this thread is in clearly labeled, cited examples.
I built a tool to make LLMs ground their answers and refuse without sources, not to replace anyone’s voice or thinking.
If it’s useful to you, great. If not, that’s fine too - but let’s keep the discussion about what the system actually does.
Also, being told my writing “sounds like a machine” lands badly, especially as an ND person, so I’d prefer we stick to the technical critique.
brettvitaz
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to brettvitaz • • •I'm sorry if my method of writing is unpleasant to you.
Your method of communicating your thoughts is ABHORRENT to me.
Let's go our separate ways.
Peace favour your sword.
btsax
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to btsax • • •Oh god, I think liked being called a clanker more :P
(Not North Dakotan. West Australian. Proof: cunt cunt cunty cunt cuntington).
Murdoc
in reply to SuspciousCarrot78 • • •I wouldn't know how to get this going, but I very much enjoyed reading it and your comments and think that it looks like a great project. 👍
(I mean, as a fellow autist I might be able to hyperfocus on it for a while, but I'm sure that the ADHD would keep me from finishing to go work on something else. 🙃)
SuspciousCarrot78
in reply to Murdoc • • •Ah - ASD, ADHD and Lemmy. You're a triple threat, Harry! :)
Glad if it was entertaining, if even a little!
7toed
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to 7toed • • •I feel your pain. Literally.
I once lost ... 24? 26? hrs over a period of days with GPT once...it each time confidently asserting "no, for realz, this is the fix".
This thing I built? Purely spite driven engineering + caffeine + ASD to overcome "Bro, trust me bro".
I hope it helps.
7toed
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to 7toed • • •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"
SuspciousCarrot78
in reply to SuspciousCarrot78 • • •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.
lemmy.world/post/41398418/2152…
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.
Domi
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to Domi • • •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
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to Domi • • •This is the way. Good luck with OSS-120B. Those OSS models, they
Domi
in reply to SuspciousCarrot78 • • •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.
recklessengagement
in reply to Domi • • •Domi
in reply to recklessengagement • • •ThirdConsul
in reply to SuspciousCarrot78 • • •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
Kobuster
in reply to ThirdConsul • • •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
Squizzy
in reply to Kobuster • • •ThirdConsul
in reply to Kobuster • • •A very tailored to llms strengths benchmark calls you a liar.
artificialanalysis.ai/articles…
(A month ago the hallucination rate was ~50-70%)
SuspciousCarrot78
in reply to Kobuster • • •^ 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"
SuspciousCarrot78
in reply to ThirdConsul • • •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 righ
... Show more...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
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to ThirdConsul • • •Parts of this are RAG, sure
RAG parts:
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.
Again, no embeddings, no similarity search, no model interpretation.
... Show more...Parts of this are RAG, sure
RAG parts:
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.
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 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.
ThirdConsul
in reply to SuspciousCarrot78 • • •Oh boy. So hallucination will occur here, and all further retrievals will be deterministically poisoned?
SuspciousCarrot78
in reply to ThirdConsul • • •Huh? That is the literal opposite of what I said. Like, diametrically opposite.
Let me try this a different way.
Hallucination in SUMM doesn’t "poison" the KB, because SUMMs are not authoritative facts, they’re derived artifacts with provenance. They’re explicitly marked as model output tied to a specific source hash. Two key mechanics that stop the cascade you’re describing:
1) SUMM is not a "source of truth"
The source of truth is still the original document, not the summary. The summary is just a compressed view of it. That’s why it carries a SHA of the original file. If a SUMM looks wrong, you can:
a) trace it back to the exact document version
b) regenerate it
c) discard it
d) read the original doc yourself and manually curate it.
Nothing is "silently accepted" as ground truth.
2) Promotion is manual, not automatic
The dangerous step would be
... Show more...Huh? That is the literal opposite of what I said. Like, diametrically opposite.
Let me try this a different way.
Hallucination in SUMM doesn’t "poison" the KB, because SUMMs are not authoritative facts, they’re derived artifacts with provenance. They’re explicitly marked as model output tied to a specific source hash. Two key mechanics that stop the cascade you’re describing:
1) SUMM is not a "source of truth"
The source of truth is still the original document, not the summary. The summary is just a compressed view of it. That’s why it carries a SHA of the original file. If a SUMM looks wrong, you can:
a) trace it back to the exact document version
b) regenerate it
c) discard it
d) read the original doc yourself and manually curate it.
Nothing is "silently accepted" as ground truth.
2) Promotion is manual, not automatic
The dangerous step would be: model output -> auto-ingest into long-term knowledge.
That’s explicitly not how this works.
The Flow is:
Attach KB -> SUMM -> human reviews -> Ok, move to Vault -> Mentats runs against that
Don't like a SUMM? Don't push it into the vault. There's a gate between “model said a thing” and “system treats this as curated knowledge.” That's you - the human. Don't GI and it won't GO.
Determinism works for you here. The hash doesn’t freeze the hallucination; it freezes the input snapshot. That makes bad summaries:
Which is the opposite of silent drift.
If SUMM is wrong and you miss it, the system will be consistently wrong in a traceable way, not creatively wrong in a new way every time.
That’s a much easier class of bug to detect and correct. Again: the proposition is not "the model will never hallucinate.". It's "it can't silently propagate hallucinations without a human explicitly allowing it to, and when it does, you trace it back to source version".
And that, is ultimately what keeps the pipeline from becoming "poisoned".
ThirdConsul
in reply to SuspciousCarrot78 • • •No, that's exactly what you wrote.
Now, with this change
That would be fixed, but will work only for small KBs, as otherwise the summary would be exhaustive.
Case in point: assume a Person model with 3-7 facts per Person. Assume small 3000 size set of Persons. How would the SUMM of work? Do you expect a human to verify that SUMM? How are you going to converse with your system to get the data from that KB Person set? Because to me that sounds like case C, only works for small KBs.
... Show more...No, that's exactly what you wrote.
Now, with this change
That would be fixed, but will work only for small KBs, as otherwise the summary would be exhaustive.
Case in point: assume a Person model with 3-7 facts per Person. Assume small 3000 size set of Persons. How would the SUMM of work? Do you expect a human to verify that SUMM? How are you going to converse with your system to get the data from that KB Person set? Because to me that sounds like case C, only works for small KBs.
Fair. Except that you are still left with the original problem of you don't know WHEN the information is incorrect if you missed it at SUMM time.
SuspciousCarrot78
in reply to ThirdConsul • • •Replying in specific
Correct: filesystem SUMM + human review is intentionally for small/curated KBs, not “review 3,000 entities.” The point of SUMM is curation, not bulk ingestion at scale. If the KB is so large that summaries become exhaustive, that dataset is in the wrong layer.
... Show more...Poorly. It shouldn’t work via filesystem SUMM. A “Person table” is structured data; SUMM is for documents. For 3,000 people × (3–7 facts), you’d put that in a structured store (SQLite/CSV/JSONL/whatever) and query it via a non-LLM tool (exact lookup/filter) or via Vault retrieval if you insist on LLM synthesis on top.
Replying in specific
Correct: filesystem SUMM + human review is intentionally for small/curated KBs, not “review 3,000 entities.” The point of SUMM is curation, not bulk ingestion at scale. If the KB is so large that summaries become exhaustive, that dataset is in the wrong layer.
Poorly. It shouldn’t work via filesystem SUMM. A “Person table” is structured data; SUMM is for documents. For 3,000 people × (3–7 facts), you’d put that in a structured store (SQLite/CSV/JSONL/whatever) and query it via a non-LLM tool (exact lookup/filter) or via Vault retrieval if you insist on LLM synthesis on top.
No - not for that use case. Human verification is realistic when you’re curating dozens/hundreds of docs, not thousands of structured records. For 3,000 persons, verification is done by data validation rules (schema, constraints, unit tests, diff checks), not reading summaries.
Not by attaching a folder and “asking the model nicely.” You’d do one of these -
So: conversation is fine as UX, but the retrieval step should be tool-based (exact) for that dataset.
But actually, you give me a good idea here. It wouldn't be the work of ages to build a >>look or >>find function into this thing. Maybe I will.
My mental model for this was always "1 person, 1 box, personal scale" but maybe I need to think bigger. Then again, scope creep is a cruel bitch.
For filesystem SUMM + human review: yes. That’s the design. It’s a personal, “curate your sources” workflow, not an enterprise entity store.
This was never designed to be a multi-tenant look up system. I don't know how to build that and still keep it 1) small 2) potato friendly 3) account for ALL the moving part nightmares that brings.
What I built is STRICTLY for personal use, not enterprise use.
Sort of. Summation via LLM was always going to be a lossy proposition. What this system changes is the failure mode:
In other words: it doesn’t guarantee correctness; it guarantees traceability and non-silent drift. You still need to "trust but verify".
TL;DR:
You don’t query big, structured datasets (like 3,000 “Person” records) via SUMM at all. You use exact tools/lookup first (DB/JSON/CSV), then let the LLM format or explain the result. That can probably be added reasonably quickly, because I tried to build something that future me wouldn't hate past me for. We'll see if he/I succeeded.
SUMM is for curated documents, not tables. I can try adding a >>find >>grep or similar tool (the system is modular so I should be able to accommodate a few things like that, but I don't want to end up with 1500 "micro tools" and hating my life)
And yeah, you can still miss errors at SUMM time - the system doesn’t guarantee correctness. That's on you. Sorry.
What it guarantees is traceability: every answer is tied to a specific source + hash, so when something’s wrong, you can see where it came from and fix it instead of having silent drift. That's the "glass box, not black box" part of the build.
Sorry - really. This is the best I could figure out for caging the stochastic parrot. I built this while I was physically incapacitated and confined to be rest, and shooting the shit with Gippity all day. Built it for myself and then though "hmm, this might help someone else too. I can't be the only one that's noticed this problem".
If you or anyone else has a better idea, I'm willing to consider.
PolarKraken
in reply to ThirdConsul • • •Woof, after reading your "contributions" here, are you this fucking insufferable IRL or do you keep it behind a keyboard?
Goddamn. I'm assuming you work in tech in some capacity? Shout-out to anyone unlucky enough to white-knuckle through a workday with you, avoiding an HR incident would be a legitimate challenge, holy fuck.
Pudutr0n
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to Pudutr0n • • •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 f
... Show more...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
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to Pudutr0n • • •pineapple
in reply to SuspciousCarrot78 • • •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
in reply to pineapple • • •Zexks
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to Zexks • • •Arthur Besse
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to Arthur Besse • • •Spite based inference?
You dirty pirate hooker.
I don’t believe you.
termaxima
in reply to SuspciousCarrot78 • • •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.
SuspciousCarrot78
in reply to termaxima • • •Agree-ish
Hallucination is inherent to unconstrained generative models: if you ask them to fill gaps, they will. I don’t know how to “solve” that at the model level.
What you can do is make “I don’t know” an enforced output, via constraints outside the model.
My claim isn’t “LLMs won’t hallucinate.” It’s “the system won’t silently propagate hallucinations.” Grounding + refusal + provenance live outside the LLM, so the failure mode becomes “no supported answer” instead of “confident, slick lies.”
So yeah: generation will always be fuzzy. Workflow-level determinism doesn’t have to be.
I tried yelling, shouting, and even percussive maintenance but the stochastic parrot still insisted “gottle of geer” was the correct response.
... Show more...Agree-ish
Hallucination is inherent to unconstrained generative models: if you ask them to fill gaps, they will. I don’t know how to “solve” that at the model level.
What you can do is make “I don’t know” an enforced output, via constraints outside the model.
My claim isn’t “LLMs won’t hallucinate.” It’s “the system won’t silently propagate hallucinations.” Grounding + refusal + provenance live outside the LLM, so the failure mode becomes “no supported answer” instead of “confident, slick lies.”
So yeah: generation will always be fuzzy. Workflow-level determinism doesn’t have to be.
I tried yelling, shouting, and even percussive maintenance but the stochastic parrot still insisted “gottle of geer” was the correct response.
PolarKraken
in reply to SuspciousCarrot78 • • •This sounds really interesting, I'm looking forward to reading the comments here in detail and looking at the project, might even end up incorporating it into my own!
I'm working on something that addresses the same problem in a different way, the problem of constraining or delineating the specifically non-deterministic behavior one wants to involve in a complex workflow. Your approach is interesting and has a lot of conceptual overlap with mine, regarding things like strictly defining compliance criteria and rejecting noncompliant outputs, and chaining discrete steps into a packaged kind of "super step" that integrates non-deterministic substeps into a somewhat more deterministic output, etc.
How involved was it to build it to comply with the OpenAI API format? I haven't looked into that myself but may.
SuspciousCarrot78
in reply to PolarKraken • • •Cheers!
Re: OpenAI API format: 3.6 - not great, not terrible :)
In practice I only had to implement a thin subset: POST /v1/chat/completions + GET /v1/models (most UIs just need those). The payload is basically {model, messages, temperature, stream...} and you return a choices[] with an assistant message. The annoying bits are the edge cases: streaming/SSE if you want it, matching the error shapes UIs expect, and being consistent about model IDs so clients don’t scream “model not found”. Which is actually a bug I still need to squash some more for OWUI 0.7.2. It likes to have its little conniptions.
But TL;DR: more plumbing than rocket science. The real pain was sitting down with pen and paper and drawing what went where and what wasn't allowed to do what. Because I knew I'd eventually fuck something up (I did, many times), I needed a thing that told me "no, that's not what this is designed to do. Do not pass go. Do not collect $200".
shrug I tried.
PolarKraken
in reply to SuspciousCarrot78 • • •The very hardest part of designing software, and especially designing abstractions that aim to streamline use of other tools, is deciding exactly where you draw the line(s) between intended flexibility (user should be able and find it easy to do what they want), and opinionated "do it my way here, and I'll constrain options for doing otherwise".
You have very clear and thoughtful lines drawn here, about where the flexibility starts and ends, and where the opinionated "this is the point of the package/approach, so do it this way" parts are, too.
Sincerely that's a big compliment and something I see as a strong signal about your software design instincts. Well done! (I haven't played with it yet, to be clear, lol)
SuspciousCarrot78
in reply to PolarKraken • • •Thank you for saying that and for noticing it! Seeing you were kind enough to say that, I'd like to say a few things about how/why I made this stupid thing. It might be of interest to people. Or not LOL.
To begin with, when I say I'm not a coder, I really mean it. It's not false modesty. I taught myself this much over the course of a year and the reactivation of some very old skills (30 years hence). When I decided to do this, it wasn't from any school of thought or design principle. I don't know how CS professionals build things. The last time I looked at an IDE was Turbo Pascal. (Yes, I'm that many years old. I think it probably shows, what with the >> ?? !! ## all over the place. I stopped IT-ing when Pascal, Amiga and BBS were still the hot new things)
What I do know is - what was the problem I was trying to solve?
IF the following are true;
1) I have ASD. If you tell me a thing, I assume your telling me a thing. I don't assume you're telling me one thing but mean something else.
... Show more...2) A LLM could "lie" to me, and I would believe
Thank you for saying that and for noticing it! Seeing you were kind enough to say that, I'd like to say a few things about how/why I made this stupid thing. It might be of interest to people. Or not LOL.
To begin with, when I say I'm not a coder, I really mean it. It's not false modesty. I taught myself this much over the course of a year and the reactivation of some very old skills (30 years hence). When I decided to do this, it wasn't from any school of thought or design principle. I don't know how CS professionals build things. The last time I looked at an IDE was Turbo Pascal. (Yes, I'm that many years old. I think it probably shows, what with the >> ?? !! ## all over the place. I stopped IT-ing when Pascal, Amiga and BBS were still the hot new things)
What I do know is - what was the problem I was trying to solve?
IF the following are true;
1) I have ASD. If you tell me a thing, I assume your telling me a thing. I don't assume you're telling me one thing but mean something else.
2) A LLM could "lie" to me, and I would believe it, because I'm not a subject matter expert on the thing (usually). Also see point 1.
3) I want to believe it, because why would a tool say X but mean Y? See point 1.
4) A LLM could lie to me in a way that is undetectable, because I have no idea what it's reasoning over, how it's reasoning over it. It's literally a black box. I ask a Question--->MAGIC WIRES---->Answer.
AND
5) "The first principle is that you must not fool yourself and you are the easiest person to fool"
THEN
STOP.
I'm fucked. This problem is unsolvable.
Assuming LLMs are inherently hallucinatory within bounds (AFAIK, the current iterations all are), if there's even a 1% chance that it will fuck me over (it has), then for my own sanity, I have to assume that such an outcome is a mathematical certainty. I cannot operate in this environment.
PROBLEM: How do I interact with a system that is dangerously mimetic and dangerously opaque? What levers can I pull? Or do I just need to walk away?
1) Unchangeable. Eat shit, BobbyLLM. Ok.
2) I can do something about that...or at least, I can verify what's being said, if the process isn't too mentally taxing. Hmm. How?
3) Fine, I want to believe it...but, do I have to believe it blindly? How about a defensive position - "Trust but verify"?. Hmm. How?
4) Why does it HAVE to be opaque? If I build it, why do I have to hide the workings? I want to know how it works, breaks, and what it can do.
Everything else flowed from those ideas. I actually came up with a design document (list of invariants). It's about 1200 words or so, and unashamedly inspired by Asimov :)
MoA / Llama-swap System
System Invariants
0. What an invariant is (binding)
An invariant is a rule that:
If a feature conflicts with an invariant, the feature is wrong. Do not add.
1. Global system invariant rules:
1.1 Determinism over cleverness
1.2 Explicit beats implicit
If something affects the output, the user must be able to:
Assume system is going to lie. Make its lies loud and obvious.
On and on it drones LOL. I spent a good 4-5 months just revising a tighter and tighter series of constraints, so that 1) it would be less likely to break 2) if it did break, it do in a loud, obvious way.
What you see on the repo is the best I could do, with what I had.
I hope it's something and I didn't GIGO myself into stupid. But no promises :)
floquant
in reply to SuspciousCarrot78 • • •Holy shit I'm glad to be on the autistic side of the internet.
Thank you for proving that fucking JSON text files are all you need and not "just a couple billion more parameters bro"
Awesome work, all the kudos.
SuspciousCarrot78
in reply to floquant • • •recklessengagement
in reply to SuspciousCarrot78 • • •I strongly feel that the best way to improve the useability of LLMs is through better human-written tooling/software. Unfortunately most of the people promoting LLMs are tools themselves and all their software is vibe-coded.
Thank you for this. I will test it on my local install this weekend.
SuspciousCarrot78
in reply to recklessengagement • • •Fmstrat
in reply to SuspciousCarrot78 • • •rozodru
in reply to SuspciousCarrot78 • • •soooo if it doesn't know something it won't say anything and if it does know something it'll show sources...so essentially you plug this into Claude it's just never going to say anything to you ever again?
neat.
SuspciousCarrot78
in reply to rozodru • • •I see what you did there :)
Claude! Look how they massacred my boy!
rozodru
in reply to SuspciousCarrot78 • • •SuspciousCarrot78
in reply to rozodru • • •I haven't tried wiring it up to Claude, that might be fun.
Claude had done alright by me :) Swears a lot, helps me fix code (honestly, I have no idea where he gets that from... :P). Expensive tho.
Now ChatGPT.... well.... Gippity being Gippity is the reason llama-conductor exists in the first place.
Anyway, I just added some OCR stuff into the router. So now, you can drop in a screenshot and get it to mull over that, or extract text directly from images etc.
I have a few other little side-cars I'm thinking of adding of the next few months, based on what folks here have mentioned
!!LIST command (list all stored in vodka memories)!!FLUSH (flush rolling chat summary)>>RAW (keep all the router mechanics but remove presentation/polish prompts and just raw dog it.>>JSON Schema + Validity Verifier>>CALC (math, unit conversion, percentages, timestamps, sizes etc)
... Show more...>>FIND (Pulls IPs, emails, URLsI haven't tried wiring it up to Claude, that might be fun.
Claude had done alright by me :) Swears a lot, helps me fix code (honestly, I have no idea where he gets that from... :P). Expensive tho.
Now ChatGPT.... well.... Gippity being Gippity is the reason llama-conductor exists in the first place.
Anyway, I just added some OCR stuff into the router. So now, you can drop in a screenshot and get it to mull over that, or extract text directly from images etc.
I have a few other little side-cars I'm thinking of adding of the next few months, based on what folks here have mentioned
!!LIST command (list all stored in vodka memories)!!FLUSH (flush rolling chat summary)>>RAW (keep all the router mechanics but remove presentation/polish prompts and just raw dog it.>>JSON Schema + Validity Verifier>>CALC (math, unit conversion, percentages, timestamps, sizes etc)>>FIND (Pulls IPs, emails, URLs, hashes, IDs, etc from documents and returns exact structured output)I'm open to other suggestions / ideas.
PS: It's astonishing to me (and I built it!) just how FAST .py commands run. Basically instantaneous. So, I'm all for adding a few more "useful" cheat-codes like this.