ADR-200: MiniMax Provider Integration
Status: Accepted Date: 2026-02-15 Author: Hal Casteel Track: H.3.9
Context
CODITECT currently supports 4 LLM providers:
- Claude (Anthropic) — primary, via
anthropicSDK - Codex (OpenAI) — via
openaiSDK - Gemini (Google) — via
google-generativeaiSDK - Kimi (Moonshot AI) — via process monitoring only
MiniMax (a Chinese AI company) now offers an Anthropic Messages API-compatible endpoint, making integration straightforward — the existing anthropic Python/Node SDK works with only a base URL change.
Decision
Add MiniMax as the 5th LLM provider in coditect-core's multi-provider architecture.
Provider Details
| Property | Value |
|---|---|
| Provider Name | MiniMax |
| API Base URL | https://api.minimax.io/anthropic |
| API Compatibility | Anthropic Messages API (drop-in) |
| Authentication | API key via MINIMAX_API_KEY env var |
| SDK | Standard anthropic Python/Node SDK |
| Documentation | https://platform.minimax.io/docs/api-reference/text-anthropic-api |
Available Models
| Model | Context Window | Speed | Use Case |
|---|---|---|---|
| MiniMax-M2.5 | 204,800 tokens | ~60 tps | Flagship |
| MiniMax-M2.5-highspeed | 204,800 tokens | ~100 tps | Fast flagship |
| MiniMax-M2.1 | 204,800 tokens | ~60 tps | Balanced |
| MiniMax-M2.1-highspeed | 204,800 tokens | ~100 tps | Fast balanced |
| MiniMax-M2 | 204,800 tokens | Variable | Cost-effective |
Supported Features
| Feature | Supported |
|---|---|
| Text messages | Yes |
| Tool use (function calling) | Yes |
| Thinking/extended thinking | Yes |
| Streaming | Yes |
| System prompts | Yes |
| Temperature (0.0-1.0] | Yes |
| top_p | Yes |
| Image/document inputs | No |
| top_k, stop_sequences | Ignored |
Integration Points
MiniMax touches these coditect-core files:
| File | Change |
|---|---|
config/model-pricing.json | Add 5 MiniMax models with pricing |
config/judge-model-routing.json | Add minimax to supported_providers, add fallback entries |
config/llm-tools.json | Add minimax CLI tool entry |
config/llm-watchers.json | Add minimax watcher config |
scripts/moe_classifier/core/multi_model_client.py | Add MINIMAX enum, MiniMaxClient class, model mappings |
scripts/moe_classifier/core/provider_detector.py | Add MINIMAX provider with config and tier mappings |
minimax/README.md | Per-LLM directory (ADR-122 pattern) |
Implementation Pattern
MiniMax uses the Anthropic SDK with a custom base URL. The client implementation follows the same pattern as DeepSeekClient (OpenAI-compatible with custom base URL), but uses the anthropic SDK instead:
class MiniMaxClient(BaseProviderClient):
"""MiniMax API client (Anthropic Messages API-compatible)."""
BASE_URL = "https://api.minimax.io/anthropic"
async def complete(self, request: CompletionRequest) -> CompletionResponse:
import anthropic
client = anthropic.Anthropic(
api_key=self.api_key,
base_url=self.BASE_URL
)
response = client.messages.create(
model=request.model,
max_tokens=request.max_tokens,
temperature=request.temperature,
system=request.system_prompt or "",
messages=[{"role": "user", "content": request.prompt}]
)
# ... standard response mapping
Claude Code Integration
MiniMax can also be used as the backing provider for Claude Code itself via environment variables:
export ANTHROPIC_BASE_URL=https://api.minimax.io/anthropic
export ANTHROPIC_API_KEY=<minimax-api-key>
claude --model MiniMax-M2.5
Or via .claude/settings.local.json (gitignored):
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.minimax.io/anthropic",
"ANTHROPIC_API_KEY": "<minimax-api-key>"
}
}
Note: This replaces Anthropic entirely for that Claude Code session — it does not run both simultaneously. For simultaneous multi-provider use, use the MoE system.
Provider Tier Classification
| Provider | Tier | Notes |
|---|---|---|
| Anthropic | flagship | Primary provider |
| OpenAI | flagship | Strong reasoning (o3) |
| flagship | 1M context, multimodal | |
| MiniMax | cost_effective | Anthropic-compatible, 204K context, high throughput |
| DeepSeek | cost_effective | Thinking mode, budget option |
| Alibaba | specialized | Multilingual, domain expertise |
| Meta | open_source | Self-hostable via Together/Groq |
Important Limitations
- No image/document inputs — text-only; cannot be used for vision tasks
- Multi-turn tool use — full assistant response (all content blocks) must be appended to conversation history to maintain reasoning chain continuity
- Temperature range — exclusive of 0.0: use (0.0, 1.0], not [0.0, 1.0]
- Ignored parameters —
top_k,stop_sequences,service_tier,mcp_serverssilently ignored
Consequences
Positive
- 5th provider increases MoE diversity — more perspectives for Constitutional Court panels
- Anthropic SDK compatible — minimal new code; reuses existing
anthropicSDK dependency - High throughput — highspeed variants at ~100 tps useful for batch classification
- 204K context — matches Anthropic's context window size
- Cost-effective tier — provides budget option with Anthropic API compatibility
Negative
- No vision — cannot serve as judge for image-related reviews
- Chinese provider — may have data residency considerations for some customers
- Temperature quirk — 0.0 not allowed, requires guard in client code
Neutral
- Follows established ADR-122 (Unified LLM Component Architecture) and ADR-073 (MoE Provider Flexibility) patterns
- No new SDK dependency — uses existing
anthropicpackage
Related ADRs
| ADR | Relationship |
|---|---|
| ADR-073 | MoE Provider Flexibility — framework this extends |
| ADR-122 | Unified LLM Component Architecture — per-LLM directory pattern |
| ADR-194 | Codi-Watcher v3.0 — session monitoring (if MiniMax gets a CLI) |