---
title: Tool
description: Agent の Tool の出どころと命名。
---

Agent が呼び出せる Tool は、どれもそのバージョンの **Grant** か、Session の Client が提供します。提供元ごとに接頭辞が付くので、モデルも、ログを読むコードも、提供元を区別できます。Tool は `<kind>__<name>__<tool>` という名前でモデルに渡されます。

| 種類 | 付与元 | 例 | 実行場所 |
| --- | --- | --- | --- |
| `mcp` | MCP サーバーの Grant | `mcp__orders__lookup` | MCP サーバー上。その URL に対応する Session の Vault の Credential を使います |
| `skill` | Skill の Grant | `skill__refund-policy__read` | Subako 内。Skill のファイルを読みます |
| `sandbox` | Sandbox の Grant | `sandbox__build__exec` | Session 専用の Linux の Sandbox 内 |
| `fn` | Function package の Grant | `fn__anydoc__convert_to_markdown` | Subako 内。[Function](/ja/functions) の呼び出しとして実行します |
| `builtin` | 組み込みの Grant | `builtin__ask_user__ask` | Subako 内。フォームの表示や Session の名前付けを行います |
| `client` | Session の Client | `client__web__highlight_row` | アプリ内。[Client tool](/ja/build/client-tools) として実行します |

`<name>` は Grant の名前で、バージョンの中で決めます。英小文字、数字、`-` からなる 32 文字以内の名前で、同じ種類の Grant の中で一意にします。`parent` は予約済みで使えません。

## Policy

MCP サーバー、Sandbox、Function の Tool は、Policy (**許可**、**承認を求める**、**拒否**) に従って実行されます。Policy は Grant ごとに設定し、Tool 名を完全一致で指定して Tool ごとに上書きできます。拒否された Tool は、モデルにはまったく提示されません。承認を求める Tool は [承認](/ja/build/approvals-and-forms) を待ちます。Skill、組み込みの Tool、Client tool には Policy がなく、付与すること自体が許可の判断になります。

## Credential

バージョンが Credential を持つことはありません。バージョンが指定するのは Tool の接続先 (MCP サーバーの URL、Function の Origin) で、そこで提示する Credential は Session の [Vault](/ja/console/vaults) が持っています。Credential は Subako が送信時に呼び出しに付けるので、モデルも、それを実行するエンジンも、Function の Module も Credential を目にしません。

このしくみにより、公開した 1 つのバージョンで多くの顧客に対応できます。Agent に何をさせてよいかはバージョンが決め、誰の Credential でそれを行うかは Session が決めます。

## Sandbox と Function

Function は、自分で書いたコードを呼び出しごとに新しい Sandbox で実行します。ネットワークは Grant で許可しない限り使えず、Credential は Subako が付けます。Sandbox は Session 専用の Linux マシンで、モデルが書いたコマンドを何でも実行します。基本は Function を使い、Linux が必要なプログラムを動かすときだけ Sandbox を付与してください。詳しくは [Sandbox](/ja/sandboxes#まず-function-を検討する) を参照してください。
