Agent with RAG Tool

Learn how to create an agent with a pre-built RAG tool.

Support Agent Example

In this example, we create an support agent equipped with a pre-built agentic RAG tool.

RAG tools allow the agent to use knowledge bases to answer questions grounded by documents. To create a knowledge base and obtain its ID, follow this guide.


Info: RAG tools are executed on the server side in the OCI Cloud.

The implementation is an agentic RAG where the system acts more like an autonomous agent rather than a passive retriever and generator.


You can also pass multiple knowledge base IDs to the AgenticRagTool.

support_agent.py

from oci.addons.adk import Agent, AgentClient
from oci.addons.adk.tool.prebuilt import AgenticRagTool

def main():

    client = AgentClient(
        auth_type="api_key",
        profile="DEFAULT",
        region="us-chicago-1"
    )

    # Assuming the knowledge base is already provisioned
    knowledge_base_id = "ocid1.genaiagentknowledgebase..."

    # Create a RAG tool that uses the knowledge base
    # The tool name and description are optional, but strongly recommended for LLM to understand the tool.
    rag_tool = AgenticRagTool(
        name="OCI RAG tool",
        description="Use this tool to answer questions about Oracle Cloud Infrastructure (OCI).",
        knowledge_base_ids=[knowledge_base_id],
    )

    # Create the agent with the RAG tool
    agent = Agent(
        client=client,
        agent_endpoint_id="ocid1.genaiagentendpoint...",
        instructions="Answer question using the OCI RAG tool.",
        tools=[rag_tool]
    )

    # Set up the agent once
    agent.setup()

    # Run the agent with a user query
    input = "Tell me about Oracle Cloud Infrastructure."
    response = agent.run(input)
    response.pretty_print()

if __name__ == "__main__":
    main()