Skip to main content

ツールの仕組み

発信者の発言がツールの「トリガー」(description フィールドで定義)に一致すると、エージェントは通話中にそのツールを自動的に発火します。 重要なポイント: ツールは LLM モデル に紐付けられます。エージェント自体には紐付けません。
1 つの LLM モデルに複数のツールを持たせることができます。そのモデルを使うすべてのエージェントは、すべてのツールを自動的に継承します。エージェントに新しいツールを追加するには、紐付いている LLM モデルを更新してください — エージェント自体ではありません。 まだエージェントを作成していない場合は、先に クイックスタート を参照してください。

ツール種別

send_smssend_emailschedule_calendar_event のようにサードパーティプロバイダーと通信するツールには、そのプロバイダーのインテグレーションを指す credential_id が必要です。api_calltransfer_callextract_informationend_call は不要です。

ステップ 1 — ツールを作成する

api_call

OneInbox は完全カスタムのツールをサポートしています — エージェントに実行させたいアクションを、あなたが管理する HTTP エンドポイントに向けるだけで定義できます。api_call ツールタイプを使うと、エージェントが通話中にあなた自身の API を呼び出して、データの照会、CRM への書き込み、ビジネスロジックのトリガー、その他バックエンドがサポートする任意のアクションを実行できます。 できることに制限はありません:エージェントが会話から適切なパラメーターを抽出し、エンドポイントを呼び出し、レスポンスを使って次に何を言うかを判断します。

send_sms

トリガーされたときにテキストメッセージを送信します。リードが取得された瞬間にチームへ通知したり、発信者へ確認連絡を送るために使います。
SMS は通話に使用した番号と同じ番号から送信されます — その番号が SMS 機能を有効にしていることを確認してください。OneInbox 経由で番号を購入するか、自分の Twilio/Telnyx 番号を登録する場合は、このツールを使用する前に SMS 対応を確認してください。
{{caller}} は通話時に発信者の電話番号へ自動的に解決されるビルトイン変数です — システムが自動的に埋め込みます。メッセージ本文に番号を含めるために発信者へ電話番号を聞く必要はありません。

send_email

トリガーされたときにメールを送信します。リードの要約を営業チームに届けたり、発信者へフォローアップメールを送ったり、通話中の重要なタイミングで誰かに通知するために使います。
通話ごとにツール発火ではなく、すべての通話終了後に自動でサマリーSMS/メールを送りたい場合は、ツールではなくエージェントpost_call_sms / post_call_email を設定してください — 詳細は エージェント を参照。ツールはトリガーに基づき通話中に発火しますが、ポストコール設定は通話終了後に一度だけ自動的に発火します。
{{email}} は通話開始時に渡される dynamic_variables オブジェクトから解決されます — アウトバウンドコールリクエストに "dynamic_variables": {"email": "caller@example.com"} を含めることで利用できます。tosubject_templatebody_template のどこでも {{email}} を使用して発信者のメールアドレスを自動挿入できます。

schedule_calendar_event

トリガーされたときにカレンダーイベントを予約します。通話中にエージェントへデモやフォローアップ会議を直接スケジュールさせたいときに使います。
エージェントは通話中に参加者の名前とメールアドレスを取得する必要があります — Cal.com の予約完了にはどちらも必須です。リクエストされた時間枠に空きがない場合(例:Cal.com の稼働時間外)、予約は HTTP 400 で失敗します。

api_call

通話中に自社の HTTP エンドポイントを呼び出します。情報照会(注文状況、アカウント詳細など)、CRM へのデータ送信、発信者の発言に応じた独自ビジネスロジックの実行に使います。

ネストしたパラメータ(フル JSON Schema)

parameters はフラットなフィールドリストのみをサポートします。エンドポイントがネストしたオブジェクト・配列・enum を必要とする場合は、代わりに parameters_schema を使用してください — サーバー側で保存前に検証される、生の JSON Schema オブジェクトです。どちらか一方のみを使用してください(両方は不可):

transfer_call

発信者を実際の電話番号へ転送します。発信者が人間との会話を求めたとき、または特定のチームへ繋ぐ必要があるときに使います。OneInbox はコールド(デフォルト)とウォームの 2 つの転送モードをサポートしています。

コールドトランスファー

デフォルトです。発信者は即座に転送されます — ブリーフィングも保留音楽もありません。コンテキストの引き継ぎより速度が重要な場合(例:一般サポートキューへのルーティング)に使います。
transfer_config を省略することは transfer_config.mode: "cold" と同等です。

ウォームトランスファー

エージェントが先に人間へ電話し、発信者の名前・問い合わせ内容・関連コンテキストを伝え、人間の準備ができてから発信者をブリッジします。ブリーフィング中、発信者は保留音楽を聞きます。 高価値なリードをセールスマネージャーへ転送するなど、人間がコンテキストを必要とする場合に使います。

extract_information

会話が進む中で構造化データを静かに取得します — エージェントは発信者にそれを告知しません。リード資格データの保存、名前・メールの取得、通話からの重要事実の記録に使います。
取得したデータは通話終了後の通話レコードで確認できます。

end_call

通話をきれいに終了します。フローの最後 — 予約完了後、発信者がさようならと言った後、またはエージェントがタスクを完了したときに使います。このツールがない場合、無音タイムアウトに達するまで通話は継続します。

ステップ 2 — ツールを LLM モデルに紐付ける

ツールを作成するだけではアカウント内で利用可能になるだけで、エージェントはまだ使用できません。エージェントに紐付いている LLM モデルに紐付ける必要があります。エージェント作成レスポンスの llm_id を使用します — これが通話中の動作を決定する AI の頭脳です。
この llm_id にリンクされているすべてのエージェントは即座に変更を反映します — 再起動は不要です。

モデルからツールを切り離す

ツールのリスト全体を置き換えずに LLM モデルからツールを削除するには、remove_tool_ids を使用します:
同一リクエストでツールの追加と削除を同時に行えます — tool_ids で追加し、remove_tool_ids で切り離します。

ステップ 3 — システムプロンプトを更新する

各ツールの descriptionトリガー信号です — LLM がそれを読んでいつツールを自動的に発火するかを決定します。システムプロンプトはエージェントにフローの中でどのようにツールを使うかの文脈と順序を与えます。 ツールは name フィールドで参照します(ツール作成時に設定した name)、ツール ID ではありません。LLM はその名前を利用可能なツールと照合し、適切なタイミングで発火します。
description はトリガー条件として書いてください(「発信者が X と言ったときに発火」または「発信者が確認質問に答えたら実行」)。システムプロンプトは順序とフローを強化します。両方が LLM に読まれます — descriptionいつを決め、システムプロンプトがどのようにを決めます。

通話後にツール結果を読む

通話終了後、抽出データとツールの活動が通話レコードに表示されます。まず通話を停止し、数秒待ってから取得します:
messagesanalysis は通話終了後にのみ利用可能です — 通話がアクティブな間はどちらも空です。

ツールの管理

すべてのツールを一覧表示

アカウント内のすべてのツールを取得します。紐付け・更新が必要なツール ID を見つけるのに便利です。

ツールを更新

ツールの名前、説明、設定を変更します。例えば、エージェントがツールを発火する感度を上げ下げするためトリガーの説明を更新します。

ツールを削除

ツールを永久に削除します。ツールが LLM モデルに紐付いている場合、先に remove_tool_ids で紐付けを解除してから削除してください(上記のステップ 2 を参照)。

API リファレンス

ツール作成 · ツール一覧 · ツール更新 · ツール削除