Oracle VirtualBox 7.2.20

Hot on the heels of VirtualBox 7.2.18, which I wrote a few days ago, we now have VirtualBox 7.2.20. The only update in this release is a fix for Windows, which didn’t affect me, but I’ve heard people complain about it..

  • Windows Host: Fixed regression causing VMs to fail with VERR_SUP_VP_FOUND_EXEC_MEMORY (?github:gh-870)

The downloads and changelog are in the usual places.

I’ve done installations on Windows 11 and Linux Mint and both seem OK.

Vagrant

If you are into Vagrant you can find my builds here.

https://github.com/oraclebase/vagrant

Let’s see where this takes us…

Cheers

Tim…

Joel Kallman Day 2026 : Announcement

Since 2016 we’ve had an Oracle community day where we push out content on the same day to try and get a bit of a community buzz. The name has changed over the years, but in 2021 it was renamed to the “Joel Kallman Day”. Joel was big on community, and it seems like a fitting tribute to him.

When is it?

The date is Wednesday October 14th. That’s three weeks away from today!

How do I get involved?

Here is the way it works.

  • Write a blog post. The title should be in the format “<insert-the-title-here> #JoelKallmanDay“.
  • The content can be pretty much anything. See the section below.
  • Tweet out the blog post on social media using the hashtag #JoelKallmanDay.
  • Publishing the posts on the same day allows us to generate a buzz. In previous years loads of people were on social media retweeting, making it even bigger. The community is spread around the world, so the posts will be released over a 24 hour period.
  • Oracle employees are welcome to join in. This is a community day about anything to do with the Oracle community.

Like previous years, it would be really nice if we could get a bunch of first-timers involved, but it’s also an opportunity to see existing folks blog for the first time in ages! 

The following day I write a summary post that includes links to all the posts that were pushed out through the day. You can see examples here.

What Should I Write About?

Whatever you want to write about. Here are some suggestions that might help you.

  • My favourite feature of {the Oracle-related tech you work on}.
  • What is the next thing on your list to learn.
  • Horror stories. My biggest screw up, and how I fixed it.
  • How the {a specific piece of tech} has affected my job.
  • What I get out of the Oracle Community.
  • What feature I would love to see added to {the Oracle-related tech you work on}.
  • The project I worked on that I’m the most proud of. (Related to Oracle tech of course)

It’s not limited to these. You can literally write about anything Oracle or community related. The posts can be short, which makes it easy for new people to get involved. If you do want to write about something technical, that’s fine. You can also write a simple overview post and link to more detailed posts on a subject if you like. In the previous years the posts I enjoyed the most were those that showed the human side of things, but that’s just me. Do whatever you like. 

Do I have to write in English?

No! It’s great to see people contributing to their own community. Google Translate does a pretty good job of translating them, so we can still read them.

Do I need to write about Joel or APEX?

I’m sure people would be happy to read stories about Joel, or content about APEX, but you don’t have to write about that. You can write about whatever you want, so long as it has an Oracle and/or community spin…

So you have about three weeks to get something ready!

Cheers

Tim…

Oracle VirtualBox 7.2.18

Oracle released VirtualBox 7.2.18 was released a couple of days ago.

The downloads and changelog are in the usual places.

I’ve done installations on Windows 11 and Linux Mint and both seem OK.

Vagrant

If you are into Vagrant you can find my builds here.

https://github.com/oraclebase/vagrant

You can see the list of Vagrant boxes I build and use here, but it’s worth checking out the update below to see my plans for the future.

https://portal.cloud.hashicorp.com/vagrant/discover/oraclebase

I’ve already done some builds, including RAC builds, and so far so good.

Vagrant Box Hosting Issues (Update)

I mentioned in my previous post about the changes to Vagrant box hosting going forward. I’ve decided that in future I will use the Oracle provided Vagrant boxes (here) as my base.

I’m not going to do a full scale search/replace at this point, but change things over time. I’m already using the Oracle box for my OL10 26ai RAC build for example.

Let’s see where this takes us…

Cheers

Tim…

Oracle AI Database 26ai (23.26.2) Supported on Oracle Linux 10 (OL10)

