feat: multi-provider LLM support (v4.0)#2
Merged
machinelearnear merged 10 commits intomainfrom Mar 11, 2026
Merged
Conversation
… in domain.toml Replace provider-specific model identifiers (claude-opus-4-6, claude-sonnet-4-6) with logical role names (capable, fast) across all three domain manifests. Roles will be resolved at deployment time via provider config (Task 9.2). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…rofiles Introduce provider configuration system that maps logical roles (capable, fast, extract, local) to real provider/model strings via TOML profiles. A single env var SIMULADORES_PROVIDER_PROFILE selects the active profile. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implement build_instructor_client() that creates instructor-patched clients for DIRECT (Vertex AI), OPENROUTER, and LITELLM gateways based on ProviderConfig. Adds openai>=1.50 dependency for OpenAI-compatible gateway support. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ution Agents now resolve models via AGENT_ROLES + ProviderConfig when available, falling back to AGENT_MODELS for backward compatibility. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Strips Anthropic-specific cache_control headers for non-Anthropic providers. Passes through for DIRECT, OpenRouter+Anthropic, and LiteLLM gateways. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…files - LiteLLM proxy added to docker-compose.yml with health check - LiteLLM configs: cloud (Anthropic), hospital (vLLM), dev (Ollama) - vLLM hospital docker-compose with guided decoding - local-ollama provider profile for zero-API-key dev - SIMULADORES_PROVIDER_PROFILE env var wired into docker services Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
MemoryConfig dataclass added to ProviderConfig for specifying local LLM and embedder backends. Hospital-airgapped profile includes Ollama config for fully local memory extraction. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Eval suite tests against both anthropic-vertex and openrouter providers. PROVIDERS.md documents the compatibility matrix and known limitations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update README, ARCHITECTURE, VISION, DATA_FLOW, and CLAUDE.md to reflect the multi-provider LLM support: logical roles, provider profiles, air-gapped deployments, and updated project structure. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
SIMULADORES_PROVIDER_PROFILE) — agents use logical roles (capable,fast) resolved to provider-specific models at deployment timeKey files
core/provider_config.py,config/providers/*.tomlllm/client_factory.pyprompt/cache_adapter.pyagents/base.py,agents/{santos,medina,lamponne,ravenna}.pydomains/{dce,idp,has}/domain.tomlmemory/mem0_backend.py(provider-aware)infra/litellm/,infra/vllm/,docker-compose.ymltests/evals/promptfooconfig.yamlREADME.md,docs/{ARCHITECTURE,VISION,DATA_FLOW,PROVIDERS}.md,CLAUDE.mdCommits (10)
refactor(domains): replace hardcoded model strings with logical roles in domain.tomlfeat(core): add ProviderConfig loader for multi-provider deployment profilesfeat(llm): add provider-aware client factory with gateway switchfix(llm): update docstring and add OpenRouter header assertionsfeat(agents): add logical role mapping and provider-aware model resolutionfeat(prompt): add cache control adapter for cross-provider compatibilityfeat(infra): add LiteLLM proxy, vLLM, Ollama configs and provider profilesfeat(memory): add provider-aware mem0 config for air-gapped deploymentsfeat(evals): add multi-provider promptfoo eval suite and PROVIDERS.mddocs: update documentation to reflect v4.0 multi-provider architectureTest plan
🤖 Generated with Claude Code