AI Knowledge Base Indexing, Arguments Source Generation - This week in Orchard (10/04/2026)

This week in Orchard, we've got some exciting updates you won't want to miss!

Mike Alhayek showcases Knowledge Base Indexing, which automatically chunks, embeds, and indexes source documents into a unified AI Knowledge Base index for efficient vector search.

Hisham Bin Ateya introduces the new OrchardCore.ContentFields.Core module. You can now use content fields without pulling in the entire ContentFields module.

Thanks to Georg von Kries, Orchard Core now leverages source generators to boost performance by generating code at compile time and reducing reflection on critical paths.

And don't miss our RESCON case study, highlighting how we supported the builders of Ontario.

Ready to explore? Let's dive in!

Orchard Core updates

New OrchardCore.ContentFields.Core module

Every time you want to use any content field, for example, creating your own migrations, you have to reference the OrchardCore.ContentFields project. But it's unnecessary because in this case, you don't really need anything more than the class derived from ContentField and the corresponding settings.

Thanks to Hisham Bin Ateya, all the content fields were moved to a new OrchardCore.ContentFields.Core project. From now on, if you just want to use the fields, you don't need to include the entire OrchardCore.ContentFields module, just the core one.

New OrchardCore.ContentFields.Core module

Arguments Source Generation

This is to improve the performance. The idea is that we have a From method here in the Arguments class. When we create shapes, we can pass custom properties. These properties have to be in an instance of type INamedEnumerable. It lets you list arguments and also get them by name and position. And by using the Arguments.From, you can pass any kind of objects, including anonymous objects, and it will convert these objects to an INamedEnumerable. And it will do that by reflection.

The idea from Georg von Kries is to use source generators. The first case is when we do Arguments.From and then we pass a custom class. What it will do is enhance this custom class, which has to be partial. It will return a dedicated INamedEnumerable instance that won't use reflection.

Source Generators Documentation

You can also see an ArgumentsFromInterceptor, which is a next-level source generator. It's when you call something like the From method, but it won't actually call it. It will replace the invocation of From with something else, such as directly instantiating an object that implements INamedEnumerable. And it will use the From method as a marker.

ArgumentsFromInterceptor

Check out Orchard Core's documentation for real-world examples, the migration guide, architecture details, and best practices!

Demos

AI Knowledge Base Indexing

Before redesigning the UI in the AI Suite and integrating everything into the AI mechanism, we used multiple providers and relied heavily on the Microsoft.Extensions.AI libraries. It was a provider-driven communication, and there was no such thing as trying to understand what this user wants, or trying to give that user as much power as we can, or trying to rewrite their prompt. The whole design now looks like a standalone orchestrator. This means the prompt goes to the orchestrator, which is determined by your settings. It is not responsible for a lot more than just sending the prompt. Now we have a true orchestrator.

So, the orchestrator was redesigned to handle prompt routing, provider selection, and data retrieval, enabling the use of any index as a data source for AI interactions, and supporting document upload and retrieval-augmented generation (RAG).

How does that all work? First, don't forget to clone the CrestApps Orchard Core Modules repository and run the solution. Once you are done, enter the admin area and go to Search -> Indexes, where you will see two new sources when you click the Add index button. Let's focus on the AI Knowledge Base Index!

AI Knowledge Base Index

That index automatically lets you embed any data from any index. It can become available for the orchestrator. So, it automatically chunks, embeds, and indexes source documents into a master AI Knowledge Base index for efficient vector search.

We also created another index for content, which we called articles. It stores the data for Article content items.

Articles index

We want to expose this data to AI. To do that, we navigated to Artificial Intelligence -> Data Sources and clicked the Add data source button. This UI has changed a lot. Now you can select whichever index that you want to pull the data from and the knowledge base index. And then you can define whichever fields you want.

Creating a new Data Source

Now you have a data source! It means we can go to Artificial Intelligence -> Chat Interactions and add a new interaction. Here you can see the Data source drop-down, which is similar to what we had in the past. And now, if you ask questions, it will look up the data in the selected index and pull it from there, too.

Chat Interactions

If you want to see this feature in action, don't forget to head to YouTube for a demo by Mike Alhayek!

News from the community

Helping out the builders of Ontario - RESCON case study by Lombiq

When your homepage shows outdated content, it's not just a bug; it affects credibility.

Residential Construction Council of Ontario (RESCON) runs a headless Orchard Core backend with a separate Vue frontend. Over time, their homepage widgets started surfacing older news and posts again, even though everything looked fine right after publishing.

We investigated the architecture, traced the issue back to a search indexing inconsistency, and made a deliberate choice: Instead of endlessly hardening the setup, we simplified the system. In the case study, we walk through:

  • The original architectural setup.
  • The real root cause.
  • Why simplify beat hardening?
  • What we improved beyond the immediate fix.

If you're running Orchard Core in a headless or multi-layer setup, this will likely feel familiar. Read the full case study here!

RESCON case study Lombiq

If your Orchard Core application behaves unpredictably, whether it's publishing inconsistencies, performance issues, or architectural drift over time, we can help diagnose and stabilize it. Get in touch and let's take a look!

Orchard Dojo Newsletter

Lombiq's Orchard Dojo Newsletter has 421 subscribers! We have started this newsletter to keep the Orchard community informed about the latest news on the platform. By subscribing to this newsletter, you will receive an email whenever a new post is published to Orchard Dojo, including 'This Week in Orchard', of course.

Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here!

If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!