ツールはエージェントのアクションレイヤーです。エージェントがデータを取得したり、レコードを更新したり、アクションをトリガーしたりするたびに、許可された API を呼び出して処理を行います。
たとえば、Zoho CRM 用の営業アシスタントを構築する場合、エージェントには案件レコードの取得、案件ステージの更新、連絡先情報の取得などを行うためのツールが必要になります。これらのツールは本質的に API ベースのアクションであり、CRM、Desk、Projects など、どのサービスであってもエージェントがそれらと連携できるようにします。
ツールがなければ、エージェントは質問に回答するだけで、実際に意味のあるアクションを実行することはできません。
ツールグループは、エージェントがアクションを実行するために使用できるツールの集合です。1 つまたは複数の Zoho サービスから API を同じグループに追加できます。これにより、製品をまたいだワークフローを設計できます。たとえば次のようなケースです:
- Zoho CRM から案件データを読み取る
- Zoho Desk にチケットを作成する
ツールをグループ化して整理することで、管理しやすくなり、エージェントが目的に合った適切な API を使用できるようになります。
ツールグループの作成方法:
ツールグループは、次の 2 通りの方法で作成できます。
| 方法 |
利用シーン |
|
|
|
Zoho サービスでサポートされている API を使って、すばやくセットアップしたい場合
|
1 つのグループに、複数サービスの API を追加できます。
|
|
|
カスタムエンドポイントの利用や、より細かな制御が必要な場合
|
複数の YAML ファイル(サービスごと、または混在)をアップロードし、必要なオペレーションだけを選択できます。
|
API メソッドとエンドポイントの理解
すべてのツールは API を基盤としており、各 API には次の 2 つの重要な要素があります。
- メソッド:API が実行するアクションの種類。
- エンドポイント:そのアクションが実行される場所(URL)。
エンドポイントの例:
- GET /crm/v8/Leads/{record_id}
これは、API が指定した ID を使って特定の見込み客の詳細を取得することを意味します。
ベストプラクティス:
- 同じワークフローに属するツールをまとめてグループ化します(例:「リードからチケットへの引き継ぎ」)し、無関係なアクションは追加しないでください。
- ツールに必要なスコープだけを選択します。
- 識別しやすいように、ツール名やツールグループ名は内容がわかる説明的な名前にします。
- 公開前にテストする: 各ツールがサンプルデータで正しく動作することを確認します。
- サービス側で API が更新された場合は、再テストして設定を調整します。
YAML ファイル
YAML ファイルでは、エージェントが使用する API の構造を定義します。エージェントに対して、実行できるアクションの設計図を渡すイメージです。
エージェントが動作するには、取引レコードの取得、連絡先の更新、チケットの作成など、エージェントが行うすべてのアクションをこの YAML に定義しておく必要があります。エージェントが対応すべきアクションに応じて、1 つのファイルに複数の API を含めることができます。
たとえば、エージェントが Zoho CRM からレコードを取得する必要があるとします。YAML ファイルでは次の内容を定義します。
- エージェントがアクセスできる API エンドポイント。
- それらのエンドポイントに必要なパラメーター(対象とするモジュールやレコードなど)。
- 呼び出しに必要な認証方式(安全なアクセスを確保するため)。
- 呼び出しが成功または失敗したときにエージェントが受け取るレスポンスの内容(返信をどのように処理すべきかを判断できるようにするため)。
これらはすべて OpenAPI 3.0 形式で記述します。
OpenAPI 3.0は、REST API を定義・文書化するためのオープンな仕様であり、ソースコードやドキュメント、ネットワークトラフィックの解析に頼らずに、人間とマシンの両方が API を理解し操作できるようにします。言語に依存しないインターフェイスであり、通常 YAML または JSON の標準フォーマットを使用して、利用可能なエンドポイント、操作、パラメーター、データモデルなどの API の詳細を記述します。
- openapi: 3.0.0
- info:
- title: Zoho CRM API
- version: '1.0.0'
- description: 指定したモジュールから、Zoho CRM API v7 を使用して単一のレコードを取得します。
- servers:
- - url: https://www.zohoapis.com
- paths:
- '/crm/v7/{module_api_name}/{record_id}':
- get:
- summary: ID を指定して単一のレコードを取得します
- description: >
- 指定したモジュールから、そのレコード ID を使用して単一のレコードを取得します。
- `fields` パラメーターを使用して、特定の項目のみを取得することもできます。
- operationId: getRecordById
- parameters:
- - name: module_api_name
- in: path
- required: true
- description: モジュールの API 名(例:Leads、Contacts、Deals)。
- schema:
- type: string
- x-Zoho Zia-agent-param-type: system
-
- - name: record_id
- in: パス
- 必須: true
- description: レコードの一意の識別子です。
- schema:
- type: string
- x-Zoho Zia-agent-param-type: system
- responses:
- '200':
- description: レコードデータを含む正常なレスポンスです。
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- type: object
- additionalProperties: true
- info:
- type: object
- additionalProperties: true
- '204':
- description: コンテンツがありません。レコードが見つからないか 指定されたタイムスタンプ以降に更新されていません。
- '400':
- description: 不正なリクエスト — パラメーターが無効です。
- '401':
- description: 認証エラー — アクセストークンが無効 または指定されていません。
- '403':
- description: アクセス拒否 — ユーザーにはこのレコードへのアクセス権限が ありません。
- '404':
- description: 見つかりません — 指定された ID を持つレコードは存在しません。
- '429':
- description: リクエストが多すぎます — API のレート制限を超えています。
- '500':
- description: サーバー内部エラー。
- security:
- - OAuthToken: ['ZohoCRM.modules.ALL']
- components:
- securitySchemes:
- OAuthToken:
- type: oauth2
- flows:
- authorizationCode:
- authorizationUrl: https://##PROTECTED_0##
- tokenUrl: https://##PROTECTED_0##
- スコープ:
- ZohoCRM.modules.ALL: すべてのモジュールに対する読み取りアクセス権
YAML に表示される module_api_name や record_id などのシステムパラメーターは、エージェントがさまざまなモジュールやレコードを動的に扱えるようにするためのものです。これらがないと、エージェントはどのレコードやどのモジュールを対象にすべきか判断できません。
新しいツールグループを作成するには、次の手順に従います。
- Zoho Zia Agents アカウントで、左側の Tools タブに移動します。
- [New Tool Group] をクリックします。
- ツールグループ名を入力します。

