Native tools
============

AIDBには、ネイティブツールの大規模なビルトインカタログが同梱されています。ほとんどが既存のAIDB機能の薄いラッパーであるため、エージェントはSQLから直接操作するのと同じ方法でパイプライン、ナレッジベース、モデル、ボリュームを操作できます。これは、AIDBがサポートする3つのツールタイプの1つです。
:ref:`Custom SQL tools <Custom SQL tools>` および :ref:`MCP tools <MCP tools>` を含む完全なカタログについては、
:ref:`Tools reference <Tools reference>` を参照してください。 ``sleep``
は、推論ループ自身の一時停止と再開の機能をサポートするため、バッキングモデルが要求で伝送できるツールの数を制限し、エージェントの他の設定済みツールが既にそのキャップを満たしている場合を除き、設定された\ ``tools``
リストに関係なく、すべてのエージェントが常に利用できます。他のすべてのネイティブツールを使用するには、\ ``tools``
に明示的にリストする必要があります。

ツールの正確なパラメーターは\ ``SELECT params FROM aidb.tools WHERE name = '<name>'``
で常に可視されます。以下のテーブルに、それぞれの1行の説明と読み取り専用ステータスを示します。

アドホックSQL
-------------

.. csv-table::
  :header: Tool,Read-only,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `run_sql_query`,Yes,データベースに対して読み取り専用のSQLクエリーを実行し、その行をJSONとして結果ます。

カタログディスカバリ
--------------------

データベースカタログのイントロスペクション
これらのツールを使用すると、エージェントは\ ``information_schema``
/``pg_catalog``
クエリ自分自身を構成せずに、どのようなスキーマ、テーブル、ビュー、およびファンクションが存在するかを検出できます。

これらは以下の :ref:`Semantic knowledge bases <Semantic knowledge bases>` に関連していますが、2つは互換性のあるものではなく、補完的なものです。

- **カタログ検出ツール** は、
  Postgresカタログに対してライブで正確なルックアップを行います。セットアップは必要なく、常にデータベースの現在の状態を反映し、正確な名前またはSQL
  ``LIKE`` パターンで一致します。

- **セマンティックナレッジベースツール**
  は、スキーマのクロールされたスナップショットに対してセマンティックベクター検索を実行します。事前に構築されたオプトインのナレッジベースと、構造の変更を検出するための再クロールが必要ですが、「顧客の連絡先情報を保持しているテーブルはどれですか?」のような自然言語の質問に答えることができます。その正確なカタログ検索ではできません。

一般的なエージェントは、あいまいな説明から適切なテーブルを見つけるためのセマンティック検索と、その正確な現在の列と外部キーを取得するためのカタログディスカバリの両方を使用します。

4つのツールはすべて特権認識であり、呼び出したユーザーが実際に見ることができるオブジェクトのみを結果ます。リストは、PostgresとAIDBの内部スキーマ、およびインストールされた拡張機能のスキーマとオブジェクトをデフォルトで非表示にします\ ``catalog_get_object_details``
は意図的に拡張機能オブジェクトを非表示にします。明示的に名前を付けることがそれを求めています。リストの行数は200行に制限されています。すべての行には\ ``truncated``
フラグがあり、それ以上の行が存在する場合は\ ``true`` であり、 ``schema``
または\ ``name_pattern``
で検索を絞り込むように呼び出し元に通知します。オプショナルのテキストパラメーターは、空の文字列を省略された引数と同じように扱います。

.. csv-table::
  :header: Tool,Read-only,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `catalog_list_schemas`,Yes,現在のデータベースのスキーマをリストします。 `include_system`が設定されていない限り、 Postgres / AIDB内部スキーマとインストールされた拡張機能のスキーマを非表示にします。
  `catalog_list_objects`,Yes,リストテーブル、ビュー、マテリアライズドビュー、外部テーブル、および/またはファンクション。 `schema`、`object_type`、および/または`name_pattern`で絞り込みます。
  `catalog_get_object_details`,Yes,名前によって1つのオブジェクトの完全な詳細を取得します。リレーションの列、プライマリ/一意/外部キー。ファンクションの引数と戻り値の型。
  `catalog_list_relations`,Yes,外部キー関係のリスト — スキーマ内のすべてのFK、または特定のテーブルに接触するエッジのみ、いずれかの方向に。

セマンティック知識ベース
------------------------

スキーマ検索ナレッジベースにより、テーブル、列、およびその他のDBオブジェクトのセマンティック検索ベースの検出が可能になります。パイプラインが作成できるユーザーデータのナレッジベースとは異なります。

.. csv-table::
  :header: Tool,Read-only,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `create_semantic_kb`,No,自然言語スキーマ検索用に1つ以上のスキーマに対してセマンティックナレッジベースを作成します。
  `delete_semantic_kb`,No,セマンティックナレッジベースを名前で削除します。
  `list_semantic_kbs`,Yes,登録されているすべてのセマンティックナレッジベースをリストします。
  `get_semantic_kb`,Yes,登録されたセマンティックナレッジベースの構成を名前で取得します。
  `refresh_semantic_kb`,No,セマンティック知識ベースのスキーマを再クロールして、構造の変更を検出します。
  `update_semantic_kb_auto_processing`,No,セマンティック知識ベースの自動処理モードを変更します。
  `get_column_definitions`,Yes,セマンティックナレッジベースを検索して、一致する列/テーブル定義を見つけます。
  `get_metadata`,Yes,セマンティックナレッジベースの完全なスキーマメタデータ列、テーブル、コメントを検索します。
  `get_entity_definitions`,Yes,セマンティックナレッジベースを検索して、一致するテーブル/ビュー定義を見つけます。
  `semantic_kb_search`,Yes,ナレッジベースで複合セマンティック検索を実行し、ソースタイプの識別子と一致するテーブル、ビュー、列、およびエイリアスのランク付けリストを1つ結果ます。
  `search_by_comment`,Yes,セマンティックナレッジベースのスキーマ/テーブル/列コメントを類似性によって検索します。
  `semantic_kb_stats`,Yes,セマンティックナレッジベースの行/エンティティ数を取得します。

モデル
------

:ref:`Integrating models <Integrating models>` を参照してください。

.. csv-table::
  :header: Tool,Read-only,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `list_models`,Yes,登録されているすべてのモデルをリストします。
  `get_model`,Yes,登録されたモデルの構成を名前で取得します。
  `create_model`,No,新しいモデルをプロバイダーと構成に登録します。
  `delete_model`,No,登録されたモデルを名前で削除します。
  `sync_hcp_models`,No,使用可能なモデルを、構成済みのハイブリッドマネージャーHMからモデルレジストリに同期します。
  `list_hcp_models`,Yes,HMから既に同期されたモデルをリストします。
  `get_hcp_models`,Yes,HMから利用可能なモデルをリストします、同期されているかどうか。
  `create_hcp_model`,No,HMからローカル名でモデルを登録します。

ボリューム
----------

:ref:`Configuring external storage <Configuring external storage>`  を参照してください。

.. csv-table::
  :header: Tool,Read-only,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `list_volumes`,Yes,登録されているすべてのボリュームをリストします。
  `create_volume`,No,オブジェクトストアによってバッキングされた新しいボリュームを登録します。
  `delete_volume`,No,名前でボリュームを削除します。
  `list_volume_content`,Yes,ボリュームに保存されているファイルをリストします。
  `read_volume_file`,Yes,ボリュームからファイルの内容を読み取ります。
  `write_volume_data`,No,ボリューム内のファイルにデータを書き込みます。
  `delete_volume_file`,No,ボリュームからファイルを削除します。

埋め込みとドキュメント処理
--------------------------

:ref:`SQL functions <SQL functions>` を参照してください。