A few weeks ago Laurent Schneider messaged me to say Oracle Database 26ai (23.26.2) was supported on Oracle Linux 10 (OL10).

That started the usual series of test builds.

Basic Installations

I already had an installation article for 26ai on OL10, but I updated it, including using the new preinstall package which is now in the OL10 Yum repository.

The installation works fine for the base release of 26ai, so you don’t need to patch it to 23.26.2 to perform the installation. Just remember you are only running a supported setup if you are patched.

In addition to the basic release, there are now RPM installations for 26ai and 26ai Free on OL10.

I’ve created Vagrant builds for all of these.

Data Guard

The existing Data Guard installation article remains mostly the same, but there are new references to OL10.

There is also a new Vagrant build for this.

RAC

I was hoping to include a RAC build in this posts, but I’ve hit a bit of a stumbling block before I even get to the grid infrastructure installation.

When I set up passwordless authentication between the RAC nodes something is going a little crazy. Sometimes connections work, and sometimes I get “Connection closed by remote host” errors. I’ve tried all the usual suspects.

  • Local Firewalls : Disabled on all nodes.
  • Authentication Keys : I’ve tried various types of keys, with varying key sizes.
  • SSHD Config : I have tried a number of settings recommended by various sites. None seem to make a difference.

As I said, it does sometimes connect, so I’m not sure if this is a bug in SSHD, an issue with VirtualBox, or a problem with my host machine. I’ve not seen this problem with any of my other RAC builds on the same host, such as 26ai on OL9, so it feels like it is an OL10 issue, but I could be wrong.

Update: I’ve tried a bunch of things, and had suggestions from folks on social media. Here is what I’ve tried and the results.

  • I wondered if it was my Vagrant box that had the problem. I tried the Oracle OL10 box, and it did the same thing. It’s not just node-to-node SSH that is affected. It will also happen sometimes when a node tries to SSH to itself.
  • As I mentioned before, I tried various key types and sizes of keys. All gave the same result.
  • It was suggested I add entries into the “/etc/security/access.conf” file, which I’ve done, but it didn’t help.
  • I wondered if it were a problem with my Linux Mint host, so I tried on my Windows 11 PC. It gave the same result.
  • I started to suspect the issue was not with SSH itself, but with “sshpass” and “ssh-copy-id”. These are used to setup passwordless authentication automatically. If I instead switched to manually setting up passwordless authentication, things worked fine.

Where it currently stands is I have a “working” vagrant build here.

https://github.com/oraclebase/vagrant/tree/master/rac/ol10_26

The root_setup.sh script on node 1 has a lot of the contents commented out. This way you can manually configure passwordless SSH for the root and oracle users, before continuing with the GI and DB installations. If I do the manually authentication setup, everything else works fine. 🙂

I’ll continue to try and bottom out the issue, and update when I’ve cracked it. Thanks for the suggestions people have sent.

Once I figure out what the problem is, it should be plain sailing to push out the build.

Cheers

Tim…

Oracle VirtualBox 7.2.16 and Vagrant Box Hosting Issues

Oracle released VirtualBox 7.2.16 was released yesterday.

The downloads and changelog are in the usual places.

I’ve done installations on Windows 11 and Linux Mint and both seem fine.

Vagrant

If you are into Vagrant you can find my builds here.

https://github.com/oraclebase/vagrant

You can see the list of Vagrant boxes I build and use here.

https://portal.cloud.hashicorp.com/vagrant/discover/oraclebase

As normal. I’ll be doing a lot of builds over the next few days, so I’ll report back here if I have any drama. 🙂

Vagrant Box Hosting Issues

I’m still having some issues uploading new Vagrant boxes to Vagrant Cloud. The existing versions of the boxes are still work with the new version of VirtualBox, so it’s not a problem, but it is annoying.

Whilst trying to upload the latest box versions I noticed this.

