LMbox
Vos données restent chez vous. Demander une démo
← Retour à la Box IA Intégration · Claude Code

Claude Code, sans la facture mensuelle qui explose

Branchez Claude Code sur votre LMbox. À chaque requête, un routeur cascade décide s'il faut un modèle local (gratuit, sur votre LAN) ou Claude Sonnet via Bedrock EU (facturé, frontier). En pratique : 70 à 80 % du trafic ne sort jamais de votre infrastructure.

Le problème

Claude Code seul, en équipe, ça coûte cher et ça fuit

≈ 400 €/dev/mois

Une équipe de 10 développeurs en mode agentic intensif consomme facilement 4 000 €/mois en API Anthropic directe. Et la facture grimpe avec l'usage.

Le code part chez Anthropic

Chaque prompt agentic envoie le contexte du repo en clair vers une API US. Pas un problème pour un projet open-source, rédhibitoire pour un cabinet, un OIV ou une banque.

Pas de plan B

API down, quota épuisé, sanctions, panne réseau : Claude Code s'arrête. Aucun fallback local, aucune continuité de service hors ligne.

Trois patterns

Comment Claude Code se branche sur la Box

Chaque pattern est livré dans la Box. Vous activez ce qui correspond à votre maturité et à votre niveau de souveraineté requis.

Pattern A

Proxy local pur

Claude Code parle directement à un modèle qui tourne sur votre Box. Aucune sortie internet. Bon pour les questions courtes et le code review simple, limité pour les sessions agentic longues.

ANTHROPIC_BASE_URL pointe sur la Box. La Box répond avec Mistral Large 2 ou Codestral via l'endpoint /v1/messages compatible Anthropic.

Pour qui
Cabinets juridiques · OIV · santé · air-gap
★ Recommandé
Pattern B

Cascade routée (recommandé)

Le routeur LMbox lit chaque requête, score sur 6 dimensions (tours, tokens, outils, mots-clés…) et décide : fast (Mistral local), medium (Qwen Coder local), ou frontier (Claude Sonnet via Bedrock EU). Le modèle est swappé sur le wire, le client ne voit qu'une seule URL.

Configurable dans router/config.yaml. En-tête X-LMbox-Force-Tier pour overrider par session. Audit log JSONL exhaustif sur /audit, exporté vers Loki.

Pour qui
ETI tech · industrie · partenaires de Mistral/Anthropic
Pattern C

MCP RAG sur connecteurs

Claude Code se connecte au serveur lmbox-mcp en plus du LLM. Le serveur expose vos connecteurs (SharePoint, Confluence, Drive, Jira) comme outils MCP. Claude Code peut alors lire vos docs internes pendant la session — sans jamais embarquer le contenu côté Anthropic.

Streamable HTTP transport (spec MCP 2025-11-25). Auth déléguée à Authentik via OIDC. Les recherches RAG s'exécutent dans la Box, seul le résultat ranké est passé au modèle.

Pour qui
Toute équipe avec une base documentaire interne
Le calcul

Une équipe de 10 dev, 3 scénarios

Hypothèses : 10 développeurs en mode agentic intensif, 8 h/jour ouvrées, ratio observé en cascade 60/30/10 (fast/medium/frontier). Tarifs Bedrock EU au 6 mai 2026.

Scénario API Anthropic / Bedrock Coût LMbox Total mensuel Souveraineté
Claude Code direct (sans LMbox) ≈ 4 000 € ≈ 4 000 € · soit 48 000 €/an Aucune (US)
Cascade LMbox (75 % local) ≈ 800 € Box amortie sur 36 mois ≈ 1 100 € · soit 13 200 €/an Hybride contrôlée
100 % local (Mistral Large 2) 0 € Box amortie sur 36 mois ≈ 300 € · soit 3 600 €/an Totale (EU / Mistral)
Économie 3 ans, équipe de 10
≈ 105 000 €

Le ROI dépend de la taille de l'équipe et de l'intensité d'usage. Au-delà de 5 développeurs en mode agentic, la cascade LMbox s'amortit en moins d'un an, sans compter le bénéfice souveraineté.

Décision par requête

Le routeur scoring, par ce qu'il regarde

