Skip to main content

Command Palette

Search for a command to run...

APEX has no Agents!

Updated
β€’11 min readβ€’View as Markdown
APEX has no Agents!
J

22 years of Oracle APEX development. Founder of apex.world. UX-Designer. AI Architectures

If you are on Twitter (yes I still call it Twitter, always will) you may have come across a discussion about APEX-Agents. It started with a question of mine about Philipp's UC AI Framework. He is an extraordinary tech genius, part of the apex.world team and since he has no real life 😊 he's doing crazy stuff in his "free time".

I'm basically the exact opposite. I have a business administration degree and was "forced" into IT reluctantly (when these new things called PCs came out at the end of the 70-ties - yes I'm that old) and I didn't trust these sloppy, long hair, Birkenstock IT guys. Therefore I started to figure it out by myself (and it turned out I was right not to trust them all along 😊)

I would call myself a highly skilled business developer and a UX Designer (here's a YouTube link of a UX-Design Presentation of mine with a lot of APEX examples if you are interested)

I was literally one of the first APEX developers in the world and because I never liked coding, I stuck with it for almost 25 years now. I survived in this weird IT world (besides making UX perfect apps and having APEX as my power tool), because I always wanted to understand how things really work, the basic architecture and invested quite some time to really learn it. In 25 years with APEX I came across colleagues who also did APEX for more than a decade, having successful careers, but didn't understand the difference between page rendering and processing, inserting htp.p('debug') into processing and never understood why it didn't show up in the Browser. So it is possible to know what to do, where to click, without really understanding it. Like when my girlfriend is driving my stick shift. She knows where to put this stick, but she has no concept of a transmission 😊.

Almost 3 years ago, I quickly realised that this AI thing is something that will stick and could change everything. So I started again to spend quite some time to understand the basic principles, the high level architecture of things, because coding will be less and less important, but understanding what is possible and how to orchestrate it, will make the difference in the future (which is today). Here a YouTube link of my "AI for Dummies" presentation 1,5 years ago, where I summarised what I have had learned by then. A lot of people came to me afterwards and have been happy and relieved that somebody finally explained the basics of this weird AI stuff which they were all supposed to know and where they took part in "Corporate Bingo Game" throwing expressions back and forth without actually understanding it.

This was the prelude why I'm doing this again even if I have switched careers, working 40+ hours in the surgery room as a surgery assistant doing APEX just as a side hustle.

I assume now you have the basic knowledge what I have explained in my presentation, if not, invest the 45 minutes and come back.

The knowledge you should have by now is:

LLM: Zipped knowledge of the "Internet" (and more). Has no idea what happened a day later after training.

Context: Additional Information the LLM can't know by itself to answer the question.

Tools / Integrations: Additional "APIs" a LLM can call, like a calculator, the Internet, Database Functions, etc. to add additional information to the context to answer the question.

Reasoning Model: It's a special type of LLM that spends more time in "thinking" (inference) about a solution, splitting a question up into different steps, before it answers. It's like us, either we know something and shout it out right away or we say, let me think about it, did I really get the garbage out yesterday for the trash collection πŸ€”?

chatGPT: A Web-Application that provides a user interface to ask your question, stores chat history, API interfaces to tools, remembers your preferences and can call different LLMs to answer your questions.

Here the corresponding slide from my "AI for Dummies" presentation:

Let's start: Here is the link of the Twitter discussion between Philipp and myself. And of course Jayson is adding his 2 cents proofing that he didn't even understand what we were talking about, getting angry and introducing a completely different topic, but one thing he knows for sure is that I'm wrong 😊. Don't get me wrong, I appreciate Jayson's passionate work a lot but he is not the "critical thinker" type 😊. And yes maybe I am wrong, that's why I put out my understanding and let it be challenged. And if I am, I'm happy that I learned something new and it was all worth it.

It's very important to get at least the basic terms right, because this whole AI topic is not nothing and you get lost in translation soon, always afraid of being discovered and lagging the real possibilities using it in the right way.

What is an Agent?

Let's say you plan a trip to Vienna. You have ChatGPT and may ask for hotels available for the time you want to stay. You compare locations, prices, features. Then you check a railway site to figure out available connections, prices, seat reservations. Then you check airlines, rental cars and do the same thing. Then you check tourist guides what you want to visit. It will take you a whole day. After that you boil it down to 2 favorite options, you decide and you start to book.

It's just you sitting in front of chatGPT asking questions, review the results, ask again, compare, ask again, and so on. Wouldn't it be great if that "you" could be replaced by "somebody else" a secretary, a "guy" you explain exactly what you want or better even knows your preferences anyway and he does this tedious work for you, presenting the 2 best alternatives to you in the end, so you just have to decide?

This is a thing. This is an Agent. It's not part of an LLM, it's also not a special type of LLM. It's a program (maybe written in Java) that uses LLMs. You tell an Agent what you want and success criteria so it knows when it is finished. Agents often have a lot of rights like reading and writing to your file system, using your browser as you. They can even book things for you with your credit card if you allow it (you can set them up that they ask you before it does steps like that, but you can also say, just do it, stop asking me)

There are different types of Agents. In our example we would choose a "Travel Agent" for our task. You would tell it, "I want to visit Vienna from September 1st. for two weeks, find me the best way to travel there, find nice hotels with a swimming pool and plan an itinerary for the time."

This agent will then split the tasks and find "Sub-Agents". It would tell the "Railway Agent" to find trips for that period of time, same with the "Flights Agent", same with a "Rental Car Agent", in the meantime he asks a "Hotel Agent" to find available hotels with swimming pool. It will ask them for prices, special features, travel time, customer ratings, etc. It waits for the results from the Sub-Agents, reads them, maybe refine the query and ask again for missing information. At the end when the Travel Agent has all the necessary information. It compiles the 3 top alternatives, with routes, prices, travel time, pictures, ratings. This will take maybe an hour, probably much less.

You probably know "Coding Agents". They are specialised in coding (who would have thought 😊). Popular ones are Codex from OpenAI, Claude Code from Anthropic, Cursor now owned by Elon. They can literally program, write to your file system, execute code, test it, find bugs, fixing them, deploy the code to GitHub. Tell the colleagues on Slack when it needs more input permissions, etc. It's basically a highly skilled intern, with all access to your computer and your DB that you would give an Intern. It can run for hours or even days before it finishes.

So Agents are specialised programs. You can give them a task, success criteria and then they run in a loop until they have met the criteria. They are expensive to build and to maintain. It's not giving an LLM a specific System Prompt like "You are an expert on traveling".

Agents use LLMs to decide what is the next step, to actually generate code, to check if all the success criteria have been met, etc. And the LLMs are using Tools / Integrations to answer the questions from the Agents. So they may call your functions from your APEX App (called On Demand) that you have provided and told the Agent or an LLM that they are available for calling, together with the parameters and what it can expect as the result. The LLM decides to call one or a couple of them to answer a specific question. If you register your whole DB with an Agent or an LLM, it can even create arbitrary SQLs and read or even write into your DB. This registering file is called an "MCP-Server". In the case of a DB MCP it's basically a little more than the connection string to SQLcl 😊. But all these things are doing one thing and one thing only, it enhances the context of an LLM to answer the question. For completeness, there are also functions that don't return information but execute something in the DB, like updating a record or sending an email.

So Agents are a separate animal!

Google developed an Agent2Agent Protocol "A2A" that allows different Agents from different vendors to find each other, exchange messages, coordinate tasks, share results in a common memory, etc.

Unfortunately APEX called their functions you can register with an LLM or an Agent, guess what... "Agents" πŸ₯³. Why? Because they are evil. Every multi billion company is evil and they do everything to succeed and lying is the very first thing πŸ˜‰. Of course they know that it can't be further from the truth, but it sells and in the downstream employee hierarchy, there are enough who are happy to wave this new flag without even questioning it and then there are the few who know but rather decide to shut up not to get in trouble. So we are basically back to COVID, just to name one of hundreds πŸ˜‰

Everything APEX and the whole DB can provide is Data! through functions or giving it access to the whole DB. Oracle has no LLM and as far as I know it also has no Agents but 100% not in APEX. Correct if I'm wrong but prove it. Don't just repeat the marketing nonsense!

The proof is in the pudding. Here is a video of Wolf Beckmann, same kind of genius like Philipp. Especially when it comes to AI, you should ask him first. He is also part of the apex.world team and the architect of our apex.world AI Assistant RAG solution. The YouTube video (German) was made 2.5 years ago, using the technology available at the time. The word Agent was not even invented back then. He shows exactly how to do function calling in APEX 2.5 years ago with APEX 23! With 26.1 we have that now in a declarative way and we don't have to bend over backwards to establish an APEX session, but it's the same thing! That's the beauty of APEX that everything that was technically possible was possible to use in APEX from day 1, because the framework didn't lock you in, it allowed everything that is not available declaratively yet just to code it yourself πŸ˜‰

It's sad, because the APEX team did an excellent job to define these context enhancing functions! I can't think of anything missing. You can provide everything from the DB, even RAG content, add attachments, even provide content that's just available on the Browser and you can also let AI execute functions for changing content or sending an email. There wouldn't have been any need to lie, but who cares. If you earn more money (which is always the equivalent of power) and enough people including the paid press is repeating it, suddenly you can identify as an Agent whenever you want... πŸ˜‰