In short, HashiCorp are going to stop hosting and distributing these boxes, so I have to make some decisions about how I’m going to work with Vagrant in future. I guess my options are as follows.

  • Use boxes provided by someone else, for example Oracle (here). On the surface, this seems like a reasonable option, but it has caused me issues in the past. I previously tried to use boxes provided by other people, including Oracle, but occasionally they made changes that broke my builds. This left me scrabbling around trying to figure out where the problem was, and of course how to work around it. The main reason I switched to using my own Vagrant boxes was to give my builds more consistency. I’m not saying I won’t switch to another provider, but it is likely to be less reliable in my experience.
  • Build local versions of Vagrant boxes using Packer on each machine. This is fine for me, but it does make the process harder for other people, which is likely to be a step too far for many. The great thing about Vagrant is how easy it is to get up and running. If I add another step of telling people to download the operating system ISO, install Packer and run a build of a Vagrant box before they can actually use my Vagrant builds, I imagine many people will just not bother. It sounds a lot harder than just running “vagrant up”. 🙂
  • Self-host my boxes. I’ve got to look into the implications of this. If I’m honest I don’t want to have to go the expense of paying for this, as I don’t personally need it. I’m losing enough money on hosting without adding to the bill.

This is annoying, but I can understand HashiCorp not wanting to continue to support this. There are loads of boxes, of varying quality, some of which no doubt contain dubious software. I guess it’s safer and cheaper for them to wash their hands of it. I could moan about how things have changed since IBM took over, but…

I’ve got a few months before Vagrant Cloud closes the doors on me. I will try some stuff out before making a final decision. I just thought I would say something about it now, so it doesn’t come as a surprise later. 🙂

Cheers

Tim…

Oracle Support : An Update

My last post was a rant about Oracle Support. As a result of that some folks from Oracle reached out for a meeting to discuss my experience. This was not about the specific SR, but my general experience of using Oracle Support as a customer. In this post I’ll discuss some of the information that I think will be useful to others, focusing on the points I raised in my post.

Website Speed

The sluggishness of the interface was apparent during one of the demos. I don’t like the Oracle Support website, so it’s usually the last place I look. Having to deal with the slow performance is quite literally a drag.

The folks from Oracle have been looking into the issue, and have noticed a couple of things to work on.

Opinion: Do I think this will result in the website being lightning fast? No. Having said that, any improvement would be welcome.

AI Search vs Regular Search

I just don’t like the AI search. During the discussion it became apparent there were two distinct approaches to finding information.

  • People who just want an answer, and don’t really care about digging into details. It’s possible they don’t have the specific keywords or phrases for a traditional search, so a chat interface will help them drill down to a solution.
  • People who know exactly what they want, and find the AI search infuriating.

Guess which one I am. 🙂

If you prefer a more traditional search, the “Knowledge” link at the top of the screen takes you to something that resembles the original search. I had tried using this with limited success. The main thing I had been searching for was not coming back using this search, so I wrote it off as not working properly. It turns out I happened to be looking for one of the few things that was not picked up by this search, hence my issue. I can’t really go into details about this, but suffice to say, if you want a regular search experience, use the “Knowledge” link. It’s probably what you are looking for.

If on the other hand you like a verbose chat with an AI, it’s front and center on the home page.

Patch Downloads

In preparation for this meeting I checked a few patch downloads and they were working now. To remind you, I mostly see “Oracle support download 400 Bad Request Request Header Or Cookie Too Large” errors when trying to download newly released patches using the web interface. At the same time the patches download fine using AutoUpgrade or a wget script.

Fortunately there are a number of other people who have written about this issue, so I’m clearly not on my own. There was no resolution to this issue, but the guess was it was a synchronisation issue. It is interesting that at a later date the downloads start to work. It’s just unfortunate that they don’t work when I need them.

Having said that, my workflow has changed now. I have given up on the website for downloads, so if this does ever get resolved in future, it’s unlikely it will affect me. 🙂

Service Request Escalation (Manager Actions)

As I mentioned in my previous post, I raised my recent call with the wrong severity level, and was having problems getting it escalated. It turned out what I should have done is the following.

  • Open the SR.
  • Click on the “Details” tab.
  • Under the “Manager Actions” section, click the “Request Manager Action” button.
  • Explain why you need a manager action, check your contact details and click the “Submit” button.

This request will get allocated to a manager, who will make a decision about what needs to be done.

