Skip Navigation
Show nav
Dev Center
  • Get Started
  • ドキュメント
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • ドキュメント
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View categories

Categories

  • Heroku のアーキテクチャ
    • コンピューティング (dyno)
      • dyno の管理
      • dyno の概念
      • dyno の動作
      • dyno の参照資料
      • dyno のトラブルシューティング
    • スタック (オペレーティングシステムイメージ)
    • ネットワーキングと DNS
    • プラットフォームポリシー
    • プラットフォームの原則
  • 開発者ツール
    • コマンドライン
    • Heroku の VS Code 拡張機能
  • デプロイ
    • Git を使用したデプロイ
    • Docker によるデプロイ
    • デプロイ統合
  • 継続的デリバリーとインテグレーション
    • 継続的統合
  • 言語サポート
    • Node.js
      • Node.js アプリのトラブルシューティング
      • Heroku での Node.js の動作
      • Node.js の操作
    • Ruby
      • Rails のサポート
      • Bundler の使用
      • Ruby の操作
      • Heroku での Ruby の動作
      • Ruby アプリのトラブルシューティング
    • Python
      • Python の操作
      • Python でのバックグラウンドジョブ
      • Heroku での Python の動作
      • Django の使用
    • Java
      • Heroku での Java の動作
      • Java の操作
      • Maven の使用
      • Spring Boot の使用
      • Java アプリのトラブルシューティング
    • PHP
      • PHP の操作
      • Heroku での PHP の動作
    • Go
      • Go の依存関係管理
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • データベースとデータ管理
    • Heroku Postgres
      • Postgres の基礎
      • Postgres スターターガイド
      • Postgres のパフォーマンス
      • Postgres のデータ転送と保持
      • Postgres の可用性
      • Postgres の特別なトピック
      • Heroku Postgres への移行
    • Heroku Key-Value Store
    • Apache Kafka on Heroku
    • その他のデータストア
  • AI
    • Vector Database
    • Working with AI
    • Heroku Inference
      • AI Models
      • Inference Essentials
      • Heroku Inference Quick Start Guides
      • Inference API
    • Model Context Protocol
  • モニタリングとメトリクス
    • ログ記録
  • アプリのパフォーマンス
  • アドオン
    • すべてのアドオン
  • 共同作業
  • セキュリティ
    • アプリのセキュリティ
    • ID と認証
      • シングルサインオン (SSO)
    • Private Space
      • インフラストラクチャネットワーキング
    • コンプライアンス
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Team
    • Heroku Connect (Salesforce 同期)
      • Heroku Connect の管理
      • Heroku Connect のリファレンス
      • Heroku Connect のトラブルシューティング
  • パターンとベストプラクティス
  • Heroku の拡張
    • Platform API
    • アプリの Webhook
    • Heroku Labs
    • アドオンのビルド
      • アドオン開発のタスク
      • アドオン API
      • アドオンのガイドラインと要件
    • CLI プラグインのビルド
    • 開発ビルドパック
    • Dev Center
  • アカウントと請求
  • トラブルシューティングとサポート
  • Salesforce とのインテグレーション
  • AI
  • Heroku Inference
  • Inference Essentials
  • Managed Inference and Agent アドオンでの Heroku ツールの使用

Managed Inference and Agent アドオンでの Heroku ツールの使用

日本語 — Switch to English

この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。

最終更新日 2025年01月24日(金)

Table of Contents

  • Heroku ツール: web_browsing_single_page
  • Heroku ツール: web_browsing_multi_page
  • Heroku ツール: database_get_schema
  • Heroku ツール: database_run_query
  • Heroku ツール: code_exec_*
  • Heroku ツール: dyno_run_command
  • Heroku ツール: pdf_read
  • Heroku ツール: search_web

Heroku Managed Inference and Agent アドオンは現在パイロット段階です。パイロットの一環として提供される製品は本番環境での使用を目的としたものではなく、ベータサービスとみなされています。また、https://www.salesforce.com/company/legal/agreements.jsp​ のベータサービス条件が適用されます。

Heroku Managed Inference and Agent​ アドオンは、基本的な推論の域を超えて機能を拡張し、厳選された対応ツールセットを自動で実行します。

これらのツールを使用すると、Web サイトの検索、PDF の読み取り、Heroku データベースとのやり取り、LLM で作成されたコードの実行、さらには Heroku にすでにデプロイされているカスタムコードとの統合などを行えるエージェントワークフローを作成できるようになります。

Heroku ツールは、v1/chat/completions​ API と互換性があります。Managed Inference アドオンが、LLM から送信された、tools​ オブジェクト経由での呼び出しを許可されている認識済みのツール (type="heroku_tool"​) を呼び出すリクエストを処理すると、そのツールが自動的に実行されます。

