So System 2 tasks are not off the table for our models. We just believe that System 2 tasks should be composed from simpler building blocks that are so reliable that they can be trusted to be built on top of, which AI so far has been incredibly non-composable. Like, it plays nicely with nothing except other AI. And that's kind of tragic. Yeah.
Amazing. All right, so this is where we're starting at a super practical, basic level. One of the use cases that you mentioned, or the team mentioned, is customer support, and the claim is that the current ways it's handled with LLMs have not been as efficient as they could. Let's take the example of: I'm sending an email, I'm saying I got charged twice and I'm very angry, and I send that email to an LLM-based system, scenario one, and then scenario two, I'm sending this to a Jev-powered system.
What happens? Compare and contrast.
Can I do an easier example? Because customer service is actually quite complicated. Let me do something that is very similar to customer service but is a lot easier to think about. Like, imagine an executive assistant for your email. It's kind of like customer service, but the amount of things you can do is way simpler. And as far as I can tell, I could be wrong, like, a scheduling assistant is still not solved. I have emailed a lot of people.
I don't see automated scheduling systems. And that's kind of weird because it really looks like LLMs should solve this, right? So people have been trying for years for this, and how you do it in an LLM is you would make a big system-message write-up of all of your preferences, blah, blah, blah. And they would be incredibly good at stylistically being accurate. Like, it'll never not look like a well-written thing, but it will often make subtle mistakes, not in the style, not in the sycophancy.
I don't know how to pronounce that word. Like, it'll always be people-pleasing because LLMs are so good at people-pleasing, but it may not make the right decisions. And what people will do is they will keep programming their system prompt, like, please do this. If it's an investor, do that. If it's inbound email, do this, blah, blah, blah. So what ends up happening is you're basically programming in natural language this giant system prompt.
And as the complexity rises, the error rates get higher and higher and higher because you're just praying, model, please don't make those mistakes. And what tends to happen is it's embarrassing when those mistakes are made, or it's costly. You may not have scheduled something with an important investor or something like that. And then you need to rip the system out and toss it away and just use a human because it's just obvious what to do there, and they can ask you when they're uncertain or whatever else.
So LLMs, to my understanding, still have not solved this problem. Though I don't know if anyone has solved this with a Jev-like system yet, but I can compare and contrast the differences a bit. So what you can imagine, instead of programming in natural language, like describing, like, if it's important, blah, blah, blah; if it's from this, blah, blah, blah; if it's inbound, blah, blah, blah, you can actually make individual classifiers for each of these things, like smart if statements. Like, you can now express things that you couldn't express in software before, because how can these bit comparisons figure out if it's inbound or not, right?
Like, that's an intention, and it requires natural language common understanding. And the idea is you can make classifiers for all of these things. And you have this legible system where not only can you measure if every if statement is accurate, you know that none of those if statements will be forgotten. And if ever a mistake is made, you can add it to an eval because the system is very legible. So it'll probably start out less good than the text-based system because the text-based system has a lot of sane defaults.
It looks very reasonable because that's what it's trained to do. It's just trained to look human-pleasing, but it actually doesn't have any of the actual behavior you truly care about. And you don't have the control over that. And that is a major problem for anyone who wants to truly have something run in the background. They want to not worry about it, and they want to have control, and they want to have some idea that it's not going to just go completely off the rails.
And that is what combining System 1 models with code will enable you to do. Because code is kind of like the roller coaster tracks. You don't go off the rails. Code prevents that from happening. And similar to that, type safety, that is the property that the System 1 models have. And these things also prevent going off the rails. And because they're very legible, it becomes way easier to build these systems and just trust that they can run in the background.