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!

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.