Here are my thoughts on this.

  • I feel kind-of dumb for not knowing this, but I’m guessing if I hadn’t come across it, other people won’t have either. Certainly our account manager hadn’t, as they gave us the telephone equivalent of this, which didn’t work for us.
  • This only works if people don’t spam the Manager Actions. If every SR includes manager actions, I feel like this is going to break down.

Some folks on social media mentioned the manager actions stuff, so the message has been put out there. Clearly I was not listening. 🙂

MOS – Portal Documentation (MC1)

There is a document to explain a bunch of stuff about the Oracle Support interface called MC1. If you don’t remember the link, you can get to it using the “Knowledge” search, and search for “MC1”.

I feel I may have been referred to this before, but I’m not 100% sure. It’s good this exists, but at the same time I feel like if I have to read a manual to use a support portal, that says something about the UX. 🙂

Previous Post

We also discussed some of the points raised in one of my previous posts.

My Oracle Support (MOS) Portal : What needs fixing?

In the past I’ve added updates to explain what was subsequently fixed. There are a few more updates I’ll add over the next few days. It’s always good to keep the record straight. 🙂

It should work for everyone

I guess one of my take home points about the Oracle Support experience is it should work for everyone.

At times it feels like the best solution is to spend 26 years building a website and getting a following in the Oracle community, then posting a rant on social media that gets some attention. That works great for me, but it’s not really a practical solution for everyone. 🙂

Conclusion

Thanks to the folks on social media who reached out to help, and of course thanks to the folks from Oracle Support who arranged this call, so we could discuss my rants. Let’s hope we can get to a point where the next rant is unnecessary. 🙂

Cheers

Tim…

Oracle Support : A recent experience

If you follow me you know I have a history of moaning about Oracle Support. I have had some good experiences in the past, but overall I would have to judge the services as a complete fail.

Website

Since the migration of the main Oracle Support website, the user experience has been terrible. A lot of this was summed up in this post.

Some of the issues were fixed pretty quickly. Some were tweaked and some still have issues.

Overall I would say the following:

  • Slow : The site is incredibly slow. In some cases I’m waiting so long I’m wondering if I actually didn’t click the link, then the page will start to render. It’s like the “7 second rule” never existed.
  • AI Search : The AI search is terrible. I would go as far as to say it just doesn’t work. I just want a regular search box. Please put this on a separate tab. Don’t make it the focus of the front page.
  • Broken Links : The notes (and the rest of the internet) are still full of broken MOS links. I don’t know how many times I’ve said it, but a link is for life. If you choose to alter your system and the resulting URL, it is up to you to make sure you handle the change correctly. Sending things to a posh 404 page isn’t the answer. There were a lot of improvements in the early days, but Oracle Support is still crammed full of broken links.

Patch Downloads

I can’t remember the last time I got a DB or EM patch that could be downloaded from the website. Almost all patches fail to download with a “Oracle support download 400 Bad Request Request Header Or Cookie Too Large” error. I have to use a script to pull down the patches. It’s kind-of embarrassing that basic functionality like this has been broken for months…

Edit: Since people have asked about it, I thought I better clarify. I use AutoUpgrade to get the latest DB patches (see here). I use this script to get other patches (see here).

Edit 2: I’ve tried some of the DB patches today and the downloads are working. I’m not sure if this means downloads are fixed for good, or if new downloads will be broken for weeks in future. Using a script seems to be the most reliable approach.

Service Requests

The reason I’ve been on Oracle Support a lot recently is because I’ve been dealing with a weird ORA-00600 relating to Advanced Queuing on a production system. This has just highlighted how bad an experience it is.

I raised the SR, saying it was for a production system, but we hadn’t lost all functionality. As a result it got assigned a Severity 3. That was my mistake. I should have said the sky was falling in, which it kind-of was, and got it at least a severity 2. My boss and I tried to escalate it, but were not able to. I wrote twice on the SR that it needed to be escalated as we had a loss of functionality that was really hitting the business hard. I also tried to call. While I was being directed to a human an automated voice said they couldn’t connect me and disconnected.

We tried reaching out to out account manager, who said he couldn’t do anything.

Eventually I lost the plot and had a rant on Twitter and LinkedIn. Pretty soon I had some folks from Oracle reached out. The SR had its severity level changed and I was told people would be on the case.

