ROIpad ← Back to Search
github.com › repository issue

ADR-005: Multi-Model, Multi-Provider, and Tool Strategy

gsd-build/gsd-2
Status: Open
Opened: Mar 27, 2026
Comments: 8
# ADR-005: Multi-Model, Multi-Provider, and Tool Strategy **Status:** Draft **Date:** 2026-03-27 **Deciders:** Jeremy McSpadden **Related:** ADR-004 (capability-aware model routing), ADR-003 (pipeline simplification), [PR #2755](https://github.com/gsd-build/gsd-2/pull/2755) ## Context PR #2755 lands capability-aware model routing (ADR-004), extending the router from a one-dimensional complexity-tier system to a two-dimensional system that scores models across 7 capability dimensions. GSD can now intelligently pick the best model for a task from a heterogeneous pool. But model selection is only one piece of the multi-model puzzle. The system now faces a set of structural gaps that become more pressing as users configure diverse provider pools: ### 1. Tool compatibility is assumed, not verified Every registered tool is sent to every model regardless of provider. The `pi-ai` layer normalizes tool schemas per provider (Anthropic `tool_use`, OpenAI `function`, Google `functionDeclarations`, Bedrock `toolSpec`, Mistral `FunctionTool`), but there is no mechanism to express that: - A model may not support tool calling at all (older/smaller models, some local models) - A provider may not support certain schema features (Google Gemini doesn't support `patternProperties`; `sanitizeSchemaForGoogle()` patches this silently) - Some tools produce image content in results that not all models can consume - Tool call ID formats differ across providers (Anthropic: 64-char alphanumeric; O...
TypeScript
View on GitHub ↗
Related Content