“The AI knows what it does not know by knowing what it knows.”
The Oghma Infinium is a feature that will inject specific lore information, based on what the NPC should know about a subject. This makes AI NPCs roleplay their character more effectively. It will trigger when you talk to an NPC and when NPC’s rechat amongst themselves.
What it does for AI roleplay:
Blacksmiths will know how to craft specific weapons.
Fishermen can tell you how to catch specific fish.
Scholarly book nerds can talk about the meaning behind “The Wolf Queen”.
Someone from Riften can tell you where Northwind Summit is, someone from Solitude will have no idea where it is.
Alchemists can tell you what an ingredient’s magical properties are.
A Redguard can go into detail about their specific Gods.
We have a few videos here explaining how it works.
To use it just install and run Minime-T5. Then in the configuration wizard enable [MINIME_T5] & [OGHMA_INFINIUM]. Click save and copy to all profiles for both!
Each NPC has “Knowledge Classes” assigned to them based on their race, profession, location, name, factions, etc.
Example of Karita’s knowledge classes
When the Oghma Infinium is enabled and running, whenever you talk to an NPC the most relevant keyword will be extracted from the context. This keyword will then be searched for in the Oghma database to find the most relevant article.
Each knowledge entry has an advanced and basic article. Advanced articles are what an expert on the subject would know about. Basic articles would be a lay person's understanding on the subject.
Each entry also has advanced and basic tags. These tags are used to lock knowledge to people who have one of those classes assigned. If a knowledge tag cell is empty, it means ALL NPCs can access it with no restrictions (common world knowledge).
Here is an example using Akatosh. The advanced article has some rather deep lore information that only a priest, snowelf, scholarly person or dragon would know about. Everyone else would only be fed basic information about Akatosh as the basic tags cell is empty.
When an AI NPC finds an appropriate article they will:
Check the advanced tags to see if they can access the advanced article.
Check the basic tags to see if they can access a basic article.
If they are unable to access either article, they will be fed a prompt “You do not know anything about X”.
Here is an example using Kartia after I ask her “Where is the Dark Brotherhood Sanctuary?”
Karita’s Knowledge Classes:
"nord, merchant, whiterun, karita"
The keyword “dark_brotherhood_sanctuary” is extracted from the conversation.
An entry in the Oghma database is found called “dark_brotherhood_sanctuary”
We compare Karita’s knowledge classes (nord, merchant, whiterun, karita) to the advanced article (darkbrotherhood). There is no match.
We compare Karita’s knowledge classes (nord, merchant, whiterun, karita) to the basic article (legion, thievesguild). There is no match.
We tell Karita directly “You do not know anything about the Dark Brotherhood Sanctuary”.
Karita will most likely respond to the player “Sorry traveller I have no idea what you are talking about.”
This simple logic detection can lead to great role-play depth within the system.
For example we have articles for (almost) EVERY SINGLE location in the game (500+ entries). We can limit what people know about locations based on the region they are from.
An example using “Northwind Summit” as a conversation topic. People from Riften have good information about the location. People from Falkreath and Eastmarch have a vague understanding of that location. Elsewhere in Skyrim, no one has a clue what or where it is.
You can adjust how many keywords (1-3) that will attempt to get pulled during every chat event.
Example of Oghma stripping multiple keywords from one conversation.
The game design for this system is that correct world information will be injected into AI NPCs during regular conversation. We don’t expect or want you to always have to ask “What do you know about X?”. Instead through regular play and dialogue, you should notice that AI NPC’s act a little bit smarter. Even if using a smart LLM that may have a lot of this knowledge already, Oghma will help guide NPC’s to limit knowledge suitable for their character. They should make more on-the-nose references to relevant topics that come up naturally through play.
We are working to add more information into this system with “Project Oghma” Project Oghma
If you are interested in helping, join the Discord and talk in the #project-oghma channel!
If you are an AI/LLM developer, it's just RAG ¯\_(ツ)_/¯
You can easily add and edit your own topics to the Oghma Infinium database with the management page.
You can also browse the database to view what topics are available. By default it comes with just standard knowledge of Skyrim, but you can easily expand it to your specific game canon.
How topics are picked. It is a 4 point scoring system based on current response, past response, summary of context log & current location.You can see the logic of which article it pulls by looking at the audit_memory table in the Database Management page.
Entires in the Dynamic Oghma table will update the Oghma table above whenever the quest ID & stage ID for a quest is reached.
Any changes from a topic in this table will override whatever is in the Oghma table. You can leave cells empty so they do not overwrite specific cells from the Oghma table. If a cell has the text "clearall" in it, it will clear that cell in the Oghma table. You also can introduce new topics to the Oghma table as well.