.. csv-table::
  :header: Tool,Read-only,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `encode_text`,Yes,ドキュメント/検索インデックスストレージのテキスト埋め込みベクトルを計算します。
  `encode_text_query`,Yes,クエリー対インデックス用に調整されたテキスト埋め込みベクトルを計算します。
  `encode_image`,Yes,画像埋め込みベクトルを計算します。
  `generate_text`,Yes,言語モデルからテキストを生成します。
  `get_model_description`,Yes,モデルの人が判読可能な説明を取得します。
  `list_model_providers`,Yes,モデルの登録に使用できる外部サーバーバッキングのモデルプロバイダーをリストします。
  `rerank_text`,Yes,リランカーモデルを使用して、クエリに対して候補テキストのリストを再ランク付けします。
  `get_adapter_embedding_dimensions`,Yes,テキストまたは画像入力のモデルの出力埋め込み次元を取得します。
  `chunk_text`,Yes,テキストを埋め込みに適したチャンクに分割します。
  `parse_html`,Yes,HTMLをプレーンテキストまたはマークダウンに解析します。
  `parse_pdf`,Yes,PDFからページごとに1行でテキストを抽出します。
  `pdf_to_image`,Yes,PDFのページを画像にレンダリングします、ページごとに1行。
  `perform_ocr`,Yes,画像またはスキャンしたドキュメントでOCRを実行します。
  `summarize_text`,Yes,言語モデルを使用してテキストを要約します。

エージェント管理
----------------

:ref:`Managing agents <Managing agents>` を参照してください。エージェントに *他の*
エージェント自分自身を含むを作成または再構成させることは、強力な自己変更機能です。これらのツールに意図的に付与します。

.. csv-table::
  :header: Tool,Read-only,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `list_agents`,Yes,登録されているすべてのエージェントをリストします。
  `create_agent`,No,新しいエージェントを作成します。 `error`列成功した場合は`NULL`を含む単一の行を結果ます。
  `update_agent`,No,既存のエージェントの構成を更新します。明示的に渡されたフィールドのみが変更されます。
  `delete_agent`,No,名前でエージェントを削除します。 `error`列成功した場合は`NULL`を含む単一の行を結果ます。
  `sleep`,Yes,推論を数秒間一時停止し、自動的に再開します。モデル自身のツールカウントキャップがエージェントの他の構成済みツールによって既に埋められている場合を除き、設定されたツールリストに関係なく、すべてのエージェントが常に利用できます。

パイプライン
------------

:ref:`AI pipelines <AI pipelines>` を参照してください。

.. csv-table::
  :header: Tool,Read-only,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `search_pipelines`,Yes,登録されているすべてのデータパイプラインをリストします。
  `get_pipeline`,Yes,登録されたデータパイプラインの構成を名前で取得します。
  `delete_pipeline`,No,登録されたデータパイプラインを名前で削除します。
  `run_pipeline`,No,パイプラインを1回手動で実行し、保留中のソース行を処理します。
  `get_pipeline_metrics`,Yes,パイプラインの処理ステータスと行数を取得します。
  `get_error_logs`,Yes,パイプラインのレコードレベルの処理エラーをリストします。オプションでフィルタリング。
  `clear_error_logs`,No,IDに基づいて特定のパイプラインエラーログエントリを削除します。
  `requeue_pipeline_errors`,No,特定のパイプラインエラーのソース行をダーティとしてマークして、次回の実行で再試行します。
  `get_error_log_summary`,Yes,パイプラインのエラー数をステップ、オペレーション、カテゴリごとにグループ化して取得します。
  `get_all_error_summaries`,Yes,すべてのパイプラインのエラー数をステップ、オペレーション、カテゴリごとにグループ化して取得します。

!!!note パイプラインオーサリング ``aidb.create_pipeline``
/``aidb.update_pipeline``
にはネイティブツールがありません。これらのファンクションは、ステップ/ステップオプションのペア全体で最大30のパラメーターを取得するため、単一の汎用ツール呼び出しには非現実的であるため、現在マルチステップのパイプラインオーサリングはエージェントが自分自身で実行できるものではありません。