Heuristiques transparentes, dans router/config.yaml. Chaque décision est tracée dans l'audit log avec le score et les raisons. Si le scoring vous paraît mal calibré, vous éditez le YAML et relancez.

Nombre de tours
× 1, max 10
Une session multi-tour est plus susceptible de dériver, on monte d'un cran.
Volume de tokens
+ 5 si ≥ 8 k · + 10 si ≥ 32 k
Au-delà de 32 k tokens, seul le frontier garde la cohérence.
Présence d'outils
+ 5
Tool calls = workflow agentic = besoin de planification fiable.
Mots-clés agentic
× 4, max 12
« plan », « refactor », « design », « architect », « debug stack »…
Mots-clés complexes
× 3, max 6
« concurrent », « race condition », « migration », « algorithm »…
Override par header
X-LMbox-Force-Tier
Le client peut forcer fast/medium/frontier en cas de doute (utile pour debug ou benchmarks).

Seuils par défaut : score < 7 → fast · 7-14 → medium · ≥ 15 → frontier.

Trois tiers, trois modèles

Ce que chaque tier traite, concrètement

fast
Mistral Small 3 (local)
≈ 80 ms / token
Exemples
  • Reformule cette docstring
  • Quelle est la signature de cette fonction ?
  • Génère un test simple pour ce helper
medium
Qwen 2.5 Coder 32B (local)
≈ 30 tokens/s
Exemples
  • Code review sur ces 3 fichiers
  • Refactore ce module avec injection de deps
  • Pourquoi ce test flake ?
frontier
Claude Sonnet 4.5 (Bedrock EU)
API Bedrock EU · ≈ 200 ms TTFT
Exemples
  • Plan agentic 20 tours sur cette feature
  • Refactor cross-fichiers avec migration
  • Stack trace + traceback Python complexe
Quickstart

5 minutes, 3 commandes

1. Pointer Claude Code sur la Box

Une variable d'environnement, un certificat interne. Aucune modification du binaire Claude Code.

export ANTHROPIC_BASE_URL=https://lmbox.local
export ANTHROPIC_API_KEY=$(lmbox vault get claude_code_key)
claude  # tourne contre la Box

2. Vérifier la décision sans appeler le modèle

Avant de payer un appel Bedrock, on dry-run la décision. Le routeur retourne le tier choisi, le score et les raisons.

$ lmbox router test "Refactor le module auth en injection de deps"
{
  "tier": "medium",
  "score": 9,
  "reasons": ["agentic_keyword:refactor", "turns:1"],
  "would_route_to": "ollama/qwen2.5-coder:32b"
}

3. Auditer l'usage par tier

Au bout d'une semaine d'usage, l'équipe sécurité voit qui a routé où, et combien on a dépensé.

$ lmbox router stats 7
TIER          REQ   ERR  TIN/M  TOUT/M  P50ms  P95ms   COST€
fast        2 134     2   1.41    0.32     78    142    0.00
medium        612     0   3.20    0.95   1430   2810    0.00
frontier      147     1   2.07    0.61    340    980   34.32
TOTAL       2 893                                       34.32
Window: last 7 days · ratio_local = 95 %

Et si je veux forcer un tier ?

Trois manières : variable d'environnement temporaire, en-tête HTTP par requête, ou règle YAML par projet. Pratique pour benchmarker, débugger un comportement, ou imposer le frontier sur une feature critique.

# Forcer pour cette session
ANTHROPIC_BASE_URL=https://lmbox.local \
  curl -H "X-LMbox-Force-Tier: frontier" ...

# Ou par projet, dans .LMbox.yml :
force_tier: medium     # jamais Bedrock, jamais fast
Quickstart · MCP

Brancher Claude Code sur les connecteurs LMbox

Pattern C — votre IDE peut chercher dans SharePoint, Confluence, Jira, GitLab et 5 autres connecteurs sans jamais sortir le contenu de la Box. Trois étapes.

1. Déclarer le serveur MCP dans Claude Code

Ajoute un bloc dans ~/.claude/claude.json. Pour la prod, la clé sort du coffre age-chiffré : lmbox vault get LMbox_mcp_key.

