1
0 Comments

ELI v.2.0 Update #2 — I've Been Trying to Break It

My last update was about why I started building ELI.

This one is about what happened when I started actually hammering on it and finding the things that were wrong.

And there were quite a few.

Over the last few weeks, I've probably learned more from fixing broken things than I would have from adding another 50 capabilities.

The main thing I've been trying to do is make ELI tell the truth.

Not just give an answer that sounds right.

If it says it did something, I want the software underneath to have actually done it.

ELI was remembering things it shouldn't

I found a pretty nasty memory bug where ELI could basically remember things that ELI itself had said, rather than things the user had actually told it.

So if ELI hallucinated something, that statement could end up getting stored as knowledge, come back later, and then ELI would treat its own bullshit as a fact.

Not ideal.

That's fixed now. I've also cleaned the bad memories out of the existing database.

New conversations were sometimes carrying old conversations with them

Another one was just stupid.

I'd start a new conversation and ELI could pull in turns from the previous one.

The model wasn't necessarily doing anything wrong. I was giving it the wrong context in the first place.

That's been fixed so normal conversation history is properly scoped to the current session, while deliberate long-term memory can still cross sessions.

ELI sometimes thought normal conversation was a coding task

I was having a completely normal conversation with it and it saw a capitalised word, decided it looked like a code identifier, searched through a bunch of files and started dumping code into the conversation.

That was a fun one.

I've tightened up the detection so it doesn't decide that every capitalised word is a programming symbol.

Tool calling has also been getting stricter

I've added grammar-constrained tool calling so the model can't just make up a capability that doesn't exist.

Then, naturally, I found 11 actual capabilities that existed in the code but weren't properly exposed through the catalogue.

So those got fixed too.

This is becoming one of the bigger things I'm trying to get right with ELI:

If ELI says it can do something, I want to know that the action actually exists, that it can reach it, that it executes, and that the result is real.

I also had to correct one of my own claims

I used to call the action system a "No-Fake-Actions guarantee."

I've changed that.

That's too absolute.

I can't honestly promise that an LLM-based system will never get something wrong.

What I can say is that ELI is built not to fake an action.

There are guards around the action system, constrained tool calls, verification, and a lot of effort going into making it fail honestly instead of confidently saying "done" when nothing actually happened.

I'd rather ELI say:

"I couldn't do that."

than:

"Done."

when it didn't actually do anything.

Real hardware has been finding problems too

Bluetooth reported the wrong adapter.

The microphone could look dead when the speakers were drowning it out.

Media playback could report success because the player process existed, even though the actual stream hadn't opened.

The self-updater could say it upgraded ELI without actually replacing the installed build.

All of those have been fixed or tightened up.

None of this is particularly exciting to put in a feature list.

But this is the stuff that matters when you give an AI actual access to your computer.

And then there's all the boring stuff

I've spent a stupid amount of time fixing documentation that had drifted away from what the software actually did.

Release assets and capability counts needed correcting.

The licence needed to be consistently included with the different builds.

I removed some of the old voice presets that were imitating characters from other people's IP.

I've also added tooling to check v2 against v3 because the two have separate histories and it was getting too easy for something to exist in one and quietly disappear from the other.

None of that makes for a very exciting demo.

But ELI is getting to the point where I'm less interested in how many things it can do and more interested in whether the things it says it can do actually work.

And honestly, that's probably the biggest change I've made recently.


The next problem is a much harder one.

Does anyone actually want this?

Not:

"Is this cool?"

Not:

"Is local AI interesting?"

I want to know whether people would actually use ELI regularly.

What would they use it for?

What would they keep coming back to?

What would they completely ignore?

Would the privacy/local aspect actually matter enough to put up with the setup?

And eventually:

Would anyone actually pay for it?

I don't know yet.

That's what I want to find out.

So if you've looked at ELI and think I'm building the wrong thing, I'd genuinely rather hear that than another "looks awesome."

If something is over-engineered, stupid, unreliable, badly designed, or just doesn't make sense, tell me.

I'd rather find that out now.

GitHub: https://github.com/ShadowESC95/ELI_v2.0

posted toAvatar for product ELI
ELI