filterActiveTools()
filterActiveTools is an experimental feature.filterActiveTools filters a tool set to only the string tool names listed in activeTools.
If activeTools is undefined, it returns the original tool set.
If tools is undefined, it returns undefined.
filterActiveTools is useful for limiting which tools are sent to a model in a particular step.
import { experimental_filterActiveTools as filterActiveTools, tool } from 'ai';import { z } from 'zod';
const tools = { weather: tool({ description: 'Get the weather for a city', inputSchema: z.object({ city: z.string() }), }), time: tool({ description: 'Get the current time for a city', inputSchema: z.object({ city: z.string() }), }),};
const activeTools = ['weather'] as const;
const filteredTools = filterActiveTools({ tools, activeTools,});Import
import { experimental_filterActiveTools as filterActiveTools } from "ai"API Signature
Parameters
tools:
ToolSet | undefined
activeTools:
ActiveTools<TOOLS>
Returns
The filtered tool set, or undefined when tools is undefined.
When activeTools is provided as a literal array such as ["weather"] as const,
TypeScript narrows the return type to only that subset of tools.
Types
ActiveTools
type ActiveTools<TOOLS extends ToolSet> = | ReadonlyArray<keyof TOOLS & string> | undefined;ActiveTools only accepts string keys from the tool set because tool names are strings at runtime.