Skip Navigation
Show nav
Heroku Dev Center Dev Center
  • Get Started
  • ドキュメント
  • Changelog
  • Search
Heroku Dev Center Dev Center
  • 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 in or Sign up
View categories

Categories

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

Managed Inference and Agents API /v1/agents/heroku

日本語 — Switch to English

Table of Contents [expand]

  • リクエストボディパラメータ
  • オブジェクトの tools 配列
  • オブジェクトの messages 配列
  • リクエストヘッダー
  • 応答形式
  • リクエストの例
  • 応答の例

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

最終更新日 2025年09月04日(木)

/v1/agents/heroku​ エンドポイントを使用すると、メッセージに基づいてツールを自律的に呼び出すことができる大規模言語モデル (LLM) を搭載したエージェントシステムとやり取りできます。/chat/completions​ とは異なり、単一のモデル応答を生成する v1/agents/heroku​ エンドポイントは、自動ツール実行とマルチステップワークフローをサポートします。

リクエストボディパラメータ

以下のパラメータを使用して、エージェントの動作とエージェントが使用できるツールを管理します。

必須パラメータ

フィールド 種類 説明 例
model​ 文字列​ 推論に使用されるモデル (通常は INFERENCE_MODEL_ID​ 環境設定の値)
messages 配列​ エージェントが応答と次のアクションを決定するために使用するメッセージ​の配列 [{"role": "user", "content": "Check my database schema."}]​

任意のパラメータ

フィールド 種類 説明 デフォルト 例
max_tokens_per_inference_request​ 整数​ モデルが各基礎推論リクエスト中に生成できるトークンの最大数で、これを超えると停止します (/v1/agents/heroku​ への 1 回の呼び出しで複数の基礎推論リクエストを含めることができます)。
最大値: Haiku モデルの場合は 4096、Sonnet モデルの場合は 8192
変動​ 1024​
stop​ 配列​ 応答にいずれかの文字列が含まれている場合に、モデルがそれ以上トークンを生成しないようにする文字列のリスト (例: ​["foo"]​ はモデルが文字列 "foo"​ を生成した場合にのみ出力の生成を停止します) null​ ["foo"]​
temperature​ フロート​ 応答のランダム性を制御します。値が 0​ に近いほど高確率のトークンが優先され、より焦点が絞られた応答になります。また、値が 1.0​ に近いほど生成されたトークンごとにより広範囲の選択肢からサンプリングされるため、より多様な応答が促進されます。
*範囲: *​ 0.0​ ~ 1.0​
1.0​ 0.2​
tools​ 配列​ エージェントが使用できるツール​のリスト null​ サンプルリクエスト​のツールフィールドを参照
top_p​ フロート​ 次のトークンを生成するときに考慮するトークンの割合を累積確率で指定します
*範囲: *0​ ~ 1.0​
0.999​ 0.95​

オブジェクトの tools 配列

配列内の各ツールを使用すると、エージェントがユーザーに代わってアクションを呼び出すことができます。Heroku は One-off dyno を介してツール呼び出しを自動的に実行します。現在、/v1/agents/heroku​ エンドポイントは以下の 2 種類のツールをサポートしています。

  • heroku_tool: Heroku Managed Inference and Agents がネイティブにサポートするファーストパーティツール
  • MCP ツール: Heroku にデプロイするカスタム MCP​ ツール。モデルに呼び出されると Heroku によって自動的に実行されます。独自のカスタム MCP ツールを Heroku にデプロイする方法の詳細は、Heroku MCP ツール​に関する記事を参照してください。
フィールド 種類 説明 例
type​ 列挙<文字列>​ ツールの種類
*次のいずれか: *heroku_tool​、mcp​
"heroku_tool"​
name​ 文字列​ ツールの名前 (利用可能なツールについては、Heroku ツール​に関する記事を参照してください) "code_exec_ruby"
description​ 文字列​ (任意) このツールをいつ使用するかをモデルに通知するヒントテキスト "Runs SQL query on a Heroku database"​
runtime_params オブジェクト​ Heroku ツール​と mcp​ ツールの自動実行を制御する構成 (「ランタイムパラメータ)​」を参照)

ランタイムパラメータ

v1/agents/heroku​ エンドポイントは、実行時に指定された mcp​ または heroku_tool​ ツールに特定の設定を渡します。モデルは設定を変更できません。

フィールド 種類 説明 デフォルト 例
target_app_name​ 文字列​ (必須)​ ツールを実行する Heroku アプリの名前 "my-heroku-app"​
dyno_size​ 文字列​ ツールを実行するときに使用する dyno サイズ "standard-1x"​ "standard-1x"​
ttl_seconds​ 整数​ dyno が実行できる最大秒数
*最大: *​ 120​
120​ 10​
max_calls​ 整数​ エージェントループ中にこのツールを呼び出すことができる最大回数 3​ 1​
tool_params​ オブジェクト​ ツールの追加パラメータ (cmd​、db_attachment​ など) (ツール固有のドキュメント)​を参照) (変動)​ {}​
  • mcp​ タイプのツールでは ttl_seconds​、max_calls​、dyno_size​ を任意で指定できます。他のパラメータはサポートされていません。
  • heroku_tool​ タイプのツールでは、ツール自体に応じて特定のパラメータが必要になるか、または許可されます。詳細は、ツール固有のドキュメント​を参照してください。

オブジェクトの messages 配列

messages​ オブジェクトはメッセージオブジェクトの配列です。

各メッセージはメッセージのスキーマを決定する role​ フィールドを指定する必要があります。現在サポートされているタイプは、user​、assistant​、system​、tool​ です。

最新のメッセージで assistant​ ロールを使用している場合、モデルはその最新メッセージの内容から回答を続行します。

role=user メッセージ

user​ メッセージは、モデルにクエリを送信し、応答を促す主な方法です。

フィールド 種類 説明 必須かどうか 例
role​ 文字列​ メッセージのロール
常に​ "user"​
はい "user"​
content​ 文字列​ ユーザーメッセージの内容 はい "What is the weather?"​

role=assistant メッセージ

通常、モデルは assistant​ メッセージのみ生成します。ただし、部分的に完了した assistant​ 応答を作成または事前入力して、モデルが次のターンに生成するコンテンツに影響を与えることができます。

フィールド 種類 説明 必須かどうか 例
role​ 文字列​ メッセージのロール
常に​ "assistant"​
はい "assistant"​
content​ 文字列​ アシスタントメッセージの内容 はい。ただし tool_calls​ が指定されている "Here is the information"​
refusal​ 文字列​または null​ (現在リクエストでは無視されます) アシスタントによるメッセージ拒否 いいえ "I cannot answer that"​
tool_calls​ 配列​ ツール呼び出し​要求オブジェクトの配列 いいえ [{"id": "tool_call_12345", "type": "function", "function": {"name": "my_cool_tool", "arguments": {"some_input": 123}}}]​

ツール呼び出しオブジェクト

特定のツールを実行するモデルのリクエストを表します。

フィールド 種類 説明 例
id​ 文字列​ ツール呼び出しの一意の ID "tooluse_abc123"​
type​ 文字列​ 通話の種類
*常に: *​ "function"
"function"​
function オブジェクト​ 関数​呼び出しの詳細 ツール呼び出しの例​を参照
​ツール呼び出しの例
"tool_calls": [
  {
    "id": "tooluse_abc123",
    "type": "function",
    "function": {
      "name": "dyno_run_command",
      "arguments": "{}"
    }
  }
]

関数オブジェクト

フィールド 種類 説明 例
name​ 文字列​ 呼び出すツールの名前 "dyno_run_command"​
arguments 文字列​ ツール引数の JSON エンコードされた文字列 "{}"​

role=system メッセージ

system​ メッセージは、モデルの応答をガイドするためにモデルに与えられる特別なプロンプトです。

フィールド 種類 説明 必須かどうか 例
role​ 文字列​ メッセージのロール
常に​ "system"​
はい "system"​
content​ 文字列​ システムメッセージの内容 はい "You are a helpful assistant. You favor brevity and avoid hedging. You readily admit when you don't know an answer."​

role=tool メッセージ

指定されたツールの出力を表す tool​ メッセージオブジェクト。

フィールド 種類 説明 必須かどうか 例
role​ 文字列​ メッセージのロール
常に​ "tool"​
はい "tool"​
content​ 文字列​ ツール呼び出しの出力 はい "Rainy and 84º"​
tool_call_id​ 文字列​ このメッセージが応答するツール呼び出し はい "toolu_02F9GXvY5MZAq8Lw3PTNQyJK"​

リクエストヘッダー

ヘッダー 種類 説明
Authorization​ 文字列​ Heroku Inference API キー​を含むベアラートークン

すべての /v1/agents/heroku​ リクエストには以下のヘッダーを含める必要があります。

-H "Authorization: Bearer $INFERENCE_KEY"

応答形式