リクエストが 29 秒を超えてタイムアウトするのを防ぐために、すべての推論リクエストでストリーミングを使用することをお勧めします。重要な注意事項: ツール呼び出しでストリーミングを使用する場合、Managed Inference アドオンは増分更新ではなく、各ツール呼び出しの後に完全な応答をストリーミングします。個々のツール呼び出しに 55 秒以上かかる場合は、タイムアウトが発生します。

 

ツール呼び出しと推論リクエストが 29 秒以内に完了する場合は、ストリーミングを使用しないことを選択できます。応答にはツール呼び出しの全履歴とそれぞれの出力が含まれます。

この記事に記載されているツールでは、簡略化された表記法を使用して詳細を指定します。Managed Inference のアドオンは、入力パラメータ、説明、その他のメタデータなど、必要なすべての情報を各ツールの API リクエストに自動で追加します。この抽象化により、LLM は余分な構成を必要とせずに、必要なすべてのツールの詳細にアクセスできるようになります。

target_app_name​ パラメータを受け付けるツールの場合は、対象のアプリに Managed Inference and Agent アドオンがアタッチされていることを確認してください。アドオンをアタッチすると、対象のアプリ内で One-off dyno を起動する権限がアドオンに付与されます。

Heroku ツール: web_browsing_single_page

web_browsing_single_page​ ツールを使用すると、LLM が Web ページを取得できるようになります。

例:

{
  "model": "claude-3-5-sonnet-latest",
  "messages": [
    {
      "role": "user",
      "content": "Who won the Formula 1 2024 Belgian Grand Prix? You can use the Wikipedia for the 2024 Belgian Grand Prix: https://en.m.wikipedia.org/wiki/2024_Belgian_Grand_Prix"
    }
  ],
  "tools": [
    {
      "type": "heroku_tool",
      "function": {
        "name": "web_browsing_single_page"
      }
    }
  ],
  "tool_choice": "auto"
}

Heroku ツール: web_browsing_multi_page

web_browsing_multi_page​ ツールを使用すると、LLM が Web ページを取得したり、リンクをクリックして目的地に到達したりできるようになります。

例:

{
  "model": "claude-3-5-sonnet-latest",
  "messages": [
    {
      "role": "user",
      "content": "Visit devcenter.heroku.com and tell me which regions Heroku Private Spaces are available in."
    }
  ],
  "tools": [
    {
      "type": "heroku_tool",
      "function": {
        "name": "web_browsing_multi_page"
      }
    }
  ],
  "tool_choice": "auto"
}

Heroku ツール: database_get_schema

database_get_schema​ ツールを使用すると、LLM がアプリにアタッチされた Heroku Postgres データベース​のスキーマをクエリできるようになります。このツールは One-off dyno​ を起動して指定されたデータベースのパブリックスキーマを調査し、LLM がその構造を理解できるようにします。

任意でエイリアスを使用してデータベースアタッチメント名を指定できます。エイリアスを指定しない場合、ツールはデフォルトで DATABASE​ を使用します。これは、Heroku Postgres アドオンの標準エイリアスです。

すべてのデータベースツールにおいて、本番環境でデータをクエリする場合は、Heroku Postgres のフォロワーデータベース​を使用することをお勧めします。フォロワーデータベースを使用すると、本番データベースに単発的なクエリによる追加の負荷がかからなくなります。フォロワーデータベースはデフォルトで読み取り専用でもあるため、LLM がデータを変更することはできません。

例:

{
  "model": "claude-3-5-sonnet-latest",
  "messages": [
    {
      "role": "user",
      "content": "Hi, can you tell me about my database's schema?"
    }
  ],
  "tools": [
    {
      "type": "heroku_tool",
      "function": {
        "name": "database_get_schema"
      },
      "runtime_params": {
        "target_app_name": "$APP_NAME",
        "tool_params": {
          "db_attachment": "DATABASE"
        }
      }
    }
  ],
  "tool_choice": "auto"
}

Heroku ツール: database_run_query

database_run_query​ ツールは、target_app_name​ Heroku アプリ内で One-off dyno を起動し、その後 db_attachment​ で指定されたデータベースに対して SQL クエリを実行します。このツールは、特に database_get_schema​ ツールと組み合わせると便利です。

すべてのデータベースツールにおいて、本番環境でデータをクエリする場合は、Heroku Postgres のフォロワーデータベース​を使用することをお勧めします。フォロワーデータベースを使用すると、本番データベースに単発的なクエリによる追加の負荷がかからなくなります。フォロワーデータベースはデフォルトで読み取り専用でもあるため、LLM がデータを変更することはできません。

