<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Halton Chen</title>
    <description>The latest articles on Forem by Halton Chen (@halton_chen).</description>
    <link>https://forem.com/halton_chen</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3852015%2F30ab32f9-8a6b-4525-86b5-49db67fda465.png</url>
      <title>Forem: Halton Chen</title>
      <link>https://forem.com/halton_chen</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/halton_chen"/>
    <language>en</language>
    <item>
      <title>Business Object Tool: Powering AI Agents with Structured Enterprise Data</title>
      <dc:creator>Halton Chen</dc:creator>
      <pubDate>Fri, 24 Apr 2026 04:09:06 +0000</pubDate>
      <link>https://forem.com/halton_chen/business-object-tool-powering-ai-agents-with-structured-enterprise-data-21jm</link>
      <guid>https://forem.com/halton_chen/business-object-tool-powering-ai-agents-with-structured-enterprise-data-21jm</guid>
      <description>&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;If you've ever wished your ERP system could just &lt;em&gt;answer your questions&lt;/em&gt; instead of making you click through fourteen screens to find a purchase order — good news. With Oracle AI Agent Studio, that's no longer wishful thinking. In this post, I'll walk you through how I built an AI agent that retrieves live purchase order data from Oracle Fusion using a REST API, a Business Object, a custom Tool, and an Agent Team. From architecture to deployment, here's how it all fits together.&lt;/p&gt;




&lt;h3&gt;
  
  
  What We're Building
&lt;/h3&gt;

&lt;p&gt;Before diving in, let's map out the architecture at a high level:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Oracle Fusion Data → REST API → Business Object → Tool → Agent → Agent Team&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Each layer builds on the one before it. The REST API is the data source, the Business Object wraps it in a structured schema, the Tool exposes it to the agent, and the Agent Team makes the whole thing available to end users. Clean, composable, and — once you've done it once — surprisingly straightforward.&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 1: Validate the REST API
&lt;/h3&gt;

&lt;p&gt;Every good agent starts with reliable data. I used Oracle's published Fusion REST API for Purchase Orders:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Endpoint:&lt;/strong&gt; &lt;code&gt;GET /fscmRestApi/resources/11.13.18.05/purchaseOrders&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reference:&lt;/strong&gt; &lt;a href="https://docs.oracle.com/en/cloud/saas/procurement/26a/fapra/op-purchaseorders-get.html" rel="noopener noreferrer"&gt;Oracle Fusion Procurement REST API Docs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before doing anything in Agent Studio, I validated the endpoint to confirm it returns the fields I need — things like &lt;code&gt;OrderNumber&lt;/code&gt;, &lt;code&gt;Status&lt;/code&gt;, &lt;code&gt;Supplier&lt;/code&gt;, &lt;code&gt;Buyer&lt;/code&gt;, &lt;code&gt;Total&lt;/code&gt;, and &lt;code&gt;Date&lt;/code&gt;. Take this as the foundation check. Test early, test often.&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 2: Create the Business Object
&lt;/h3&gt;

&lt;p&gt;With a validated API in hand, I navigated to &lt;strong&gt;Oracle Applications → Tools → AI Agent Studio&lt;/strong&gt; and headed to the &lt;strong&gt;Business Object&lt;/strong&gt; tab.&lt;/p&gt;

&lt;p&gt;Here's how I configured it:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Family&lt;/td&gt;
&lt;td&gt;PRC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Product&lt;/td&gt;
&lt;td&gt;Purchasing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Name&lt;/td&gt;
&lt;td&gt;Halton_Return_PO_Information&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resource Type&lt;/td&gt;
&lt;td&gt;Monolith Resource&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resource Path&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/fscmRestApi/resources/11.13.18.05/purchaseOrders&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4w2pmy6suxtzm9zr9wxc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4w2pmy6suxtzm9zr9wxc.png" alt="Screenshot showing the configuration of business object" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next:&lt;/p&gt;

