Example of a multi-agent orchestration pattern in Oracle AI Data Platform

Example of a multi-agent orchestration pattern in Oracle AI Data Platform

My previous "how-to" post here describes in a step-by-step fashion how to create an agent from scratch in the Oracle AI Data Platform.

However, the design of that agent was simplistic and less than ideal. A better design would have been what is shown in the screenshot below. This diagram is a logical representation of what an improved design could look like.

The goal is to create a Procurement agent that allows our procurement specialists to get immediate answers to natural language questions across our datasets. The source of the information used by the procurement specialists are a series of procurement policies (in unstructured documents) as well as our procurement data (vendor, orders, receipts, and invoice data in a database).

As you can see from the diagram above, the source of the data includes both unstructured and structured data and resides outside of the Oracle AI Data Platform in an object store and an Autonomous AI Database respectively.

The screenshot below is the developer representation of this design in the console.

Let's talk through each component, from the bottom up. This will give you an understanding of how each of these components relate to one other.

Note that the configuration of the knowledge base, object store, and Autonomous AI Database is not depicted in this developer view (they are set up elsewhere in the console), but they are referenced within the configuration of the SQL and RAG tools.

  • SQL Tool (Vendor_Data_DB): Reference to structured data in an external Oracle Autonomous AI Lakehouse. A SQL query with parameters is added to control what is returned in the search results.
  • RAG Tool (Documents_RAG): Link to the knowledge base in my workspace. This knowledge base is a vectorized store of unstructured documents that reside in an external bucket.
  • Executor Agent (Data_Agent): This agent is given instructions on how to interact with the structured data retrieved from the database.
  • Executor Agent (Documents_Agent): This agent is given instructions on how to interact with the unstructured documents retrieved from the knowledge base.
  • Supervisor Agent (Procurement_Agent): This agent is an orchestrator that manages context and dynamic task delegration. It interprets the user request, calls the Executor Agents, and synthesizes the final response.
  • Guardrails (PII_Guardrail): Controls the input and/or output that the AI model can receive/return. This can include PII detection, content moderation, or prompt injection detection.
  • Chat Trigger: The entry point for engaging in a conversational experience with the agent.

Here's a video of a crude walkthrough of the agent creation process so that you can at least visually see the development in action.

0:00
/4:18