- 作成方法を選択します。
- Predefined:あらかじめ用意された API セットを選択して、ツールグループを作成します。

- Create from scratch(独自の YAML ファイルで作成):独自の YAML ファイルを使用して、新しい API ツールを作成します。
Predefined
Zoho Zia Agents Studio には、各種 Zoho サービス向けの事前定義ツールが用意されています。
- 要件に応じて、対象のサービスをクリックします。
- そのサービスでサポートされている API の一覧と、それぞれの説明が表示されます。
また、API で使用される Method(GET/POST)や Path などの詳細も確認できます。
- 必要な API に対して、[Add] をクリックします。

Create From Scratch
ツールグループを一から作成するには、次の操作を行います。
- アップロードアイコンをクリックし、YAML ファイルをアップロードします。
- [Schema] でサービス名(例: Zoho CRM)を選択します。
- [Validate] をクリックします。
YAML ファイルから選択された API が一覧表示されます。検証が正常に完了したら、[Next] をクリックします。

- [Description] で、参照用に Tools Group の説明を追加します。

事前定義 API は「Ready」と表示され、アップロードした YAML ファイル由来の API は「Draft」として追加され、Ready にする前にテストが必要です。
- API を選択し、[Test API] をクリックします。

- 既存のコネクションを関連付けるか、新しいコネクションを作成してから関連付けることができます。

- ご利用のサービスで使用するパラメーター値を入力します。
たとえば、この例で選択している getRecordById API の場合、モジュールパラメーターの値を Leads に設定し、テスト用リードのレコード ID を指定します。
- [Test]をクリックします。

- テストが正常に完了すると、API の テストステータスが Success と表示されます。

テスト済みの API を選択し、[Mark as Ready]をクリックできます。
これでエージェントに関連付けられるようになります。
- [Save]をクリックして、ツールグループを保存します。
これでツールグループが作成されます。同じ手順を繰り返すことで、複数のツールグループを作成できます。
コネクション
コネクションは、ツールの実行時に CRM や Desk などの特定のサービスへの認証とアクセスを有効にするために使用されます。コネクションを有効にするには、そのコネクションに関連付けられたサービスと OAuth スコープが、ツールグループのサービスおよび選択したツールに必要なスコープと一致している必要があります。この整合性が取れている場合にのみ、そのコネクションをツールに関連付けることができます。ツールは、有効なコネクションに正しくリンクされて初めて実行できます。
コネクションは、[設定]ページの[Connections]タブに一覧表示されます。[My Connections]タブでは、自分または組織の管理者が作成したコネクションを確認できます。有効なサービスには緑色のドットが表示され、無効なサービスはグレー表示になります。
コネクションを作成するには
- [Settings]>[Connections]に移動します。
- [My Connection]スライドアウトパネルで、[Create Connection]ボタンをクリックし、次の操作を行います。
- Pick Your Service: デフォルトサービスとカスタムサービスが表示されます。API に接続したいサービスを選択するか、新しいカスタムサービスを作成します。

- Connection Details:
- Connection name: コネクションに一意の名前を設定します。コネクションリンク名は自動的に更新されます。
- ログインユーザーの認証情報を使用したくない場合は、[Yes]トグルを[Use Credentials of Login User]の下でオフにします。
- 要件に応じてスコープを選択します。

CRM 用の適切なスコープの選び方については こちらを参照してください。
- [Create and Connect] をクリックします。
これで、ご自身の認証情報を使って接続できるようになります。次のページで、選択したサービスとスコープを持つ既存の接続を再利用するか、新しい接続を作成するかを選択できます。

- 新しい接続を作成する場合は、使用したい組織を 1 つ選択し、Submit をクリックします。

- Deluge から表示される認可プロンプトを確認し、Deluge に CRUD 操作の実行を許可することに同意するため、[Accept] をクリックします。

認証が完了すると、接続が作成されます。

パネルには、エージェントが接続をどのように使用するかをテストできるよう、Deluge と JSON のサンプルコードが表示されます。