&lt;p&gt;Add a Business Function&lt;br&gt;
Import fields via “Add Field from Specification”&lt;br&gt;
Select only relevant attributes (e.g., &lt;code&gt;OrderNumber&lt;/code&gt;, &lt;code&gt;Status&lt;/code&gt;, &lt;code&gt;Supplier&lt;/code&gt;, &lt;code&gt;Buyer&lt;/code&gt;, &lt;code&gt;Total&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;This step is where most implementations go wrong.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Common mistake: importing everything.&lt;/li&gt;
&lt;li&gt;Correct approach: curate fields aligned to query intent.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fha31ok5ffmgczyjbnmaj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fha31ok5ffmgczyjbnmaj.png" alt=" " width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbg6wufto0xf0itbpmfe3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbg6wufto0xf0itbpmfe3.png" alt=" " width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once saved, the Business Object is ready to be used as a data source by a Tool.&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 3: Create the Tool
&lt;/h3&gt;

&lt;p&gt;A Business Object on its own doesn't do anything — you need a &lt;strong&gt;Tool&lt;/strong&gt; to expose it to an agent. I created a new tool called &lt;strong&gt;Halton_Return_PO_Tool&lt;/strong&gt; and linked it to the Business Object created in Step 2.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fggwr4at2c7d83e3o9cin.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fggwr4at2c7d83e3o9cin.png" alt=" " width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2w707uxaixcxyjvc37eq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2w707uxaixcxyjvc37eq.png" alt=" " width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Tool acts as the bridge between the agent's reasoning layer and the actual data retrieval logic. When a user asks the agent a question, the agent invokes the Tool, the Tool calls the Business Object, and the Business Object hits the REST API. It's turtles all the way down — in the best possible way.&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 4: Configure the Agent
&lt;/h3&gt;

&lt;p&gt;I created a new AI Agent in Agent Studio and wired up the Tool. But the real differentiator is the &lt;strong&gt;system prompt&lt;/strong&gt; — this is what tells the agent &lt;em&gt;how&lt;/em&gt; to behave, not just &lt;em&gt;what&lt;/em&gt; it can access.&lt;/p&gt;

&lt;p&gt;Here's the prompt I used:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"You are a Purchase Order (PO) advisor who answers questions from employees about purchase order details retrieved by the Purchase Order system.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Always display retrieved purchase order results in a table format.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Use the following rules to match user input to the correct PO data fields:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If a user provides a &lt;strong&gt;purchase order status&lt;/strong&gt;, match it with the &lt;code&gt;Status&lt;/code&gt; field.&lt;/li&gt;
&lt;li&gt;If a user provides a &lt;strong&gt;supplier name&lt;/strong&gt;, match it with the &lt;code&gt;Supplier&lt;/code&gt; field.&lt;/li&gt;
&lt;li&gt;If a user provides a &lt;strong&gt;buyer name&lt;/strong&gt;, match it with the &lt;code&gt;BuyerDisplayName&lt;/code&gt; field.&lt;/li&gt;
&lt;li&gt;If a user provides a &lt;strong&gt;PO total or amount&lt;/strong&gt;, match it with the &lt;code&gt;Total&lt;/code&gt; field.&lt;/li&gt;
&lt;li&gt;If a user provides a &lt;strong&gt;purchase order number&lt;/strong&gt;, match it with the &lt;code&gt;OrderNumber&lt;/code&gt; field.&lt;/li&gt;
&lt;li&gt;If a user provides a &lt;strong&gt;date or date range&lt;/strong&gt;, match it with the &lt;code&gt;Date&lt;/code&gt; field.&lt;/li&gt;
&lt;li&gt;If a user asks about &lt;strong&gt;line items&lt;/strong&gt;, retrieve and display them in a table.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;If no purchase orders match the user's search criteria, respond with: "No purchase orders were found matching your search. Please verify the details and try again."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Always be concise, professional, and only return information retrieved from the Purchase Order system."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flvmmjeymtxvqtj0ciobv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flvmmjeymtxvqtj0ciobv.png" alt=" " width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A few things worth calling out here. &lt;br&gt;
First, the explicit instruction to &lt;strong&gt;display results in a table format&lt;/strong&gt; — without this, LLMs will happily dump data as unstructured prose, which no one wants to read. &lt;br&gt;
Second, the field-matching rules eliminate ambiguity: the agent doesn't have to guess what "show me all open POs" means; the prompt tells it exactly which API field to filter on. &lt;br&gt;
Third, the fallback message for no results is a small but meaningful UX touch.&lt;/p&gt;

&lt;p&gt;This is where the investment in a well-crafted prompt pays dividends. A vague prompt produces a vague agent.&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 5: Build the Agent Team
&lt;/h3&gt;

&lt;p&gt;With the agent configured, the final step is creating an &lt;strong&gt;Agent Team&lt;/strong&gt; — Oracle's mechanism for grouping and deploying agents for end-user interaction.&lt;/p&gt;

&lt;p&gt;I created a new Agent Team, added the configured agent to it, and published it. That's it. The agent is live.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foywgobw2atf991kjn0en.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foywgobw2atf991kjn0en.png" alt=" " width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  The Result
&lt;/h3&gt;

&lt;p&gt;Once deployed, the agent can respond to natural language queries like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;"Retrieve all POs from ABC Corp"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Find all purchase orders for buyer Halton"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"What are the line items on PO 10042?"&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The agent pulls real-time data from Oracle Fusion, applies the filtering logic defined in the prompt, and returns a clean, structured table. No ERP navigation. No SQL. No reporing. Just a question and an answer.&lt;/p&gt;




&lt;h3&gt;
  
  
  Key Takeaways
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Validate your API first.&lt;/strong&gt; Don't assume the REST endpoint returns what the documentation says. Confirm it before building anything on top of it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Be explicit in your prompts.&lt;/strong&gt; Map every user intent to a specific field. The more explicit the instructions, the more predictable the agent's behaviour.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use field selection wisely.&lt;/strong&gt; Only pull the fields that are meaningful to your use case. Unnecessary fields add noise and can confuse the agent's reasoning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The architecture scales.&lt;/strong&gt; Once you've built one Business Object and Tool, adding more agents or extending to new APIs follows the same pattern. The investment in understanding the framework pays off quickly.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Wrapping Up
&lt;/h3&gt;

&lt;p&gt;Oracle AI Agent Studio makes it genuinely accessible to build enterprise-grade AI agents without needing a data science background or a custom ML pipeline. If you have a REST API and a clear use case, you have everything you need to get started.&lt;/p&gt;

&lt;p&gt;The purchase order agent I built here is a practical, real-world example — not a demo with mock data. It queries live Oracle Fusion data and responds to the kinds of questions procurement teams ask every day. That's the whole point.&lt;/p&gt;

&lt;p&gt;If you're exploring Oracle AI Agent Studio for your organisation, I'd encourage you to start with a well-understood API, keep your first agent focused, and iterate from there. The platform rewards curiosity.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Have questions or want to share your own Oracle AI Agent Studio experience? Drop a comment below or reach out on the &lt;a href="https://community.oracle.com/customerconnect" rel="noopener noreferrer"&gt;Oracle Cloud Customer Connect&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>tooling</category>
      <category>agents</category>
      <category>agentskills</category>
    </item>
    <item>
      <title>Document Tool: Grounding AI in Enterprise Knowledge</title>
      <dc:creator>Halton Chen</dc:creator>
      <pubDate>Mon, 13 Apr 2026 03:59:29 +0000</pubDate>
      <link>https://forem.com/halton_chen/document-tool-grounding-ai-in-enterprise-knowledge-fjp</link>
      <guid>https://forem.com/halton_chen/document-tool-grounding-ai-in-enterprise-knowledge-fjp</guid>
      <description>&lt;h3&gt;
  
  
  Overview
&lt;/h3&gt;

&lt;p&gt;Oracle AI Agent Studio provides a structured way to build intelligent agents that go beyond static workflows. In this guide, I demonstrate how to create a &lt;strong&gt;document-driven AI agent&lt;/strong&gt; capable of answering real user questions using enterprise content.&lt;/p&gt;

&lt;p&gt;Rather than relying on predefined responses, this agent uses a &lt;strong&gt;custom document tool with retrieval-based capabilities (RAG)&lt;/strong&gt; to deliver context-aware answers grounded in uploaded documents.&lt;/p&gt;

&lt;p&gt;This walkthrough reflects &lt;strong&gt;hands-on implementation&lt;/strong&gt;, including setup, customization and validation.&lt;/p&gt;

&lt;p&gt;New to Oracle AI Agent and haven't build your first AI Agent yet? &lt;a href="https://dev.to/halton_chen/oracle-ai-agent-101-build-your-first-agent-step-by-step-2m0b"&gt;Start here&lt;/a&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  What You’ll Learn
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;How to start from an Oracle-delivered agent template
&lt;/li&gt;
&lt;li&gt;How to create and customize a &lt;strong&gt;document tool&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;How to upload and publish enterprise documents
&lt;/li&gt;
&lt;li&gt;How to configure an agent to use retrieval-based responses
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Architecture at a Glance
&lt;/h3&gt;

&lt;p&gt;This solution consists of three core components:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Agent Team&lt;/strong&gt; – Orchestrates the interaction
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Document Tool&lt;/strong&gt; – Enables document retrieval
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uploaded Policy Document&lt;/strong&gt; – Acts as the knowledge source
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Together, these form a &lt;strong&gt;lightweight RAG implementation inside Oracle AI Agent Studio&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 1: Start from a Template (Don’t Reinvent the Wheel)
&lt;/h3&gt;

&lt;p&gt;Instead of building from scratch, I used the &lt;strong&gt;Benefits Policy Advisor&lt;/strong&gt; template available in AI Agent Studio.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why this matters:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Templates encode Oracle’s recommended structure—bypassing them often leads to avoidable configuration errors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I did:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigated to: &lt;code&gt;Tools → AI Agent Studio&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Searched for &lt;em&gt;Benefits Policy Advisor&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Used &lt;strong&gt;Copy Template&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Created a custom version:
&lt;code&gt;Benefits Policy Advisor Halton&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F29sd02qeaykb3w58yq2o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F29sd02qeaykb3w58yq2o.png" alt=" " width="800" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This produced an agent team with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 agent
&lt;/li&gt;
&lt;li&gt;1 document tool
&lt;/li&gt;
&lt;li&gt;No topics configured initially
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9fypk6frmnxpnxyrtv93.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9fypk6frmnxpnxyrtv93.png" alt=" " width="800" height="553"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 2: Create a Custom Document Tool
&lt;/h3&gt;

&lt;p&gt;To avoid altering the standard tool, I created a copy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New Tool Name: &lt;code&gt;Halton_Lookup_benefits_policies&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why this step is essential:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Preserves the original configuration
&lt;/li&gt;
&lt;li&gt;Enables controlled customization
&lt;/li&gt;
&lt;li&gt;Aligns with enterprise change management practices
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feg6l1augncx45mzyp54y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feg6l1augncx45mzyp54y.png" alt=" " width="800" height="489"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 3: Upload and Prepare the Document
&lt;/h3&gt;

&lt;p&gt;I uploaded a &lt;strong&gt;sample benefits policy document&lt;/strong&gt; into the custom tool.&lt;/p&gt;

&lt;p&gt;Don’t have one? No problem—ask any AI to generate a default benefits policy with whatever perks you &lt;em&gt;wish&lt;/em&gt; your company offered (yes, unlimited PTO is highly recommended 🙂).&lt;/p&gt;

&lt;p&gt;Then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set document status to &lt;strong&gt;Ready to Publish&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyep4h12zgoclgga6wzdg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyep4h12zgoclgga6wzdg.png" alt=" " width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 4: Publish the Document
&lt;/h3&gt;

&lt;p&gt;To activate the document:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigated to &lt;strong&gt;Scheduled Processes&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Ran: &lt;code&gt;Process Agent Documents&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsbywu0ror5o0mk685hjv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsbywu0ror5o0mk685hjv.png" alt=" " width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After successful completion:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Verified document status = &lt;strong&gt;Published&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Insight:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
This step effectively performs indexing and enables retrieval. Skipping it leads to failures during testing.&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 5: Replace the Tool in the Agent
&lt;/h3&gt;

&lt;p&gt;Next, I updated the agent configuration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Removed standard tool: &lt;code&gt;ORA_lookup_benefits_policies&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Added custom tool: &lt;code&gt;Halton_Lookup_benefits_policies&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbfpcpg4xm0g3b8xt1yp5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbfpcpg4xm0g3b8xt1yp5.png" alt=" " width="800" height="552"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Replaced the default agent with a customized version
&lt;/li&gt;
&lt;li&gt;Updated the agent team to use the new agent
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F50k1fe7s4xvggnzxiblo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F50k1fe7s4xvggnzxiblo.png" alt=" " width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why this matters:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
This ensures that the agent team utilizes the custom agent along with the tool configured against the published document.&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 6: Validate the Output
&lt;/h3&gt;

&lt;p&gt;Now ask the agent:&lt;code&gt;What's the PTO policy?&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The agent successfully retrieved content
&lt;/li&gt;
&lt;li&gt;Responses were grounded in the uploaded document
&lt;/li&gt;
&lt;li&gt;Queries returned accurate, contextual answers
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjfa1h0scxf43z78dzin8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjfa1h0scxf43z78dzin8.png" alt=" " width="800" height="638"&gt;&lt;/a&gt;&lt;br&gt;
This confirms a &lt;strong&gt;working document-driven AI agent pipeline&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Final Outcome
&lt;/h3&gt;

&lt;p&gt;The completed agent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Accepts natural language questions
&lt;/li&gt;
&lt;li&gt;Retrieves relevant content from enterprise documents
&lt;/li&gt;
&lt;li&gt;Produces context-aware responses
&lt;/li&gt;
&lt;li&gt;Demonstrates a working &lt;strong&gt;RAG-style architecture within Oracle AI Agent Studio&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Where This Becomes Valuable in Real Projects
&lt;/h3&gt;

&lt;p&gt;This pattern is directly applicable to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HR policy assistants
&lt;/li&gt;
&lt;li&gt;Finance and procurement knowledge bots
&lt;/li&gt;
&lt;li&gt;IT support automation
&lt;/li&gt;
&lt;li&gt;Compliance and regulatory guidance
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key shift is from:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Predefined chatbot responses”&lt;br&gt;&lt;br&gt;
to&lt;br&gt;&lt;br&gt;
“Dynamic, document-grounded intelligence”&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  What the next question in real implementation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;How will this scale with hundreds of documents?
&lt;/li&gt;
&lt;li&gt;What governs document freshness and accuracy?
&lt;/li&gt;
&lt;li&gt;How do you prevent conflicting answers across sources?
&lt;/li&gt;
&lt;li&gt;What is your evaluation metric for response quality?
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without the answers, this is still a demo—not a production system.&lt;/p&gt;

&lt;p&gt;Building a document-driven agent is straightforward. Building one that is &lt;strong&gt;reliable, scalable, and trustworthy&lt;/strong&gt; is not.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>rag</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Deep Link Tool: Turning insights into Actions</title>
      <dc:creator>Halton Chen</dc:creator>
      <pubDate>Thu, 09 Apr 2026 03:41:55 +0000</pubDate>
      <link>https://forem.com/halton_chen/deep-link-tool-turning-insights-into-actions-lab</link>
      <guid>https://forem.com/halton_chen/deep-link-tool-turning-insights-into-actions-lab</guid>
      <description>&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;In my previous post, I walked through how to build your first Oracle AI Agent. If you haven’t seen it, I recommend &lt;a href="https://dev.to/halton_chen/oracle-ai-agent-101-build-your-first-agent-step-by-step-2m0b"&gt;starting there&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This post addresses a more important question:&lt;br&gt;
How do you make an AI agent actually useful in real business workflows?&lt;br&gt;
The answer is simple but often overlooked: you must connect insights to actions.&lt;/p&gt;

&lt;p&gt;In Oracle AI Agents, this is achieved through tools, and one of the most powerful types is the Deep Link tool.&lt;br&gt;
Specifically, I’ll show:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What a deep link looks like in an AI agent response &lt;/li&gt;
&lt;li&gt;Why it matters &lt;/li&gt;
&lt;li&gt;How to configure a deep link tool in Oracle&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  What does a deep link look like in an AI Agent?
&lt;/h3&gt;

&lt;p&gt;Let’s start with a simple example.&lt;br&gt;
When I ask the agent:&lt;br&gt;
“Show me my incomplete requisitions”&lt;br&gt;
The agent does two things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Returns the relevant data&lt;/li&gt;
&lt;li&gt;Provides a clickable link to each requisition&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When I click the link, I’m taken directly to that requisition in Oracle Fusion.&lt;br&gt;
No navigation. No searching. No extra clicks.&lt;br&gt;
This is where AI agents move beyond answering questions — they start enabling real work.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftw8p57vf1pgk1couvmyp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftw8p57vf1pgk1couvmyp.png" alt=" " width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once we click on “here”, it will automatically link to the requisition page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4zsfvn247s889d2y8ty2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4zsfvn247s889d2y8ty2.png" alt=" " width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Why Deep Links Matter
&lt;/h3&gt;

&lt;p&gt;A deep link is a URL that takes a user directly to a specific page or record inside Oracle Fusion.&lt;br&gt;
Instead of navigating through the UI, the user is routed instantly to the exact destination.&lt;/p&gt;

&lt;p&gt;Without deep links, the workflow looks like this:&lt;br&gt;
• Navigate to Procurement &lt;br&gt;
• Open Purchase Requisitions &lt;br&gt;
• Search for the requisition &lt;br&gt;
• Open it &lt;/p&gt;

&lt;p&gt;With deep links:&lt;br&gt;
• Click once → land directly on the record &lt;br&gt;
This reduces friction and makes the AI agent actionable, not just informative.&lt;/p&gt;
&lt;h3&gt;
  
  
  How deep link work in the AI Agent
&lt;/h3&gt;

&lt;p&gt;In the Purchase Requisition Status Advisor, there are three tools: &lt;br&gt;
• Get User Session, &lt;br&gt;
• Purchase Requisition Details,&lt;br&gt;
• View Purchase Requisition Details&lt;br&gt;
The tool "View Purchase Requisition Details" is a deep link tool.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzkol4nyhtdm5zurcrdqg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzkol4nyhtdm5zurcrdqg.png" alt=" " width="691" height="617"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Understanding the deep link configuration
&lt;/h3&gt;

&lt;p&gt;In our case, Oracle provides a standard deep link tool, “ORA_VIEW_PURCHASE_REQUISITION_DETAILS”&lt;br&gt;
Tool Type: Deep Link&lt;/p&gt;

&lt;p&gt;The deep link tool is connected with deep link “Deep link that enables employees to view the full details of a requisition.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzkanxzrcu38kfy4r4ew9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzkanxzrcu38kfy4r4ew9.png" alt=" " width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The most important part of deep link is the relative url, it tells Oracle which page to open.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/fscmUI/redwood/procurement/requisitions/tabbar/shopping/requisitiondetails?requisitionHeaderId={RequisitionHeaderId}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Key Concepts:&lt;br&gt;
• Relative URL: Everything after your Oracle domain &lt;br&gt;
• Parameter:&lt;br&gt;
&lt;code&gt;requisitionHeaderId={RequisitionHeaderId}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Example: full URL &lt;br&gt;
When you open a requisition in the browser, the full URL looks like below, you can copy it when open a requisition in the browser.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://yourcompany.oraclecloud.com/fscmUI/redwood/procurement/requisitions/tabbar/shopping/requisitiondetails?requisitionHeaderId=300000303705247&amp;amp;tabSelected=tab_requisitions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The relative URL is just the tail end of the real URL, everything after your company’s Oracle domain name.&lt;br&gt;
The AI agent simply generates this dynamically using the correct Requisition Header ID.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Takeaway
&lt;/h3&gt;

&lt;p&gt;Deep links are what make AI agents operational, not just conversational.&lt;br&gt;
They:&lt;br&gt;
• Reduce navigation effort and improve user experience &lt;br&gt;
• Connect AI insights directly to business actions&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>tooling</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Oracle AI Agent 101 : Build your first agent step-by-step</title>
      <dc:creator>Halton Chen</dc:creator>
      <pubDate>Sat, 04 Apr 2026 23:57:36 +0000</pubDate>
      <link>https://forem.com/halton_chen/oracle-ai-agent-101-build-your-first-agent-step-by-step-2m0b</link>
      <guid>https://forem.com/halton_chen/oracle-ai-agent-101-build-your-first-agent-step-by-step-2m0b</guid>
      <description>&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;Oracle AI Agent Studio enables organizations to rapidly build AI-powered assistants embedded within Oracle Cloud Applications. In this walkthrough, I demonstrate how to create, configure, test, and publish a custom procurement-focused AI agent using an out-of-the-box template.&lt;/p&gt;

&lt;p&gt;Procurement users often spend time manually checking requisition status across systems. This agent simplifies that by enabling natural language queries tied directly to transactional data.&lt;/p&gt;

&lt;h3&gt;
  
  
  What You Will Build
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A custom AI Agent for Purchase Requisition status&lt;/li&gt;
&lt;li&gt;Integration with business objects and document retrieval (RAG)&lt;/li&gt;
&lt;li&gt;Defined topics to control agent scope&lt;/li&gt;
&lt;li&gt;A tested and published AI Agent Team&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Access Oracle AI Agent Studio
&lt;/h3&gt;

&lt;p&gt;Navigate to Tools → AI Agent Studio within Oracle Cloud Applications. This provides access to prebuilt agent templates that accelerate development.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgmtyaiwqi9vyai76c0hg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgmtyaiwqi9vyai76c0hg.png" alt=" " width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a Custom Agent from Template
&lt;/h3&gt;

&lt;p&gt;Filter templates by Procurement and select a relevant out-of-the-box agent. Use the 'Copy Template' feature to create a custom version. Apply a naming convention (e.g., adding a suffix) to distinguish your agent.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4zoyhjs1fqva1ndv7pru.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4zoyhjs1fqva1ndv7pru.png" alt=" " width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frh2p1rav3uupvkifhofu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frh2p1rav3uupvkifhofu.png" alt=" " width="800" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Components of an AI Agent
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fap549l338a9ygv83oh32.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fap549l338a9ygv83oh32.png" alt=" " width="720" height="543"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Tools
&lt;/h5&gt;

&lt;p&gt;Defines the additional utilities an agent can use to accomplish a task. One or more tools are assigned to agents, and they're reusable among agents.&lt;/p&gt;

&lt;h5&gt;
  
  
  List of Tools:
&lt;/h5&gt;

&lt;p&gt;• Calculator tool&lt;br&gt;
• Email tool&lt;br&gt;
• Business object tool: Use Business Object tools when you need structured transactional data (e.g., PR status).&lt;br&gt;
• User query tool&lt;br&gt;
• Document retrieval tool for retrieval-augmented generation (RAG) : Use Document Retrieval (RAG) when answers depend on unstructured knowledge (e.g., policies or documents).&lt;/p&gt;

&lt;h5&gt;
  
  
  Topics
&lt;/h5&gt;

&lt;p&gt;Defines the areas of expertise through instructions that set the boundaries and constraints for agent conversations and abilities.&lt;br&gt;
Without well-defined topics, the agent may respond outside procurement scope, reducing accuracy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configure Agent Details
&lt;/h3&gt;

&lt;p&gt;Review agent configuration including prompts, LLM provider selection, and tool assignments. Save the agent in draft status for further testing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffu19fs7gnvaft2b819v2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffu19fs7gnvaft2b819v2.png" alt=" " width="720" height="309"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjgk567h8umeopc23b8lz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjgk567h8umeopc23b8lz.png" alt=" " width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Configure Agent Team
&lt;/h3&gt;

&lt;p&gt;In Agent Team settings, configure LLM providers, define security roles, and set starter questions to guide user interaction.&lt;/p&gt;

&lt;p&gt;Currently, three LLM options are available: GPT-5 mini, GPT-4.1 mini, and GPT-OSS-120B. Rather than defaulting to the latest model, selection should be based on the use case.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GPT-5 mini&lt;/strong&gt;: strong balance of reasoning capability and efficiency; suitable for most enterprise workflows&lt;br&gt;
&lt;strong&gt;GPT-4.1 mini&lt;/strong&gt;: faster and more cost-efficient; works well for simpler, high-volume interactions&lt;br&gt;
&lt;strong&gt;GPT-OSS-120B&lt;/strong&gt;: more flexible and customizable; useful when control or specific tuning is required&lt;/p&gt;

&lt;p&gt;In practice, model choice is a tradeoff between capability, latency, token usage, and cost. For most scenarios, the “best” model is not the most advanced one, but the one that meets requirements with the lowest operational overhead.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkbz6rls60oq8171qgwfj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkbz6rls60oq8171qgwfj.png" alt=" " width="800" height="334"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq6kvnjt23e3byiaz1p2x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq6kvnjt23e3byiaz1p2x.png" alt=" " width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Test Using Debug Mode
&lt;/h3&gt;

&lt;p&gt;Click on the Triangle to run in debug mode. &lt;br&gt;
Use the Debug feature to validate agent responses. Ensure queries return accurate procurement data and remain within defined topic boundaries.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example: “What is the status of my purchase requisition?”&lt;br&gt;
The agent retrieves real-time data using the business object tool and returns the current approval status.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwk8rj69qcvyx5q3p0x72.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwk8rj69qcvyx5q3p0x72.png" alt=" " width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg6t12sie8ibxp8sbc01z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg6t12sie8ibxp8sbc01z.png" alt=" " width="800" height="335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Publish the Agent
&lt;/h3&gt;

&lt;p&gt;Once validation is complete, publish the agent team to make it available to end users.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzgij7elr8rq9cifaxv96.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzgij7elr8rq9cifaxv96.png" alt=" " width="800" height="330"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Takeaways
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Templates significantly reduce setup time&lt;/li&gt;
&lt;li&gt;Tools extend agent capabilities through integrations&lt;/li&gt;
&lt;li&gt;Topics are critical for controlling agent scope&lt;/li&gt;
&lt;li&gt;Debugging ensures reliability before deployment&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>oracle</category>
    </item>
  </channel>
</rss>
