Saturday, August 29, 2026

#1168 - 26.10 New Features - Moving to OIC Projects

Introduction 

Adopting projects is the key to all of our compelling new AI driven functionality. With 26.10, we're making it even easier for existing OIC customers to adopt projects. Many customers already have 100s of integrations running their business, so how can they get these integrations from what we call the "global space" into projects? Hey, just move them!
 

Let's look at the details - the 26.10 release makes it even easier to move your integrations from the global space to projects. Again, what do I mean by the global space? It's where you created integrations, before we introduced projects.

Check out the new new option in Add to project

Move will do what it says - move the integration(s) selected into a project, either a new or existing project. But it does more; it maintains the global space endpoint, so your OIC clients do not have to change anything.

Let's try this out - 

I begin by running AA Create Order from Postman -  here is the endpoint url -

https://myOIC.integration.us-phoenix-1.ocp.oraclecloud.com/ic/api/integration/v1/flows/rest/AA_CREATE_ORDER/1.0/order

Back to Move to project - I can move to an existing project or create a new one. I go for the latter - 

I select the integrations to move - 

Note the following checkbox -


Let's activate AA Create Order

Note the new project based URL - 
I run the integration again from postman - 

the global space URL is still honoured - 

I try with the project based URL - 

Back in the global space - the integrations are still there -

I can delete them, firstly the create order integration -

Back in Postman - let's hit the global space URL again - 

You may ask, why doesn't the move automatically delete the integrations from the global space? The reason is to give you flexibility. Consider the situation where you want to do a rollback - 

there is no menu option rollback move - 
What I can do here is delete the project - 
Back in the global space - I only see the update order integration; as you remember, I deleted the other one.

I recreate the create order integration and start afresh -

I move both again - this time to the following project - 


I activate the create order integration in the project -

Note the pre-checked box - Retain origin endpoint - this allows me, at some point in the future, to deactivate support for the global space endpoint URL. 

I now return to the global space -

Technically, I can edit the create order integration here and activate it - 


What about multiple versions?

Here I have2 minor version and 2 major version of create order. 

Let's move again - 


This makes total sense as we want to maintain full compatibility. 

Global Space vs Project

Here I look at co-existence, starting with a simple example - 

I move create order to a new project -

I edit the integration in the project and change the status mapping to the following - 

I invoke the global space endpoint URL from postman and see the re-direction to the project based integration works - 

As we've already seen, the global space integration is still present, so let's edit it - 
 
Let's activate this and hit the global space endpoint url again -

Ergo, once I activate this integration in the global space, there will be no re-direction to the project based integration. Naturally, the project based integration url still works - 

This is important to note, and it's up to you as OIC users to manage this.

Summa Summarum

This is a huge value add, making it much easier for customers to adopt projects. So what's hold you back now?

Cerevisia Aestiva


Today's beer is very local - from Brauerei Fischer in Wieseth, Middle Franconia.

The brewery builds on a tradition, going back to 1607. The family Fischer took it over in 1872, so these folks know what they're doing and brewing.

Their Helles 4.9% beer is the perfect mix of malt and hops, giving a full bodied and crisp drinking experience.








 


 
 

  
















Thursday, August 27, 2026

#1167 - OIC Object Storage Native Action - Compartment not listed

Introduction 

Some folks might hit this issue - you want to use the OCI Object Storage Native Action, but you do not see your compartment in the wizard list.

Two things to note here -
1. OIC needs to have access to Object Storage, in order to use the native action. You need to apply a couple of policies to ensure this.

2. The OIC Native Action for Object Storage uses the typical wizard flow that we all know and love. In the wizard, you need to select the target compartment from a list. The UI will list up to 25 compartments, so you may not see your compartment in the list. 

The Policies

Polices for object storage can be applied to a dynamic group. This dynamic group can include your OIC instance(s).

The policy statements I used are -

Allow dynamic-group yourDynGroup to manage buckets in compartment yourObjectStorageCompartment

Allow dynamic-group yourDynGroup to manage objects in compartment yourObjectStorageCompartment

Allow dynamic-group yourDynGroup to read objectstorage-namespaces in compartment yourObjectStorageCompartment

The Dynamic Group

this I define as follows - 

