Tuesday, March 31, 2026

#1134 OIC Agentic Flows - Design Time and runtime structure

Introduction

Some customers have been asking me about this, which Agentic artefacts do we have and how do they behave at runtime. So let's go!

Agentic AI and OIC Projects

Agents live in projects, agents use tools to do the work, agents may also get human input via Human-in-the-Loop. 

Currently, our tools are integrations - 

One click exposure, it's that simple.

Agents have the following features available - 

Tools, we've already covered. 
Agents can also use Prompt templates, which make it easier for you to enter prompts. Here's an example of one - 

Note the use of {} - these are the variables entered at runtime e.g. 

You can associate 1+ prompt templates with an agent.

An Agent Pattern is the pre-requisite for creating an agent.

As the name suggests, this implements a pattern - currently, with the 26.01 release of OIC, you can select the following pattern - 

























ReAct = Reason & Act.

You can add some guidelines - e.g.

You also need to complete an LLM collection. 

GenAI should be available as your LLM connection target soon, but, as you can see, I'm using OpenAI.

So I've created my pattern, so how does this manifest itself in my project? 

Via an integration - 

This is the component that handles the agent interactions with the LLM.

You can treat this as a blackbox, but, naturally, you can also take a peek - 

but don't get hung up on this; it's just an implementation detail.


Exposing Integrations as Tools

Now back to the Tools - Your app driven integrations can be exposed as tools, and easily consumed by your OIC agent. However, these tools can also be exposed via MCP to 3rd party agents. This is done at project level - 

As a sanity test, you can connect via Postman - 

Try out a tool - 

Validate the response - 
That's our tools exposed and tested. You can now give the MCP server url to your stakeholders, allowing them to invoke OIC tools from their agents.

Running Agents in OIC

Now to our agent - I will run the get future runs prompt - 

Don't worry about the result - 0 future runs found. This is because the schedule is paused - 

I'm interested in what has actually executed; let's check out Project Observability


The integration, Get Future Runs,  has been invoked. Note also, the ReAct Pattern integration has executed, as well as the agent.

All have individual instance ids. Let's check out the activity stream for the agent - 

Here I use the OIC Factory api -

https://design.integration.us-phoenix-1.ocp.oraclecloud.com/ic/api/integration/v1/monitoring/instances/yourInstanceId/activityStreamDetails?type=agent&timezone=Europe%2FBerlin&integrationInstance=yourOICInstance

Here are excerpts from the Postman response - 

Notice the array of content within items -


Finally, we see - status = COMPLETED.

This tells us the instance has completed, i.e. agent has done what it has been assigned to do.









OIC Agent Native Action 

One can invoke agents from an integration using the new native action - 

The configuration of the action is as follows - 

Just give it a name, then select your agent; that's all you need to do. 

This will implicitly invoke the start() operation of the agent. 

Note the Request sample - 

    { "payload" : "", "promptTemplateId" : "", "prompt" : "", "conversationId" : "" }

These fields are what you need to map - 

Project Id and Agent Id identify the agent we want invoked. Prompt is the prompt as per the Run test I did earlier.

So let's try this out - 




 




I check in Observability - 
I invoke the monitoring api in postman for the agent instance id - 

You may posit the question - if I can invoke an agent from an integration, how can I get the response? 

Currently the native action only supports start(), however, this will change with the next release. If you cannot wait until then, use the monitoring api call to retrieve the agent activity stream. You can do this in a WHILE loop, waiting for status to be set to COMPLETED.

What we're missing is the ability to retrieve the agent instance id - we can use the OIC monitoring api to do this - 

https://design.integration.us-phoenix-1.ocp.oraclecloud.com/ic/api/integration/v1/monitoring/instances?q={timewindow:'32d',projectCode:'AA_SCHEDULEJO_AGENT',agentic:'yes'}&integrationInstance=yourOICInstance&orderBy=lastupdateddate&fields=all

This may seem complicated, so maybe just vwait a couple of weeks for the next release. 


 













 

No comments: