> ## Documentation Index
> Fetch the complete documentation index at: https://phaseo.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ツール呼び出しの安全性と検証

> ツール引数を検証し、実行を保護して、モデルによる危険な操作を防ぎます。

モデルが生成したツール引数は、信頼できない入力として扱います。

## 安全チェックリスト

* ツールのスキーマは必要最小限にし、明確に定義します。
* 解析した引数を検証してからツールを実行します。
* ツール名は許可リストで管理し、未知の名前は拒否します。
* 外部呼び出しにはタイムアウトと再試行を設定します。
* 呼び出しID、ツール名、検証エラーをログに記録します。

## リクエスト検証の例（TypeScript + Zod）

```typescript theme={null}
import { z } from "zod";

const WeatherArgs = z.object({
  city: z.string().min(1),
});

function executeToolCall(name: string, rawArgs: string) {
  if (name !== "get_weather") {
    throw new Error(`Unsupported tool: ${name}`);
  }

  const parsed = WeatherArgs.parse(JSON.parse(rawArgs));
  return getWeather(parsed.city);
}
```

## 失敗時の対応

検証に失敗した場合:

1. ツールを実行しません。
2. 次のモデルターンに、制御されたエラーペイロードを返します。
3. 引数を修正して再試行するようモデルに依頼します。

## ストリーミングに関する注意

ストリーミングのツール呼び出しはモデルとプロバイダーの対応状況に依存します。解析、検証、実行の前に、引数の差分をすべて蓄積してください。[ストリーミング](./streaming.mdx)を参照してください。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.