As of writing I can’t check the updates to the SR because the authentication system seems to be down, so I can’t connect to support to read it. 🙁

I’m really grateful for people stepping in to help, but you shouldn’t have to be someone with my profile to get a reasonable level of service when you are paying for it. This isn’t about me. It’s about how paying customers are being treated. It’s not good enough!

I realise the massive amount of staff layoffs can’t have helped, and I feel genuinely sorry for the folks that are left behind trying to keep their heads above water, but bad decisions by senior management is not my problem.

It’s Nothing New

Some people have commented on social media that this is nothing new. I am aware of that. Search the blog for Oracle Support and you will see a bunch of posts about issues I’ve had with the service.

I’m going to draw this to a close here. I have no idea how this current SR is going to go. Hopefully it is something I’m doing wrong and it will get fixed soon. Whatever the issue, Oracle Support has got to do better!

Cheers

Tim…

PS. I told my boss about the current authentication issue and he replied, “are they using a queue?” 🙂

Update: We have a workaround in place now (not using AQ) so the system is working again. That takes the pressure off. We’ve had a response on the SR, so we have stuff to work on. Many thanks to those that reached out from Oracle to help. If you are reading this message we don’t need any more intervention. Thanks for everyone’s help!

Oracle VirtualBox 7.2.14

Oracle released VirtualBox 7.2.14 a couple of days ago. As I mentioned in my previous post, I was expecting this release to coincide with the the normal quarterly patch cycle.

The downloads and changelog are in the usual places.

I’ve done installations on Windows 11 and Linux Mint and both worked fine.

Vagrant

I didn’t bother updating my Vagrant boxes for the previous release because I was expecting this release. I’ve gone through the rebuilds of the boxes and they seem fine with the updated guest additions.

If you are into Vagrant you can find my builds here.

https://github.com/oraclebase/vagrant

You can see the list of Vagrant boxes I build and use here.

https://portal.cloud.hashicorp.com/vagrant/discover/oraclebase

The builds of the Vagrant boxes using Packer went fine, but I’m having some problems uploading them to Vagrant cloud at the moment. They get about half way through and fail. Hopefully I’ll get the new boxes uploaded in the next couple of days.

As normal. I’ll be doing a lot of builds over the next few days, so I’ll report back here if I have any drama. 🙂

Cheers

Tim…

Oracle VirtualBox 7.2.12

Oracle released VirtualBox 7.2.12 a couple of days ago. This comes hot on the heels of version 7.2.10, which I wrote about here.

The downloads and changelog are in the usual places.

I’ve done installations on Windows 11 and Linux Mint and both seem OK.

As with the last version, on Windows 11 I got away with a straight upgrade, but it’s worth remembering the cleanest way to upgrade on Windows is to do the following.

  • Uninstall VirtualBox.
  • Make sure all “VirtualBox Host-Only Ethernet Adapter” adapters in Device Manager had been removed.
  • Reboot.
  • Install VirtualBox using “run as administrator”.
  • Reboot.

Vagrant

I don’t think I will rebuild all my Vagrant boxes this time. I suspect we will get another new version in the next couple of weeks when the Oracle patches drop, so it seems a bit pointless to waste the time now.

If you are into Vagrant you can find my builds here.

https://github.com/oraclebase/vagrant

You can see the list of Vagrant boxes I build and use here.

https://portal.cloud.hashicorp.com/vagrant/discover/oraclebase

Cheers

Tim…

Running Large Language Models (LLMs) Locally : Some Clarification

After my recent posts on this subject I got some questions, and I thought I would use my responses to write a new post. I’m hoping this makes the situation more clear. I’ll link my other posts on this subject at the bottom, in case you want to look at them. Some of these topics have been touched on in them also.

Why bother with local models?

I covered that here. In summary it’s cost and security.

The model matters

When running LLMs locally you have a massive list of open models to choose from. Hugging Face has a list of many of them here. It’s easy to get fooled into thinking the only models worth using are the frontier models, but that’s not true. Depending on the task you are doing, some smaller models give comparable results at zero cost and reasonable speed on low powered hardware.

