アクセシビリティメニュー コンテンツにスキップ
day2

Custom Tool Groups – Launch Agents in Minutes, Not Days

2 分読

カスタムツールグループ – 数日ではなく数分でエージェントを起動

昨日ご紹介したツールグループにより、MCPサーバーをECソーシャルなど特定ドメイン向けにスコープ設定可能となりました。本日さらに一歩進んだ機能「カスタムツールグループ」を発表します。

必要なツールだけを厳選したMCPサーバーインスタンスを自由に作成できます。過剰な機能も不足もありません。精密なカスタマーサポートエージェントから外科手術レベルの精度を持つリサーチアシスタントまで、カスタムツールグループなら新設定ウィザードで数分で構成可能です。

課題:万能ツールは存在しない

ツールグループは、ソーシャルブラウザといった事前定義されたクラスターを選択することでコンテキスト汚染を解決しました。しかし、ユースケースが既存のカテゴリーに完全に当てはまらない場合はどうでしょうか?

価格監視エージェントを構築していると仮定しましょう。必要なのは:

  • Amazon商品検索
  • eBay商品データ
  • Googleショッピングインサイト

しかし、ECOMMERCEグループに含まれるウォルマート、ターゲット、その他15のECデータセットは不要です。これらを読み込むとトークンを浪費し、モデルの精度を低下させます。

あるいは、B2Bリサーチエージェントを想像してみてください。必要なのは以下のデータのみです:

  • LinkedIn個人プロフィール
  • LinkedIn企業データ
  • 検索エンジン(見込み客発見用)

Amazonやウォルマート、その他のECツールは不要です。それらは単なるノイズに過ぎません。

解決策:ツールの細分化選択

MCPサーバーを拡張し、URLパラメータによるツールごとのカスタマイズをサポートしました。エージェントに必要な機能を正確に選択できるようになりました。

仕組み

内部では、認証レイヤーが接続URLからtoolsパラメータを抽出し、動的にツールマニフェストを構築します:

function extract_url_params(request){
    const url = request.url || '';
    const params = {};

    // ツール個別のパラメータを抽出
    const tools_match = url.match(/tools=([a-zA-Z0-9_,]+)/);
    if (tools_match)
    {
        const tools_str = tools_match[1];
        params.tools = tools_str.split(',')
            .map(t=>t.trim())
            .filter(Boolean);
    }
    return params;
}

?tools=web_data_amazon_product,search_engine を指定すると、サーバーは次の2つのツールのみを含む許可ツールセットを構築します:

function build_allowed_tools(groups = [], tools = []){
    const allowed = new Set();
    for (let groupId of groups)
    {
        const group = Object.values(GROUPS).find(g=>g.id==groupId);
        if (group)
        {
            for (let tool of group.tools)
                allowed.add(tool);
        }
    }
    for (let tool of tools)
        allowed.add(tool);
    return allowed;
}

最後に、サーバーに登録された各ツールはクライアントのアクセス権限を確認します:

const add_tool = tool=>{
    server.addTool({
        ...tool,
        canAccess: auth=>{
            // Proモードでは全ツールへのアクセスを許可
            if (auth?.proMode===true)
                return true;
            // 許可済みセットにツールが含まれるか確認
            if (auth?.allowedTools && auth.allowedTools.size)
                return auth.allowedTools.has(tool.name);
            // デフォルトで pro_mode_tools リストを参照
            return pro_mode_tools.includes(tool.name);
        },
    });
};

結果? MCPクライアントには明示的に許可したツールのみが表示されます。邪魔になる要素も、無駄なトークン消費もありません。

設定ウィザード:ゼロコード設定

実例:価格監視エージェント

価格監視エージェントを段階的に構築しましょう。

ステップ1: ツールの選択

必要なもの:

  • web_data_amazon_product – Amazonの現在の価格を取得
  • web_data_ebay_product – eBay出品価格との比較
  • web_data_google_shopping – Googleショッピングのトレンドを確認
  • search_engine – 商品URLを検索(基本ツールに含まれる)

ステップ2: ウィザードで設定

ウィザードを開き、APIトークンを入力し、カスタムツールパラメータを使用します:

?tools=web_data_amazon_product,web_data_ebay_product,web_data_google_shopping

ウィザードが設定を検証し、接続URLを生成します。

ステップ3: エージェントを接続

URLをMCPクライアント設定(例:ClaudeDesktopのclaude_desktop_config.json)に貼り付けます:

{
  "mcpServers": {
    "価格監視": {
      "command": "npx",
      "args": [
        "-y",
        "@brightdata/mcp",
      ],
      "env": {
        "BRIGHTDATA_API_TOKEN": "YOUR_TOKEN",
        "TOOLS":"web_data_amazon_product,web_data_ebay_product,web_data_google_shopping"
      }
    }
  }
}