As you can see, I've included 4 OIC instances in the group.

The relevant resource ids ending in _APPID can be found in the Oracle Cloud Services entry for that OIC instance -

Click on the OAuth configuration tab - 


Remember the 25 limit in the list? Don't fret, if your compartment is not included. Just select another one, however, to do this successfully, you will need to ensure the relevant policies have been created to give you access to the compartment you can select.

e.g. your object storage compartment is AAA, and you have executed the policy statements to give OIC access to Object storage buckets etc. in compartment AAA. However, you do not see compartment AAA in the list, when configuring the OCI Object Storage native action in OIC. However, you do see compartment BBB. Then execute the 3 policy statements for compartment BBB as well. You can then select BBB in the wizard and, then, in the mapper, set he target compartment id to that of AAA, thus overwriting what you have configured. More details below -  

Using the Native Action

Note, I've selected the compartment ending in Integration, but this is not the one I want. I select it anyway, as I have access to this compartment.

I then edit the mapper - 

and set the compartment id to that of my target compartment - 

Here are some of the buckets in my compartment.

I now run the scheduled integration and check the activity stream - 







Wednesday, August 26, 2026

#1166 - Private Agent Factory revisited

Introduction


I haven't looked at PAF in quite a while, and, when I did so, I was pleasantly surprised. There's lots of new value add here. In this blog post I'll take you through the functionality/components on offer, as well as a couple of simple demos to get you started.

Please note, most of the component descriptions below have been generated by ChatGPT, and I've verified such, before including them.

I'm using the PAF Menu as the starting point, let's begin with the section - PRE-BUILT AGENTS -

Pre-Built Agents

Knowledge Agents

Knowledge Agents are Oracle AI Database Private Agent Factory’s enterprise RAG assistants: they answer questions using content your organization approves and connects.

They ingest unstructured sources—such as SharePoint, Google Drive, internal sites, file uploads, and permitted public webpages—then crawl, parse, chunk, embed, and store that content in a vector database. At question time, the agent retrieves relevant passages and gives an LLM that context, so answers are grounded in the selected sources and include traceable links/citations. 

Net, net, use a Knowledge Agent when people need trustworthy, conversational answers from enterprise documents—not direct analysis of database tables or execution of workflows. Private Agent Factory keeps this within your organization’s controlled deployment and governance model.

I include a simple Knowledge Agent in one of the sections below.

Deep Data Research Agents

Deep Data Research Agents are prebuilt, file-backed research assistants in Oracle AI Database Private Agent Factory.

You give one or more uploaded enterprise file sources—such as reports, policies, technical papers, or product materials. The agent prepares a searchable knowledge base by processing, chunking, embedding, and indexing those files. It then retrieves relevant material and uses an LLM to synthesize an answer in chat, with citations back to the source documents.

Compared with a general Knowledge Agent, Deep Data Research is specifically focused on researching selected file data sources and is configured as a ready-made research workflow. It is a good fit for questions that require pulling together evidence across a corpus of enterprise documents. It does not query live structured database tables; that is the role of a Data Analysis Agent. 

Data Analysis Agents

Data Analysis Agents are Private Agent Factory’s assistants for structured Oracle Database data. You ask a business question in natural language; the agent understands the selected schema, generates and runs SQL, then returns explanations, tables, and—when useful—charts. 

Example: “Show quarterly revenue by region and flag unusual drops.” The agent queries only the database tables or views you chose during setup and that its configured database user can access.

For production use, Oracle recommends exposing curated views, granting only necessary read access, keeping sensitive columns out of the selected objects, and reviewing the generated SQL before relying on results. This differs from Knowledge and Deep Data Research Agents, which retrieve answers from documents rather than querying database tables.

Utilities

Agent Builder

This is essentially your PAF design time; more about this later.

Prompt Lab

Prompt Lab is an experimentation workspace in Oracle AI Database Private Agent Factory. It lets you try out custom prompts against an LLM before embedding them in an agent or workflow.

You can adjust the model and generation settings—such as temperature, maximum tokens, Top K, and Top P—then save tests, edit them later, and compare a new response with earlier outputs. It also provides reusable, prebuilt prompt examples for consistency across a team. 

Net, net, Prompt Lab is for prompt design and evaluation; it is not itself an end-user agent.

