ツール
エージェントで利用可能なツールを設定します。
Claude Managed Agentsは、Claudeがセッション内で自律的に使用できる一連の組み込みツールを提供します。エージェント設定でツールを指定することで、どのツールを利用可能にするかを制御できます。
Claude Managed Agentsは、カスタムのユーザー定義ツールもサポートしています。アプリケーションがこれらのツールを別途実行し、結果をClaudeに返すと、Claudeはその結果を使用してタスクを続行します。MCPサーバーからエージェントにツールを提供するには、代わりにMCPコネクターを使用してください。
利用可能なツール
エージェントツールセットには、以下のツールが含まれています。エージェント設定にツールセットを含めると、すべてのツールがデフォルトで有効になります。
| ツール | 名前 | 説明 |
|---|---|---|
| Bash | bash | シェルセッションでbashコマンドを実行する |
| Read | read | サンドボックスファイルシステムからファイルを読み取る |
| Write | write | サンドボックスファイルシステムにファイルを書き込む |
| Edit | edit | ファイル内で文字列置換を実行する |
| Glob | glob | globパターンを使用した高速なファイルパターンマッチング |
| Grep | grep | 正規表現パターンを使用したテキスト検索 |
| Web fetch | web_fetch | URLからコンテンツを取得する |
| Web search | web_search | Webで情報を検索する |
ツールの出力が100,000文字(約25,000トークン)を超えると、自動的にサンドボックス内のファイルに書き込まれます。モデルはファイルパスを含む切り詰められたプレビューを受け取り、そこから完全な内容を読み取ることができます。
ツールセットの設定
エージェントを作成する際に、agent_toolset_20260401を使用してツールセット全体を有効にします。configs配列を使用して、特定のツールを無効にしたり、その設定を上書きしたりします。各エントリはnameによって識別され、その値には利用可能なツールの「名前」列の値を指定します。エントリには、同じ値を持つオプションのtypeフィールドも指定できます。
各設定エントリではpermission_policyも設定できます。このポリシーは、ツールの呼び出しを確認なしで実行するか、確認を必要とするか、サーバーによって個別に評価するかを制御します。利用可能なポリシーの種類については、権限ポリシーを参照してください。
次の例では、ツールセットを有効にし、web_fetchを無効にしています。
ant apply agent.md---
name: Coding Assistant
model: claude-opus-5-5
tools:
- type: agent_toolset_20260401
configs:
- name: web_fetch
enabled: false
---特定のツールを無効にする
ツールを無効にするには、そのconfigsエントリでenabled: falseを設定します。
{
"type": "agent_toolset_20260401",
"configs": [
{ "name": "web_fetch", "enabled": false },
{ "name": "web_search", "enabled": false }
]
}特定のツールのみを有効にする
default_configオブジェクトはセット内のすべてのツールのベースラインを設定し、ツールごとのconfigsエントリがそれを上書きします。すべてをオフにした状態から始めて必要なものだけを有効にするには、default_config.enabledをfalseに設定します。
{
"type": "agent_toolset_20260401",
"default_config": { "enabled": false },
"configs": [
{ "name": "bash", "enabled": true },
{ "name": "read", "enabled": true },
{ "name": "write", "enabled": true }
]
}Web検索とWebフェッチの制限
web_searchおよびweb_fetchエントリでは、ドメインリスト、取得するコンテンツの上限、検索ロケーションも指定できます。Web検索とWebフェッチのドメインを制限するを参照してください。
SDKにおける設定エントリの型
Python、TypeScript、Go、Java、C#、Ruby、PHPの各SDKでは、各configsエントリがツールごとに型付けされています。この型は、組み込みツールごとに1つのメンバーを持つユニオン型で、typeによって判別されます。
Go、Java、C#、PHPでは、プレーンな辞書やハッシュではなく、型付きの値からエントリを構築します。これらのSDKでは、configsの要素型はユニオン型そのものであるため、各エントリはツールごとのメンバー型から構築してください。
サーバーがnameから推論するため、エントリを構築する際にtypeを省略できます。レスポンスには常にtypeが含まれます。この型付けによって、エントリがシリアライズされるJSONが変わることはありません。エントリでname、enabled、permission_policyのみを設定したリクエストは、typeの有無にかかわらず有効です。
カスタムツール
カスタムツールは、Messages APIにおけるユーザー定義のクライアントツールに相当します。利用可能な操作とその戻り値を指定すると、Claudeがいつどのようにそれらを呼び出すかを判断します。
Claudeはカスタムツールを自ら実行しません。Claudeは構造化されたリクエストを出力し、コードがその操作を実行して、結果をセッションに返します。
次の例では、組み込みツールセットと1つのカスタムツールget_weatherを持つエージェントを作成しています。
ant apply agent.md---
name: Weather Agent
model: claude-opus-5-5
tools:
- type: agent_toolset_20260401
- type: custom
name: get_weather
description: Get current weather for a location
input_schema:
type: object
properties:
location:
type: string
description: City name
required:
- location
---エージェントはセッション中にカスタムツールを呼び出します。呼び出しを受け取って結果を返す方法については、セッションイベントストリームを参照してください。
セルフホスト型サンドボックスで実行されるセッションでは、環境ワーカーがサンドボックスからカスタムツールを提供できます。これには、ネットワーク内のMCPサーバーをラップするツールを含めることができます。
カスタムツール定義のベストプラクティス
- 非常に詳細な説明を提供してください。 これはツールのパフォーマンスにおいて圧倒的に重要な要素です。ツールについてClaudeに提供できるコンテキストが多いほど、Claudeはいつどのようにツールを使用すべきかをより適切に判断できます。各ツールの説明は3〜4文を目安とし、ツールが複雑な場合はそれ以上にしてください。説明には以下を含める必要があります。
- ツールが何をするか
- いつ使用すべきか、またいつ使用すべきでないか
- 各パラメータの意味と、それがツールの動作にどう影響するか
- 重要な注意事項や制限
- 関連する操作をより少ないツールに統合してください。
create_pr、review_pr、merge_prなどのアクションを、actionパラメータを持つ単一のツールにまとめます。より少なく、より高機能なツールにすることで選択の曖昧さが減り、Claudeがツール群を扱いやすくなります。 - ツール名に意味のある名前空間を使用してください。 ツールが複数のサービスやリソースにまたがる場合は、名前の先頭にリソースを付けてください(たとえば
db_queryやstorage_read)。これにより、ライブラリが拡大してもツールの選択が明確になります。 - ツールのレスポンスは有用性の高い情報のみを返すように設計してください。 不透明な内部参照ではなく、意味のある安定した識別子(例:スラッグやUUID)を返します。Claudeが次のステップを判断するのに必要なフィールドのみを含めてください。肥大化したレスポンスはコンテキストを浪費し、Claudeが重要な情報を抽出しにくくなります。
次のステップ
Webツールがアクセスできるサイトを制御し、取得するコンテンツに上限を設け、検索結果をローカライズします。
MCPサーバーをエージェントに接続して、外部ツールやデータソースにアクセスします。
エージェントツールとMCPツールがいつ実行されるかを制御します。
イベントを送信し、レスポンスをストリーミングし、実行中のセッションを中断またはリダイレクトします。
Was this page helpful?