Tool
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 の呼び出しとして実行します |
builtin |
組み込みの Grant | builtin__ask_user__ask |
Subako 内。フォームの表示や Session の名前付けを行います |
client |
Session の Client | client__web__highlight_row |
アプリ内。Client tool として実行します |
<name> は Grant の名前で、バージョンの中で決めます。英小文字、数字、- からなる 32 文字以内の名前で、同じ種類の Grant の中で一意にします。parent は予約済みで使えません。
Policy
MCP サーバー、Sandbox、Function の Tool は、Policy (許可、承認を求める、拒否) に従って実行されます。Policy は Grant ごとに設定し、Tool 名を完全一致で指定して Tool ごとに上書きできます。拒否された Tool は、モデルにはまったく提示されません。承認を求める Tool は 承認 を待ちます。Skill、組み込みの Tool、Client tool には Policy がなく、付与すること自体が許可の判断になります。
Credential
バージョンが Credential を持つことはありません。バージョンが指定するのは Tool の接続先 (MCP サーバーの URL、Function の Origin) で、そこで提示する Credential は Session の Vault が持っています。Credential は Subako が送信時に呼び出しに付けるので、モデルも、それを実行するエンジンも、Function の Module も Credential を目にしません。
このしくみにより、公開した 1 つのバージョンで多くの顧客に対応できます。Agent に何をさせてよいかはバージョンが決め、誰の Credential でそれを行うかは Session が決めます。
Sandbox と Function
Function は、自分で書いたコードを呼び出しごとに新しい Sandbox で実行します。ネットワークは Grant で許可しない限り使えず、Credential は Subako が付けます。Sandbox は Session 専用の Linux マシンで、モデルが書いたコマンドを何でも実行します。基本は Function を使い、Linux が必要なプログラムを動かすときだけ Sandbox を付与してください。詳しくは Sandbox を参照してください。