So how do you know which model to choose? Every time I hear someone say something positive about a model I try it. It’s very easy to repeat some previous prompts and compare the results. There is no “best” model, even with the frontier models. So much depends on what you are doing. You may find you use several models on a regular basis. The great thing about running LLMs locally is you can do this with no cost implications.

What I’ve learned is that the size of the model is not always a reflection of the quality of output. Sure the bigger models are better all-rounders, but most of the time I’m using the LLM for specific tasks, and some of the smaller models work really well. The recent release of the Google Gemma4 QAT models really demonstrates this. They are designed to run on end user kit. They use a lot less memory, but perform equivalent to much bigger models. For example, gemma4:12b-it-qat is a 12b parameter model that performs nearly as well as the gemma4:26b model, which is three times the size. They are designed for agentic processing, so using them with a coding agent is cool.

Ultimately you can only use the models your kit can cope with. Just play around. I’ll mention what I’m using a little later, but if you look at my previous posts you will see I’ve changed several times. 🙂

The prompt matters

The more specific you are, the better the result! Some people feel like this is magic and they can put very little in the prompt, then they are disappointed with the result.

Just think of it like a program specification. The more specific you make it, the less room there is for a developer to make a mistake, or forget something. LLMs are the same in this respect. Some people go as far as providing pseudo code. For some tasks you will refer to your existing code base to give extra context. The trick is to provide enough information to get the job done, but not too much so you confuse the situation. Sound familiar? As I said, it’s like a program specification.

It takes time to get a feel for this. It also varies a little depending on the model used.