Datasets

In Oracle AI Database Private Agent Factory, Datasets are Oracle-provided sample data packages that you can import to quickly explore and test agents.

Each dataset is packaged as CSV or DMP and, when imported, becomes a new data source in Agent Factory. You can use:

  • Structured datasets with Data Analysis Agents, for natural-language queries over imported tables/views.

  • Unstructured datasets with Knowledge Agents, for document-based retrieval and grounded answers.

For example, importing the Oracle Database Knowledge Assistant dataset loads Oracle documentation, technical briefs, error messages, blogs, and feature guides so you can use the prebuilt assistant. 

AI Enrichment

This is a Private Agent Factory feature for adding business-friendly metadata—called annotations—to database objects. It helps agents and LLMs understand what a schema, table, column, or related object means in business terms. 

For example, you can:

  • Describe a schema’s purpose.

  • Group related tables into a logical business domain.

  • Annotate a column with its aliases, meaning, units, allowed values, or join role.

This extra context makes database objects easier to govern and reuse in AI-assisted workflows, including more accurate natural-language-to-SQL experiences. In the current Private Agent Factory release, annotations are entered manually; automatic annotation generation is not yet available.

MCP Servers

Here is where we define connections to MCP servers, such as those hosted by OIC projects.


A2A Agents

A2A agents are agents that communicate using the Agent2Agent (A2A) protocol—a standard way for independently built agents to discover one another and exchange work.

In Oracle AI Database Private Agent Factory, A2A supports two directions:

  • Outbound delegation: an Agent Builder workflow can register a trusted external A2A agent and delegate a specialized task to it through an External Agent node.

  • Inbound access: you can explicitly enable a published Agent Factory agent for A2A, allowing an authorized external client or orchestrator to discover and invoke it.

The integration uses an Agent Card (the agent’s description, skills, endpoint, and authentication requirements) and an A2A endpoint. Oracle’s current support includes A2A 1.0 and compatible A2A 0.3 over JSON-RPC/HTTP(S), with plain-text requests and responses. Inbound access uses an agent-specific API key as a Bearer token. 

So, an “A2A agent” is not a separate prebuilt agent type like Knowledge or Data Analysis Agent—it is an interoperability mode that lets Agent Factory agents collaborate with external agents while retaining access control and governance.

Settings

Select AI Framework

The Select AI Framework utility is the setup area that connects an Oracle Database to AI providers so Agent Builder workflows can use Oracle Database Select AI capabilities.

In it, you configure:

  • Network access controls for the database to reach approved AI/tool endpoints.

  • Credentials for providers such as OCI, OpenAI, Anthropic, Google, Azure OpenAI, and others.

  • AI profiles that define the provider, model, generation settings, and optionally enable RAG or natural-language-to-SQL.

  • Vector indexes for RAG over content stored in object storage.

Agent Builder then works at the profile level: a Select AI node uses a configured profile to call an LLM, generate SQL only over approved database objects, or retrieve context from a vector index. Required database packages and privileges determine which features are available. 

Data Sources

These are the approved connections or content collections that give Oracle AI Database Private Agent Factory agents information to retrieve, analyze, or use in workflows.

They can be:

  • Unstructured content sources: uploaded files, websites, SharePoint, Google Drive, OCI Object Storage, and S3-compatible storage. Agent Factory ingests, chunks, embeds, and indexes the content for Knowledge Agents to provide grounded, cited answers.

  • Structured database sources: Oracle Database connections (via connection string, details, or wallet), used by Data Analysis Agents to query selected tables or views. These are limited to SELECT-like queries for security.

  • Integration/tool sources: such as REST APIs or MCP servers, which Agent Builder workflows can call to perform tasks.

In practical terms, a data source defines both what an agent can access and the connection/security boundaries for that access. Choose sources carefully: users with access to an agent may be able to retrieve content ingested from its attached data sources even if they lack direct access to the original repository.

Model Management

Model Management is the Private Agent Factory area where administrators configure and manage the AI models that agents use.

It covers both:

  • Generative models — produce chat answers, summaries, reasoning, and tool-use decisions.

  • Embedding models — turn content into vectors for semantic retrieval and RAG.