エージェント応答は、Server-Sent Events (SSE) を介してストリームで返されます。各 event: message​ には完了を表す JSON ペイロードが含まれます。最後のイベントはデータ [DONE]​ を使用した event: done​ です。

完了オブジェクト

フィールド 種類 説明 例
id​ 文字列​ エージェントセッションの一意の ID "chatcmpl-abc123"​
オブジェクト​ 列挙<文字列>​ 完了の種類
*次のいずれか: *chat.completion​、tool.completion​
"tool.completion"​
created​ 整数 チャンクが作成されたときの UNIX タイムスタンプ 1746546550​
model​ 文字列​ メッセージを生成するために使用されたモデル ID "claude-4-sonnet"​
system_fingerprint​ 文字列​ 出力を生成するシステムの指紋 "heroku-inf-abc123"​
choices​ オブジェクトの配列​ 単一の選択オブジェクト​を含む長さ 1 の配列 応答の例​を参照
usage​ オブジェクト​ トークンの使用量​の統計。ツールの完了の場合は空 (トークンは消費されない) {"prompt_tokens":15,"completion_tokens":13,"total_tokens":28}​

選択オブジェクト

フィールド 種類 説明 例
index​ 整数 選択のインデックス
*常に: *0​
0​
message​ オブジェクト​ メッセージ​の内容 (応答メッセージは常に assistant​ または tool)​ の役割) 応答の例​を参照
finish_reason 列挙<文字列>​ モデルが停止した理由
*次のいずれか: *stop​、length​、tool_calls​、""​
"tool_calls"​

使用量オブジェクト

フィールド 種類 説明 例
prompt_tokens​ 整数 プロンプトで使用されるトークン 397​
completion_tokens 整数 応答に使用されるトークン 65​
total_tokens​ 整数 プロンプトトークンと完了トークンの合計 462​

SSE 経由でストリーミングされる各 event: message​ は、chat.completion​ または tool.completion​ のいずれか 1 つの完了オブジェクトを含みます。最後のメッセージは data: [DONE]​ を使用した event: done​ です。

リクエストの例

 curl --location $INFERENCE_URL/v1/agents/heroku \
  --header 'Content-Type: application/json' \
  --header "Authorization: Bearer $INFERENCE_KEY" \
  --data @- <<EOF
{
  "model": "$INFERENCE_MODEL_ID",
  "messages": [
    {
      "role": "user",
      "content": "What is the current time and date?"
    }
  ],
  "tools": [
    {
      "type": "heroku_tool",
      "name": "dyno_run_command",
      "runtime_params": {
        "target_app_name": "$APP_NAME",
        "tool_params": {
          "cmd": "echo hello && date",
          "description": "Runs `echo hello && date` on one-off dyno.",
          "parameters": {
            "type": "object",
            "properties": {},
            "required": []
          }
        }
      }
    }
  ]
}
EOF

応答の例

event:message
data:{"id":"chatcmpl-18441121a827937e07e20","object":"chat.completion","created":1748541400,"model":"claude-4-sonnet","system_fingerprint":"heroku-inf-1sefyj8","choices":[{"index":0,"message":{"role":"assistant","content":"I'll run the command to get the current time and date for you.","refusal":null,"tool_calls":[{"id":"tooluse_mo8vfAMhRqm3ypFIoCTmng","type":"function","function":{"name":"dyno_run_command","arguments":"{}"}}]},"finish_reason":"tool_calls"}],"usage":{"prompt_tokens":397,"completion_tokens":55,"total_tokens":452}}

event:message
data:{"id":"chatcmpl-18441121a827937e07e20","object":"tool.completion","created":1748541402,"system_fingerprint":"heroku-inf-1sefyj8","choices":[{"index":0,"message":{"role":"tool","content":"Tool 'dyno_run_command' returned result: hello\nThu May 29 05:56:42 PM UTC 2025","refusal":null,"tool_call_id":"tooluse_mo8vfAMhRqm3ypFIoCTmng","name":"dyno_run_command"},"finish_reason":""}],"usage":{}}

event:message
data:{"id":"chatcmpl-18441121a827937e07e20","object":"chat.completion","created":1748541407,"model":"claude-4-sonnet","system_fingerprint":"heroku-inf-1sefyj8","choices":[{"index":0,"message":{"role":"assistant","content":"Based on the command output, the current time and date is:\n\n**Thursday, May 29, 2025 at 5:56:42 PM UTC**","refusal":null},"finish_reason":"stop"}],"usage":{"prompt_tokens":500,"completion_tokens":40,"total_tokens":540}}

event:done
data:[DONE]

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
  • © 2026 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