RAGツールを使用したエージェント

事前構築済のRAGツールを使用してエージェントを作成する方法について学習します。

サポート・エージェントの例

この例では、事前構築済みのエージェントRAGツールを備えたサポートエージェントを作成します。

RAGツールを使用すると、エージェントはナレッジ・ベースを使用して、ドキュメントに基づいた質問に回答できます。ナレッジ・ベースを作成し、そのIDを取得するには、このガイドに従います。


情報: RAGツールは、OCI Cloudのサーバー側で実行されます。

実装はエージェントRAGで、システムはパッシブ・リトリバーやジェネレータではなく自律エージェントのように動作します。


複数のナレッジ・ベースIDをAgenticRagToolに渡すこともできます。

Python

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()

Java

SupportAgent.java

package demos.singleTurnSingleTool.SupportAgent;

import com.oracle.bmc.ConfigFileReader;
import com.oracle.bmc.adk.agent.Agent;
import com.oracle.bmc.adk.agent.RunOptions;
import com.oracle.bmc.adk.client.AgentClient;
import com.oracle.bmc.adk.tools.prebuilt.AgenticRagTool;
import com.oracle.bmc.adk.run.RunResponse;
import com.oracle.bmc.auth.BasicAuthenticationDetailsProvider;
import com.oracle.bmc.auth.SessionTokenAuthenticationDetailsProvider;

import java.util.Arrays;

public class SupportAgent {
  public static void main(String[] args) throws Exception {
    final String configLocation = "~/.oci/config";
    final String configProfile = "DEFAULT";

   // Assuming the knowledge base is already provisioned
   final String knowledgeBaseId = "ocid1.genaiagentknowledgebase...";

    BasicAuthenticationDetailsProvider authProvider =
            new SessionTokenAuthenticationDetailsProvider(
                    ConfigFileReader.parse(configLocation, configProfile));

    AgentClient agentClient = AgentClient.builder()
        .authProvider(authProvider)
        .region("us-chicago-1")
        .build();

    Agent agent = Agent.builder()
            .client(agentClient)
            .agentEndpointId("ocid1.genaiagentendpoint...")
            .instructions("Answer question using the OCI RAG tool.")
            .tools(
                Arrays.asList(
                    AgenticRagTool.builder().knowledgeBaseIds(Arrays.asList(knowledgeBaseId)).build()))
            .build();

    agent.setup();

    final String input = "Tell me about Oracle Cloud Infrastructure.";
    final Integer maxStep = 3;
    final RunOptions runOptions = RunOptions.builder().maxSteps(maxStep).build();
    RunResponse response = agent.run(input, runOptions);
    response.prettyPrint();
  }
}