ステップ4: 起動

エージェントのコンテキストには現在、以下の4つのツールが設定されています:

  • search_engine
  • web_data_amazon_product
  • web_data_ebay_product
  • web_data_google_shopping

システムプロンプトを60以上のツールが埋める代わりに、4つだけになりました。LLMの注意力はレーザーのように集中しています。

グループとカスタムツールの組み合わせ

ここが強力なポイントです:ツールグループとカスタムツールを組み合わせて使用できます。

基本グループを作成し、個別ツールを追加します:

&groups=social&tools=web_data_amazon_product

これにより以下が実現します:

  • すべてのソーシャルメディアツール(LinkedIn、TikTok、Instagramなど)
  • +Amazon商品データ

使用例?インフルエンサーマーケティング代理店が以下を行う場合:

  1. TikTokでクリエイターを発見
  2. 製品言及を分析
  3. Amazon商品レビューとの照合

あなたは外科手術のような精度でハイブリッドエージェントを構築しました。

パフォーマンスへの影響:ツールグループよりもさらに軽量化

昨日、ツールグループが60以上のツールを全て読み込む場合と比較して、システムプロンプトトークンを約60%削減することを示しました。

カスタムツールはこの効果をさらに拡大します:

設定 読み込まれたツール数 推定トークン削減率
フルスイート 60以上のツール ベースライン (0%)
ツールグループ(例:ソーシャル 約25ツール 約60%
カスタムツール(例:4ツール) 4ツール 約85%

なぜこれが重要なのか?

  1. 低遅延 – 初期ハンドシェイクが高速
  2. 精度向上 – モデルが関連性のないツールからパラメータを誤って生成しない
  3. コスト削減 – リクエストごとの入力トークン数が減少

ツール選択を超えたトークン最適化

カスタムツールはトークン削減戦略の一部に過ぎません。出力側も最適化しています:

ARIAスナップショットフィルタリング

スクレイピングブラウザツール使用時、エージェントはDOMスナップショットを受信します。しかし完全なスナップショットは数千トークンに及ぶ場合があります。

インタラクティブな要素(ボタン、リンク、フォームフィールド)のみを表示するようフィルタリングします:

export class Aria_snapshot_filter {
    static INTERACTIVE_ROLES = new Set([
        'button', 'link', 'textbox', 'searchbox', 'combobox', 'checkbox',
        'radio', 'switch', 'slider', 'tab', 'menuitem', 'option'
    ]);

また、長い名前は切り詰めて要素をコンパクトにフォーマットします:

static format_compact(elements){
    const lines = [];
    for (const el of elements)
    {
        const parts = [`[${el.ref}]`, el.role];
        if (el.name && el.name.length>0)
        {
            const name = el.name.length>60 ?
                el.name.substring(0, 57)+'...' : el.name;
            parts.push(`"${name}"`);
        }
        // コンパクトなフォーマット
    }
    return lines.join('n');
}

結果?22,000トークンあったブラウザのスナップショットが3000トークンに。エージェントはボタンクリックやフォーム入力に必要な情報を全て取得しつつ、無駄を省いた状態に。

ドメインベースのブラウザセッションキャッシュ

また、不要な再起動を避けるため、ドメインごとにブラウザセッションをキャッシュします:

export class Browser_session {
    constructor({cdp_endpoint}){
        this.cdp_endpoint = cdp_endpoint;
        this._domainSessions = new Map();  // ドメインごとにセッションをキャッシュ
        this._currentDomain = 'default';
    }

    async _getDomainSession(domain, {log}={}){
        if (!this._domainSessions.has(domain))
        {
            this._domainSessions.set(domain, {
                browser: null,
                page: null,
                browserClosed: true,
                requests: new Map(),
            });
        }
        return this._domainSessions.get(domain);
    }

エージェントがAmazonを自動化する場合、ブラウザは後続のAmazon操作のために開いたままになります。これにより、アクションごとの実行時間が2~3秒短縮され、繰り返される初期化ログによるトークン使用量が削減されます。

お試しください

カスタムツールは現在、Web MCPサーバーで利用可能です。

ウィザードをご利用ください

MCPコントロールパネルにアクセスし、設定ウィザードをご利用ください。APIトークンを入力し、ツールを選択すると、すぐに使える接続URLを取得できます。

無料利用枠

基本ツール(Web UnlockerとSearch Engine)で月間5,000リクエストを無料で利用できます。カスタムエージェントのプロトタイピングに最適です。


明日:数ヶ月かけて開発してきた新機能をリリースします。エージェントワークフローの概念を変える革新的な機能です。ご期待ください。

開始の準備はできていますか?
Web MCPサーバーを探索し、強力なAIエージェントを構築し始めましょう。
ドキュメントを読む リポジトリを表示