{
  "mcpServers": {
    "LMbox": {
      "type": "http",
      "url":  "https://lmbox.local/mcp",
      "headers": {
        "x-lmbox-mcp-key": "${LMBOX_MCP_KEY}"
      }
    }
  }
}

2. Vérifier les outils côté Box

Le serveur expose 4 outils. Vérifier qu'ils sont servis et que les sources sont bien indexées avant d'ouvrir une session.

$ lmbox mcp tools
• search        args=(query, source, top_k)
• read_doc      args=(doc_id, source)
• list_sources  args=()
• find_similar  args=(text, source, top_k)

$ lmbox mcp sources
✓ sharepoint    SharePoint    docs=12 480  last=2026-05-06T08:00
✓ confluence    Confluence    docs= 6 230  last=2026-05-06T08:00
✓ gitlab        GitLab        docs=24 100  last=2026-05-06T08:00
✓ jira          Jira          docs= 3 770  last=2026-05-06T08:00

3. Demander à Claude Code d'utiliser un outil

Au démarrage de la session, les 4 outils LMbox apparaissent dans le contexte du modèle. Les prompts qui les déclenchent exécutent une recherche RAG locale, jamais Anthropic.

$ claude
> Utilise LMbox.search dans Confluence pour retrouver
> tout ce qui concerne le flux SSO Azure AD.

[tool] search confluence "flux SSO Azure AD" → 8 résultats
[model] Le flux SSO est documenté dans 3 espaces :
        Architecture (page 142), Sécurité (page 88)…

Seul le top-K classé va au modèle

La recherche s'exécute dans la Box. Seuls les snippets classés (par défaut top-8, configurable dans mcp/config.yaml) sont injectés dans le contexte LLM. Le contenu brut des pages Confluence ou SharePoint ne quitte jamais l'appliance — vous pouvez même désactiver complètement read_doc dans la config si vous voulez interdire le rapatriement de documents entiers.

Questions de RSSI et de lead dev

Ce que les équipes nous demandent avant de signer

+ Le code envoyé en frontier passe-t-il par les US ?
Non si vous utilisez Bedrock région eu-west-3 (Paris) ou eu-central-1 (Francfort). Anthropic publie ses conditions de traitement Bedrock : pas de rétention, pas d'entraînement, juridiction AWS Europe. Vous pouvez aussi désactiver complètement le tier frontier (cascade plafonnée à medium).
+ Latence locale vs Bedrock, c'est jouable ?
Mistral Small 3 sur Apple Silicon M3 Ultra : ≈ 80 ms/token, soit comparable à Claude Haiku. Qwen 2.5 Coder 32B sur la même Box : ≈ 30 tokens/s, OK pour code review interactif. Bedrock Sonnet : 200 ms TTFT + ≈ 60 tokens/s. Le ressenti utilisateur est très proche, sauf sur les tâches agentic > 30 tours où le frontier reste plus fiable.
+ Mistral Large 2 fait-il vraiment aussi bien que Sonnet sur du code ?
Pour 70 à 80 % des prompts d'une session Claude Code typique : oui, mesuré sur nos benchmarks internes (HumanEval, SWE-bench Lite, prompts d'équipes design partner). Pour les sessions agentic 20+ tours avec planification croisée et stack traces complexes : non, Sonnet reste devant. C'est exactement pourquoi le routeur escalade ces requêtes-là.
+ Comment je coupe Bedrock en cas d'incident ?
Une seule commande : lmbox router config --frontier=disabled. Toutes les requêtes redescendent sur medium ou fast. L'équipe garde Claude Code, sans appel sortant. Réversible sans redémarrer la Box.
+ Et en mode air-gap total ?
Le tier frontier est désactivé d'office. Claude Code tourne sur Pattern A pur (proxy vers Mistral Large 2 + Codestral). 100 % de la session reste dans la Box. Vous gardez Claude Code, vous perdez ≈ 15 % de qualité sur les sessions agentic les plus dures.

On installe la Box, on connecte Claude Code

POC 30 jours sur site avec une équipe de 5 à 15 développeurs. On mesure ensemble le ratio local/frontier réel sur vos repos. Si ça ne tient pas la promesse, on remballe.