Scale to Many Tools
As an agent grows more capable, its tool catalog grows with it. Custom tools, several MCP servers, and built-in actions can easily add up to hundreds of definitions. Loading all of them into the model’s context on every turn is wasteful — it burns tokens, slows responses, and can dilute the model’s judgment about which tool actually fits. Tool search solves this by letting Amara discover the right tools on demand rather than seeing the entire catalog at once.
With tool search enabled, the SDK indexes your tools and exposes a discovery step. When the model needs a capability, it searches for relevant tools by intent, and only the matching definitions are loaded into context for that turn. The rest stay out of the way until they’re needed.
Enabling tool search
Turn on tool search in the query options once your combined catalog is large enough to crowd the context window. The SDK handles indexing and retrieval automatically.
import { query } from "@syntic/agent-sdk";
for await (const msg of query({
prompt: "Provision a staging database and seed it with sample data.",
options: {
tools: allMyTools, // dozens or hundreds of definitions
toolSearch: { enabled: true, maxResults: 8 },
},
})) {
if (msg.type === "result") console.log(msg.result);
}from syntic_agent_sdk import query
async for msg in query(
prompt="Provision a staging database and seed it with sample data.",
options={
"tools": all_my_tools,
"tool_search": {"enabled": True, "max_results": 8},
},
):
if msg.type == "result":
print(msg.result)When to use it
A small, fixed toolset is best left fully loaded — the model performs better when a handful of always-relevant tools are directly visible. Reach for tool search once the catalog is large, spread across many MCP servers, or highly varied, so that any single task touches only a fraction of it. Good tool descriptions matter even more here, because they are what discovery matches against; a clear, intent-focused description makes a tool findable, while a vague one leaves it stranded. Tune maxResults to balance recall against context cost, and combine tool search with MCP servers whose catalogs would otherwise overwhelm the window.