Python用のSelect AI Agent

select_ai.agentサブモジュールを使用して、Pythonからデータベース内のAIエージェント・ツール、タスク、エージェントおよびチームを作成および管理します。

Select AI Agent for Pythonは、select_aiクライアント・ライブラリおよびDBMS_CLOUD_AI_AGENTパッケージ上に構築されます。Autonomous AI Databaseで同期および非同期のエージェント・ワークフローをサポートします。

サポートされているプラットフォーム

PythonプラットフォームでサポートされているSelect AIについては、サポートされているプラットフォームを参照してください。

Select AI for Python GitHubリポジトリで製品の問題を報告します。

Python用のSelect AIエージェントのインストール

pipを使用してSelect AI for Pythonパッケージをインストールします:

python3 -m pip install select_ai

Select AI Agentクラスは、select_ai.agentサブモジュールに含まれています。

データベース権限の管理

Select AI Agent for Pythonでは、DBMS_CLOUD_AI_AGENTデータベース・パッケージへのアクセスが必要です。次のAPIを使用して、データベース・パッケージ権限を付与または取り消します。

select_ai.grant_privileges(...)
select_ai.revoke_privileges(...)

権限、HTTPアクセスおよび外部ホスト・ネットワーク・アクセス管理の詳細は、データベース権限およびネットワーク・アクセスの管理を参照してください。

実行可能な操作

次の表に、Select AI Agent for Pythonの主な機能をまとめます。

能力 摘要
ツール 自然言語からSQL、Web検索、Retrieval-Augmented Generation、PL/SQL、通知およびカスタム関数のツールを作成および管理します。
タスク タスク・ロジックを定義し、タスクが使用するツールを構成します。
エージェント エージェント・ロールおよびAIプロファイルの割当て
Teams 複数エージェント・チームをプログラム的に組み立てて実行します。
チームのエクスポートおよびインポート エージェント・チーム仕様を同期または非同期でエクスポートまたはインポートします。
同期および非同期API アプリケーション要件に基づいて、同期APIまたはPythonのasyncおよびawaitコンストラクトを使用します。
オブジェクトのライフサイクル管理 データベースにバックアップされたエージェント・オブジェクトを取得、更新および削除します。

サポートされているクラス

次の表に、Pythonクラスの主要なSelect AI Agentの概要を示します。

クラスまたはクラス・グループ 目的
ToolおよびAsyncTool AIエージェント・ツールを作成および管理します。
TaskおよびAsyncTask タスク・ロジックおよびツールの使用を作成および管理します。
AgentおよびAsyncAgent エージェント、そのロール、プロファイルおよびタスクを作成および管理します。
TeamおよびAsyncTeam マルチエージェント・チームを作成、実行、エクスポートおよびインポートします。

ツールの操作

ツールを使用して、エージェントがタスクの処理時にコールできる機能を提供します。SQL、Web検索、Retrieval-Augmented Generation、PL/SQL、Slack通知および電子メール通知ツールを作成できます。

ツール作成APIでは、instructionパラメータがサポートされます。このパラメータを使用して、ツール実行の正確な動作を定義します。

Web検索および通知ツールには、外部サービスの資格証明およびネットワーク・アクセスが必要です。SQLおよびRAGツールには、既存の Select AIプロファイルが必要です。

タスクの操作

タスクを使用して、エージェントが実行する作業と、エージェントが使用できるツールを定義します。instructionおよびtools属性を構成して、エージェントがリクエストを処理する方法を制御します。

オプションのinput属性を使用すると、以前のタスクの出力に依存するタスクを作成できます。

エージェントの操作

エージェントを使用して、ロールとAIプロファイルを関連付けます。プロファイルは、エージェントがプランニングおよび推論に使用するモデルを提供し、ロールはエージェントの意図した動作を定義します。

エージェント・チームの処理

チームを使用して、複数のエージェントをプログラム的にアセンブルおよび実行します。チームはエージェントをタスクとペアリングし、専門エージェントがリクエストを完了するために調整するエージェント・ワークフローをサポートします。

タスク割当てを順番に実行するには、チームのprocess属性をsequentialに設定します。エージェントが複数のタスクを実行する必要がある場合は、そのエージェントを複数のチーム・エントリで再利用します。

Team.run(...)を使用して、チーム・ワークフローを開始します。prompt引数はタスクに渡され、{query}を使用してタスクの指示で参照できます。

エージェント・チームのエクスポートおよびインポート

Select AI for Python 1.4では、AIエージェント・チームをエクスポートおよびインポートするための同期および非同期APIが追加されています。チーム仕様には、チーム構成と、関連するエージェント、タスクおよびツール定義が含まれます。

同期API:

Team.export_team(...)
Team.import_team(...)

非同期API:

AsyncTeam.export_team(...)
AsyncTeam.import_team(...)

Team.export_team()は、デフォルトでJSON仕様を返します。Team.import_team()は、そのJSON仕様またはチーム定義を含むPythonマッピングを受け入れます。新しい名前でチームをインポートするには、team_nameを指定します。

仕様をオブジェクト・ストレージに書き込むか、オブジェクト・ストレージからインポートするには、object_storage_credential_nameおよびlocationを指定します。インポート時に競合するツール、タスク、エージェントまたはチームを置き換えるには、force=Trueを設定します。

完全なリリースの詳細は、python-select-ai v1.4.0を参照してください。

既存のオブジェクトの取得および更新

Select AI Agent for Pythonは、データベース・バックアップ・プロキシ・オブジェクトを取得および更新するための一貫したメソッドを提供します。

メソッド 目的
fetch() 既存のデータベース・オブジェクトを取得し、対応するプロキシ・オブジェクトを返します。
set_attribute() プロキシ・オブジェクトの1つの属性を更新します。
set_attributes() プロキシ・オブジェクトの複数の属性を更新します。

これらのメソッドは、ツール、タスク、エージェント、チームおよびその他のサポートされているプロキシ・オブジェクトを操作するための一貫した方法を提供します。

クラス・メソッドを使用したオブジェクトの削除

アプリケーションが最初にプロキシ・オブジェクトを作成またはフェッチせずにオブジェクトを削除する必要がある場合は、クラスレベルのdeleteメソッドを使用します。

Agent.delete_agent(agent_name)
Task.delete_task(task_name)
Tool.delete_tool(tool_name)
Team.delete_team(team_name)

同期および非同期APIの使用

Select AI Agent for Pythonは、そのプライマリ操作に同期および非同期APIを提供します。

次の表に、同期クラスとそれに対応する非同期クラスをマップします。

同期クラス 非同期同等
Tool AsyncTool
Task AsyncTask
Agent AsyncAgent
Team AsyncTeam

次のようなアプリケーションでの非同期APIの使用:

  • 複数のエージェント・ワークフローを同時に処理します。
  • イベント・ループを使用します。
  • 非同期Pythonフレームワークと統合します。
  • データベース操作の待機中にブロックを回避する必要があります。

完全な非同期APIリファレンスは、Select AI for Python APIリファレンスを参照してください。

関連資源