{
  "model": "claude-3-5-sonnet-latest",
  "messages": [
    {
      "role": "user",
      "content": "How many unique user accounts have been created since 2021-01-01?"
    }
  ],
  "tools": [
    {
      "type": "heroku_tool",
      "function": {
        "name": "database_get_schema"
      },
      "runtime_params": {
        "target_app_name": "$APP_NAME",
        "tool_params": {
          "db_attachment": "DATABASE"
        }
      }
    },
    {
      "type": "heroku_tool",
      "function": {
        "name": "database_run_query"
      },
      "runtime_params": {
        "target_app_name": "$APP_NAME",
        "tool_params": {
          "db_attachment": "DATABASE"
        }
      }
    }
  ],
  "tool_choice": "auto"
}

Heroku ツール: code_exec_*

code_exec_*​ ツールを使用すると、エージェントが自ら生成したコードを実行できるようになります。またこのツールは、コードを実行する前にパッケージや依存関係をインストールする機能も備えています。LLM は環境準備のための shell_command​ と、言語固有のコードである code​ の 2 つのパラメータを指定します。コードの実行中にエラーが発生した場合、エージェントはエラーメッセージを読み取り、コードまたは依存関係を調整して自動的に再試行します。

現在は code_exec_go​、code_exec_node​、code_exec_python​、code_exec_ruby​の 4 つのプログラミング言語がサポートされています。

これらのコード実行ツールのいずれかを使い始める前に、次のコード実行アプリケーションのいずれかをアカウントにデプロイし、使用する LLM モデルリソースをそのアプリにアタッチする必要があります。これらのコード実行アプリケーションでは、アクティブに稼働中の dyno は必要ありません。以下のサポートされているプログラミング言語ごとに、Heroku へのワンクリックデプロイボタンが用意されています。

  • Ruby
  • Python
  • Go
  • NodeJS

例:

{
  "model": "claude-3-5-sonnet-latest",
  "messages": [
    {
      "role": "user",
      "content": "Use the code exec tool to take the sha256 of the following string: 'Heroku Rocks'"
    }
  ],
  "tools": [
    {
      "type": "heroku_tool",
      "function": {
        "name": "code_exec_python"
      },
      "runtime_params": {
        "target_app_name": "$APP_NAME"
      }
    }
  ],
  "tool_choice": "auto"
}

Heroku ツール: dyno_run_command

dyno_run_command​ ツールを使用すると、エージェントは Heroku アプリにすでにデプロイ済みの任意のコードを実行できるようになります。このツールは既存のコードを LLM で使用できるようにするのに役立ちます。実行するエントリポイントの cmd​ コマンドを指定するとともに、関数が行う処理を説明する description​ と、期待される parameters​ も提供する必要があります。

例:

{
  "model": "claude-3-5-sonnet-latest",
  "messages": [
    {
      "role": "user",
      "content": "Create a Trello card with the content `Call mom` in the TODO list."
    }
  ],
  "tools": [
    {
      "type": "heroku_tool",
      "function": {
        "name": "dyno_run_command"
      },
      "runtime_params": {
        "target_app_name": "$APP_NAME",
        "tool_params": {
          "cmd": "create_card"
        }
      },
      "description": "This tool is able to create Trello cards in the TODO list.",
      "parameters": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "description": "The content for the Trello card"
          }
        },
        "required": ["content"]
      }
    }
  ],
  "tool_choice": "auto"
}

追加の説明とパラメータのフィールドに注意してください。

Heroku ツール: pdf_read

pdf_read​ ツールを使用すると、LLM が URL から PDF を読み取ることができるようになります。単一の Web ページにアクセスする場合と同程度のレイテンシーが発生します。

例:

{
  "model": "claude-3-5-sonnet-latest",
  "messages": [
    {
      "role": "user",
      "content": "Write me a 200 word summary for the paper https://arxiv.org/pdf/2401.18059v1"
    }
  ],
  "tools": [
    {
      "type": "heroku_tool",
      "function": {
        "name": "pdf_read"
      }
    }
  ],
  "tool_choice": "auto"
}

Heroku ツール: search_web

search_web​ ツールを使用すると、LLM が Web サイトを検索できるようになります。このツールでは複数の Web ページを読み取る必要があるため、約 6 ~ 7 秒のレイテンシーが発生します。

例:

{
  "model": "claude-3-5-sonnet-latest",
  "messages": [
    {
      "role": "user",
      "content": "What are the current NFL standings?"
    }
  ],
  "tools": [
    {
      "type": "heroku_tool",
      "function": {
        "name": "search_web"
      }
    }
  ],
  "tool_choice": "auto"
}

関連カテゴリー

  • Inference Essentials

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure
  • .NET

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
  • © 2025 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States
  • heroku.com
  • Legal
  • Terms of Service
  • Privacy Information
  • Responsible Disclosure
  • Trust
  • Contact
  • Cookie Preferences
  • Your Privacy Choices