v1.10.0 — Groq built-in tools
Groq server-side built-in tools (issue #69). Additive only — no breaking changes.
Added
LLMRequest.builtInTools— request server-side tools (web_search,visit_website,browser_automation,code_interpreter,wolfram_alpha). Ignored by models that don't advertise support.BuiltInTool/BuiltInToolType/BuiltInToolResulttypes;ModelCapabilities.supportsBuiltInTools;modelSupportsBuiltInTools(model, provider, tool?)accessor.groq/compound+groq/compound-minicatalog entries (all five built-in tools),RESEARCH-only tagged;MODELS.GROQ_COMPOUND/MODELS.GROQ_COMPOUND_MINI.RESEARCHModelRecommendationUseCase(weights + recommendation list +metadata.useCasepassthrough; not inferred from request shape).- Capability-aware routing —
openai/gpt-oss-120bbuiltInToolsrequests steer to Groq (the capable host of the Cerebras/Groq collision); plain requests keep prior defaults. - Request fork + gating — compound uses
compound_custom.tools.enabled_tools; gpt-oss usestools:[{type}]withweb_search→browser_search. Unsupported(model, tool)pairs throwConfigurationError. - Result parsing —
message.executed_tools[]→metadata.builtInToolResults(Array<{ type, name?, arguments?, results: [{ title, url, content, score }] }>);metadata.reasoningwhen present. Iterate all executions (the model may run several searches per call).
Notes
- Built-in tool surcharges are billed by the provider and are not token-tracked in
TokenUsage. - Streaming sends
builtInToolsbut emits content only — structured results require non-streaminggenerateResponse.
Verified end-to-end against live Groq via LLMProviders.fromEnv → generateResponse.