If you are working on some very specific stuff, you can direct the
LLM using skills, to keep it focussed. For example I cloned the Oracle
skills (https://github.com/oracle/skills.git) repo to help with creating an
APEX app. My prompt references a subset of the skills.

Generate a new APEX app.
Skills defined under the /u01/skills/apex directory
Table metadata in the /u01/apex_code/schema.sql file
Application name : Clocking
APEX workspace : CLOCKING_WS
Required pages:
– home page
– a page display and edit staff
– a page to log start and end times for a member of staff
– navigation
– breadcrumbs
– use default security.
Place the resulting code in the /u01/apex_code directory.

In this example I referenced a schema definition in a file. You could allow an agent to connect to the database and get information from there.

Here’s an example prompt from a previous blog post, where used an agent to generate some Python code to populate a vector column in the database.

Create a Python script called “/tmp/add_vector_embeddings.py”.
The script connects to an Oracle database.
Assume a database connection string will be provided as an environment variable.
The script reads the MOVIE_QUOTE column from a table called MOVIE_QUOTES.
It uses the data from the MOVIE_QUOTE column to create a vector
embedding using the EmbeddingGemma model running under Ollama.
The Ollama base URL will be provided by an environment variable.
The MOVIE_QUOTES table is then updated, setting the MOVIE_QUOTE_VECTOR column to the vector embedding value.
This should be done for all rows in the table.

Over time I’ve got better at prompting, the way it took me some time
to learn how to Google. I’m not saying I’m a prompt God, but I’m getting
better over time.

Retrieval-Augmented Generation (RAG)

I’m going to keep this really simple, but hopefully you get the idea. 🙂

Models are trained on data, and they answer your question based on the training data they have. If you want to work on a subject that is not part of their training data, they are going to struggle. If their training data contains a lot of “questionable” stuff, they may follow a path you do not agree with. With Retrieval-Augmented Generation (RAG) you can provide the LLM with information that you believe is relevant, and it will interpret and use that information.

For example you might provide a PDF of some documentation and tell the
model/agent to use that as the basis of the answer. This way it doesn’t search the net for old rubbish. It goes straight for docs you have said are quality. You can also point it at your existing code repos, and tell it to give the answer in the style of your existing code base. That way you are likely to get an answer more pleasing to you. It’s effectively making the prompt better, and we’ve already said the prompt matters.

RAG can also include searching the internet to see if alternative information is available to augment the training data. If you use agentic workflows, searching for additional information is quite a common step.

RAG is a whole subject in its own right, but I think we’ll stop at this point.

Chat vs Agentic

Using a model in a chat is nothing like using a model from a harness
(Pi agent, Hermes Agent, OpenCode, Claude Code, OpenAI Codex etc.).
These agents take your prompt and refine it using search. They come up
with a plan, then validate the plan. Once they’ve decided what they
need to do, they do it, then check the result. Sometimes they will
throw the result away and start again. It’s an iterative process that
may take some time, but the result is generally better than a one-off
question in chat.

This iterative process uses a lot more tokens, but when you are running locally that is fine. It’s all free. That’s very different to using a subscription or API billing, where an agent can end up costing you a fortune.

I didn’t appreciate the difference between chat and the agentic approach until I tried it. Once I did it was a light bulb moment. I now rarely use a chat and instead use an agent to get an answer. This is especially true of writing code, where I actually want it to write the files. An agent can do that, but a chat session can’t.

Agents are too dangerous!

If you give an agent full access to your machine, and link it into all your services (email, chat, git, deployment pipelines) there is a possibility it will make mistakes, but you don’t have to do that. For example I might let my agent read the contents of a git repo, but tell it to write changes to another location. I can then validate them separately.

If you are giving your agent access to your database, simply set up a read-only user. It will be able to look at the metadata, but not change anything.

You can give an agent as much or as little access to your system and services, so you are in control.

What kit should I buy?

This is going to be very vague and simplistic!

I discussed kit here. The problem is it is very nuanced. It depends what you are planning to do. You can get away with a small inference machine like a mini PC or a Mac mini, or you can buy a cluster of machines. I’m mostly focussed on running stuff at home, so I’m purposely not spending a fortune.

Personally I would get a Mac Mini or a MacBook Pro. If you are in a rush I
would get a M5 MBP. If you can wait, I would wait for the M5 Mac Mini
or the M6 MBP, both of which are meant to be released soon. I will
probably get an M5 Mac Mini when it is released.

The later the M series, the better it is for AI, as the number and
quality of the GPU cores increases over the generations, so in this
case later is better. That’s not to say the older M series chips can’t
do it. They just won’t do it as well.

The real kicker for larger models is memory. If you want to run the
big models you need a lot of memory for the GPU. This is where the
Apple Silicon architecture helps…

For a Windows PC using a GPU such as a RTX card, the model runs on GPU
memory, not on the system memory. If the GPU memory is not enough, it
will run on the CPU plus the system memory, but that is going to be
way slower than running on the GPU. As a result, you need a card with
the most VRAM you can get. For home use that is currently the 5090 with 64G. With Apple Silicon, the system memory is unified (shared between the system and the GPU), so if you get a 64G Mac, you can use a lot of that memory for
running models. What a lot of people do is get a Mac Studio with 128G
RAM, which allows them to run the bigger models, or even cluster
several together. Of course, this is really expensive.

I have a mini PC at the moment. I will probably end up getting a M5 mac mini with 32G RAM (if they don’t limit it to 24G), or a low end Mac Studio with 64G.

My experience of using the mini PC is pretty good for coding. I can
ask regular questions and it responds quickly. For a coding agent,
such as Pi Agent, it is surprisingly fast. I was expecting it to be
way worse. 🙂 It all depends on the model selection.

Remember, what I need and what you need may not be the same thing. Don’t take what I do as a recommendation for your requirements.

What models am I using now?

I’m currently using the Gemma4 (Google) models most of the time. The smaller ones are quicker, but the bigger ones give better output.

  • gemma4:e2b
  • gemma4:e4b
  • gemma4:12b

The normal 12b model was a little heavy. It worked, but it was a bit
sluggish. They now have these new versions using Quantization-Aware Training (QAT), which are smaller and give much better results.

  • gemma4:e2b-it-qat
  • gemma4:e4b-it-qat
  • gemma4:12b-it-qat

I now use “gemma4:12b-it-qat” for almost everything and it is really
good. I’m not sure I will use bigger models when I get better kit. I
will probably use the same ones, but get even speedier results.

Check out these posts from Google.

Previous posts

Here are some of the previous posts I’ve written about running LLMs locally.

Thoughts

I’m not a LLM or AI guy. I don’t have all the answers. I’m just a few weeks ahead of some of you, and a few years behind others. 🙂

Cheers

Tim…