メインコンテンツへスキップ
ToolSet内の各ツールは、定義された入力スキーマ、出力スキーマ、コードを持つ個別の実行単位です。コンソールは、ブラウザから離れることなくツールの作成、テスト、反復を行えるフル機能の開発環境を提供します。

ツールの作成

1

ToolSetを開く

ツールを追加したいToolSetに移動します。Toolsタブが選択されていることを確認してください。
2

Add Toolをクリック

Add Toolをクリックします。以下の項目を入力するモーダルが表示されます:
  • Slug — URL用の識別子(例:post-message)。APIエンドポイントで使用されます。
  • Name — 人間が読みやすい名前(例:「Post Message」)。
  • Description — ツールの機能の説明。
3

エディタを開く

作成後、言語に適したスターターテンプレートが事前に入力されたツールエディタページにリダイレクトされます。

ツールエディタ

ツールエディタは、リサイズ可能なマルチパネルのワークスペースです:

コードエディタ

Monacoベースのエディタ(VS Codeと同じエンジン)で、TypeScriptとPythonのシンタックスハイライト、自動補完、エラーマーカーを備えています。

テストパネル

JSON入力を入力し、ライブSandboxでツールを実行します。エディタを離れることなく、出力、エラー、ログを確認できます。

設定パネル

ツールのSlug、名前、説明を編集します。コードからメタデータの自動生成をトリガーできます。

AI Copilot

コードの生成、実行出力に基づく修正の提案、テスト入力の更新が可能な組み込みのチャットアシスタントです。

キーボードショートカット

ショートカットアクション
Cmd/Ctrl + Sツールを保存
Cmd/Ctrl + Enter現在のテスト入力でツールを実行
Cmd/Ctrl + BAI Copilotサイドバーの表示切替
Cmd/Ctrl + ,設定パネルの表示切替
Cmd/Ctrl + .APIパネルの表示切替
Escapeアクティブなパネルまたはモーダルを閉じる

TypeScriptでのツール作成

TypeScriptのツールはスキーマ定義にZodを使用します。inputoutputのスキーマ、および非同期のrun関数をエクスポートします:
import { z } from "zod";

// Define the input schema
export const input = z.object({
  name: z.string().describe("The user's name"),
  greeting: z.string().optional().describe("Custom greeting prefix"),
});

// Define the output schema
export const output = z.object({
  message: z.string().describe("The greeting message"),
});

// Implement the tool logic
export async function run(data: z.infer<typeof input>) {
  const prefix = data.greeting ?? "Hello";
  return { message: `${prefix}, ${data.name}!` };
}
TypeScriptツールの主な規約:
  • "zod"からzをインポートします。Sandboxにプリインストールされています。
  • inputoutputをZodスキーマとしてエクスポートします。バリデーションとAPIのJSON Schema生成に使用されます。
  • runをエントリーポイントとしてエクスポートします。検証済みの入力を受け取り、出力スキーマに一致するオブジェクトを返す必要があります。
  • ToolSetのPackagesタブに登録されているパッケージをimportできます。
  • 環境変数はprocess.env経由でアクセスできます。

Pythonでのツール作成

Pythonのツールはスキーマ定義にPydanticを使用します。InputOutputモデル、およびrun関数を定義します:
from pydantic import BaseModel, Field

class Input(BaseModel):
    name: str = Field(description="The user's name")
    greeting: str = Field(default="Hello", description="Custom greeting prefix")

class Output(BaseModel):
    message: str = Field(description="The greeting message")

def run(input: Input) -> Output:
    return Output(message=f"{input.greeting}, {input.name}!")
Pythonツールの主な規約:
  • InputOutputをPydanticのBaseModelサブクラスとして定義します。
  • runをエントリーポイントとして定義します。検証済みの入力を受け取り、Outputモデルのインスタンスを返す必要があります。
  • ToolSetのPackagesタブに登録されているパッケージをimportできます。
  • 環境変数はos.environ経由でアクセスできます。

入力・出力スキーマ

スキーマには2つの目的があります:
  1. バリデーション — Sandboxは実行前に入力を、実行後に出力を検証します。
  2. ドキュメンテーション — スキーマはAPIおよびMCPエンドポイントを通じて公開され、AIエージェントがツールの期待する入出力を理解できるようにします。
各フィールドに.describe()(Zod)またはField(description=...)(Pydantic)を使用して、明確な説明を提供してください。これらの説明はAPIドキュメントに表示され、AIエージェントがツールの呼び出し方法を理解するために使用されます。

メタデータの自動生成

設定パネルのAuto Generateをクリックすると、以下が自動的に抽出されます:
  • Slug — コード内の関数名やスキーマ名から導出されます。
  • Name — コードから推定される人間が読みやすい名前。
  • Description — ツールの機能の要約。
この機能はAIを使用してコードを分析し、実装済みのコードからメタデータを設定する時間を節約します。

AI Copilot

AI Copilotサイドバーは、ツールのコード、言語、実行出力をコンテキストとして認識するチャットインターフェースを提供します。以下の用途に使用できます:
  • コード生成 — ツールに行わせたい処理を記述すると、Copilotが実装を作成します。
  • エラーのデバッグ — テスト実行が失敗した後、Copilotにエラーの分析と修正の提案を依頼できます。
  • コードの適用 — Copilotが生成したコードをエディタに直接反映し、自動保存できます。
  • テスト入力の更新 — Copilotがテストパネルに適用するJSONテスト入力を提案できます。
Copilotの表示切替はCmd/Ctrl + Bまたはサイドバーのボットアイコンで行います。

APIパネル

APIパネル(Cmd/Ctrl + .)を開くと、以下を確認できます:
  • このツールを実行するためのREST APIエンドポイントURL。
  • MCPエンドポイントURL(ToolSetでMCPが有効な場合)。
  • curlコマンドとSDK使用例のサンプル。
  • JSON Schema形式のツールの入力スキーマ。
エディタ内にいながら、外部アプリケーションにツールを素早く統合する際に便利です。

保存と削除

  • 保存 — Saveボタンをクリックするか、Cmd/Ctrl + Sを押します。変更はドラフト状態に保存され、公開済みバージョンには影響しません。
  • 削除 — ヘッダーのDeleteボタンをクリックします。確認ダイアログが表示されます。ツールを削除するとドラフト状態から削除されます。公開済みバージョンに含まれていた場合、それらのスナップショットは変更されません。

ベストプラクティス

  • ツールを単機能に保つ。 各ツールは1つのことを適切に行うべきです。関連するツールをグループ化するにはToolSetを使用します。
  • 分かりやすいスキーマを書く。 適切なフィールド説明は、AIエージェントがツールを正しく呼び出すのに役立ちます。
  • 公開前にテストする。 新しいバージョンを公開する前に、テストパネルでさまざまな入力による動作を確認します。
  • シークレットには環境変数を使用する。 APIキーやトークンをツールコードにハードコードしないでください。ToolSetのEnvironmentsタブに保存します。
  • 反復にCopilotを活用する。 テスト実行が失敗した後、Copilotはエラー出力にアクセスでき、的確な修正を提案できます。