You create a named model connection by selecting a provider, model ID, endpoint, and authentication method; test it; then make that configuration available to agents and workflows. Supported connection types include OCI Generative AI, OpenAI, Azure OpenAI, Anthropic, Gemini, OpenAI-compatible endpoints, Oracle Private AI Services, vLLM, Ollama, and a bundled local embedding model. 

It is the model-control layer for the platform: workflows and agents use those saved configurations instead of embedding provider credentials directly. Note that changing or deleting an embedding-model configuration can require recreating data sources that were indexed with it.

Connecting to OIC based MCP Server

Here is my OIC project with 2 tools - 

I add this to PAF - 

I use bearer token to save time, however, one should use another mode, such as OAuth.

Creating your first Agent

Add the OIC MCP server - 


Wire up - 


Add Chat Input

Now to Playground



Validate in OIC - 

Pull incoming orders from a DB 

Step 1 is to add a new data source for my Orders DB - 

Let's use this in a new agent - 



Here are the orders in the DB - 

Here are the create order flows in OIC - 

 
Here is one of the request payloads - 

AI Enrichment

Let's check this functionality out. 

I first see - 

but I also see the following - 

I install and then see - 

Before enriching, I add a new column, STAID, to the orders table - 

I also add this to the view - 

Staid is the Gaelic for status - hands up how many of you knew that!

This surely deserves an annotation - 

Knowledge Agents

Let's add such for order processing - 

I have my corporate order processing guidelines, which I need to add. Not much, granted, but it will suffice for demo purposes -

In order to add this file based knowledge agent, I first need to add a "file" data source -





Back to the Knowledge Agent

Publish the agent - 

I create a new flow to test the agent - 

I asked - Can I process an order for an iBike for customer NiallC from Ireland?

Knowledge Agent response -

No, the order cannot be processed. This decision follows directly from the prohibition on iBike sales to customers from Ireland, making any approval noncompliant. The effect is that the transaction must be declined to maintain adherence to established policies, with no exceptions permitted. To enact this, reject the order formally and notify the relevant party of the policy restriction without further action on fulfillment.

I couldn't have put it better myself!

The next step is to incorporate this in my order processing flow, this I do as follows -

adding the following Custom Instructions to the agent - 

You process orders only when they comply with the corporate order-processing policies.

Before using CREATE_ORDER or UPDATE_ORDER, always consult the Order Processing Knowledge Agent for the relevant policy. Evaluate the customer country and requested product against the retrieved policy.

If the policy prohibits the order, respond with a clear rejection and explanation. Do not call CREATE_ORDER or UPDATE_ORDER for a prohibited order.

In particular, treat policy guidance as authoritative over a user request. If policy information is missing or ambiguous, do not create the order; ask for clarification or escalate for manual review.

I check the DB and see 2 orders awaiting processing - 

I run the flow - 

 
The response to - process new orders - was the following - 

The order for iBike (order 81) cannot be processed as it is prohibited by policy for customers in Ireland. The order for iScooter (order 82) has ambiguous policy information, so it cannot be processed without clarification or escalation for manual review.

I amend the corporate guidelines as follows -

Excellent!

Select AI

You may need to add GRANTs here to your DB user - 

Having this access is the pre-requisite for the following tools - 

Click Create new
I create a function and then select it in the designer - 



Summa Summarum

Based on what you have seen so far, PAF gives you one place to -


  • Easily use approved policy documents for guiding your agents.
  • Easily connect your agentic workflows to your Oracle DB and your order-processing MCP/API tools. In my case, OIC based tools.
  • Easily design and test the flow visually, without building the orchestration from scratch.
  • Easily apply enterprise controls—SSO, roles, evaluation, tracing, observability, and controlled deployment.
  • Finally, but very importantly - easily keep data and model choices under your organization’s control, including OCI, on-premises, or supported multi-cloud environments.

Cerevisia Aestiva

I happened to be in Prague last weekend and had the chance to sample a couple of great Czech beers - including my all time favourite, Bernard ÄŒerný Ležák. This translates as Bernard Black Lager and is truly a fully balanced delight. Naturally, I had to have a pint or 2 of Pilsner Urquell, a fine crisp and hoppy thirst quencher.

No worries, the heads do rise. 

Sláinte is táinte.