Aller au contenu
OPCODIA
Méthode · transparence totale

Comment on bosse vraiment.

La plupart des studios disent "on fait de l'IA". On vous montre exactement ce que ça veut dire chez Opcodia : Anthropic SDK natif, eval framework public sur GitHub, observabilité Langfuse, structured output Zod. Aucun secret de fabrication caché.

  • Stack IAAnthropic-first
  • EvalPublic GitHub
  • ObservabilitéLangfuse
  • HébergementEU possible
Méthode · 06 phases
01Brief
02Cadrage
03Design
04Build
05Tests
06Live
Opcodia — 2026Brief → Live
Anthropic SDK · production

Voici les 50 lignes qu'on shippe en prod.

Pas de pseudo-code, pas de slides marketing. C'est le pattern réel de l'un de nos agents support client : tool-use Anthropic SDK natif, structured output Zod, observabilité Langfuse, plafond coûts via Anthropic Spend Limits.

  • SDK officiel Anthropic (@anthropic-ai/sdk), pas de wrapper tiers.
  • Adaptive thinking sur Claude Opus 4.7 — pas de budget_tokens dépréciés.
  • Structured output Zod : tout output est validé avant injection en DB. Pas d'hallucination qui passe.
  • Observabilité Langfuse : trace par requête, p95 latency, coût réel, drift detection.
agent-support.ts
500;">import Anthropic 500;">from '@anthropic-ai/sdk'
500;">import { z } 500;">from 'zod'
500;">import { Langfuse } 500;">from 'langfuse'

500;">const client = 500;">new Anthropic()
500;">const langfuse = 500;">new Langfuse({ secretKey: process.env.LANGFUSE_SECRET })

"color:#6b7280;font-style:italic;">// 1. Tool-use : agent qui exécute vraiment, ne se contente pas de répondre
500;">const tools = [
  {
    name: 'fetch_customer_orders',
    description: 'Récupère les commandes d\'un client depuis la DB Postgres.',
    input_schema: {
      500;">type: 'object',
      properties: {
        customer_id: { 500;">type: 'string', description: 'UUID du client' },
        limit: { 500;">type: 'integer', description: 'Max 50', 500;">default: 10 },
      },
      required: ['customer_id'],
    },
  },
]

// 2. Structured output via Zod sur la réponse finale
500;">const AnswerSchema = z.object({
  answer: z.string().max(500),
  citations: z.array(z.string()).max(5),
  confidence: z.number().min(0).max(1),
})

// 3. Trace Langfuse pour observabilité cost + latency + drift
500;">const trace = langfuse.trace({ name: 'support-agent', userId })

// 4. Appel Claude 4.7 avec adaptive thinking + tool-use
500;">const response = 500;">await client.messages.create({
  model: 'claude-opus-4-7',
  thinking: { 500;">type: 'adaptive' },
  max_tokens: 2048,
  tools,
  system: 'Tu réponds aux questions clients avec citations sources.',
  messages: [{ role: 'user', content: userMessage }],
})

// 5. Boucle tool-use : exécute les tools côté serveur, renvoie résultats
500;">if (response.stop_reason === 'tool_use') {
  500;">const toolResults = 500;">await executeTools(response.content, tools)
  // ... loop jusqu'à stop_reason === 'end_turn'
}

"color:#6b7280;font-style:italic;">// 6. Validation stricte avant injection
500;">const final = AnswerSchema.parse(JSON.parse(extractText(response)))

"color:#6b7280;font-style:italic;">// 7. Trace fin : cost réel, p95, drift detection
trace.update({
  output: final,
  metadata: { costEur: computeCost(response.usage), model: 'claude-opus-4-7' },
})
Extrait simplifié — code complet sur github.com/opcodia/ai-evals
Huit piliers · méthode complète

Ce qu'on fait — et ce qu'on refuse.

Huit piliers documentés publiquement. Vous pouvez les opposer à n'importe quel prestataire qui prétend faire pareil — on les a tous en clair, eux pas.

01 · Cadrage avant code

On commence par l'éval, pas par le prompt.

Avant la première ligne de code, on construit 50 à 100 cas de test représentatifs (golden set). Ces cas définissent ce que "bon" veut dire avant qu'on touche au modèle. Si on n'arrive pas à formuler le critère de succès, c'est qu'on n'a pas compris le problème — on revient en arrière, on ne code pas.

Preuve

Cadrage de 5 jours sur tout projet IA — non négociable.

02 · Anthropic SDK natif

Pas de LangChain. Pas de no-code qui casse.

Anthropic SDK officiel (@anthropic-ai/sdk pour TypeScript, anthropic pour Python), Claude Opus 4.7 par défaut avec adaptive thinking. Tool-use natif, structured output via Zod. Notre site opcodia.fr consomme l'API Anthropic pour quelques fonctions internes — on dogfood en prod.

Preuve

Snippet code public ci-dessous. Pas d'abstraction qui se casse à l'échelle.

03 · Structured output strict

Zero hallucination en sortie de fonction.

Toute sortie IA qui touche votre DB, votre admin, ou un utilisateur final est validée par un schéma Zod strict avant injection. Pas d'invention de catégorie. Pas d'inversion de format de date. Pas de fuite de PII. On retry avec correction si le modèle dérive, on log la dérive, on alerte si elle se répète.

Preuve

Schemas Zod typés stricts par feature. Logs de dérives accessibles client.

04 · Eval framework public

Le seul studio FR qui publie ses tests.

Notre repo opcodia/ai-evals est public sur GitHub : eval harness Anthropic SDK + cas tests anonymisés sur agent RAG type. Vous pouvez l'auditer, vous pouvez l'utiliser, vous pouvez l'extender. C'est le seul vrai signal qu'un studio ship vraiment des agents en production — pas juste des démos Streamlit.

Preuve

github.com/opcodia/ai-evals — MIT, contributions welcome.

05 · Observabilité dès jour 1

Langfuse + dashboards coûts API.

Chaque agent en production est instrumenté Langfuse (open-source, self-host EU possible) : traces, costs, latency p50/p95/p99, drift detection sur les outputs. Vous avez un dashboard accessible avec le coût réel par feature, par utilisateur, par mois. Pas de facture surprise Anthropic ou OpenAI.

Preuve

Plafonds Anthropic Spend Limits + OpenAI usage caps configurés au lancement.

06 · Hébergement EU possible

RGPD-friendly si vous voulez.

Trois options selon votre contrainte : (a) Claude via AWS Bedrock région EU, (b) OpenAI via Azure France Central, (c) self-host Ollama (Llama, Mistral) sur votre infra. On vous présente les trois trade-offs (coût × qualité × latence) avant de trancher. Pas de magie no-code, pas de transit US par défaut.

Preuve

Audit RGPD documenté à la livraison + DPA fournis sur demande.

07 · Code à vous, repo à votre nom

Zero lock-in, exit-cost = 0.

Repo Git à votre nom dès le jour 1. Pas de plateforme propriétaire à abonner. Pas de "si vous partez vous perdez tout". Vous récupérez le code, vous récupérez la doc, vous pouvez le faire reprendre par n'importe quel dev qui parle Next.js + Anthropic SDK. C'est notre clause de qualité — si vous voulez partir, vous partez avec tout.

Preuve

Repo GitHub privé créé en votre nom, transfert au paiement final.

08 · Claude Code dans notre livraison

On utilise l'IA pour livrer plus vite — pas pour livrer moins bien.

Mehdi utilise Claude Code (officiel Anthropic) pour ~60 % du code généré, 100 % review et orchestré humain. Résultat : on livre 2× plus vite qu'une agence traditionnelle à qualité supérieure. On ne baisse pas les prix grâce à ça — on prend plus de projets, ou on creuse plus profond. Vous payez la qualité, pas le nombre d'heures.

Preuve

~60 % code IA-assisté · 100 % review humain · 0 PR mergée sans relecture.

Eval framework · open-source MIT

Le seul studio français qui publie ses tests.

Notre repo opcodia/ai-evals est public sur GitHub. Eval harness Anthropic SDK + cas tests anonymisés sur agent RAG documentaire. Tout est auditable — par vous, par vos devs, par votre DSI. Personne d'autre en France ne le fait en mai 2026.

Contenu du repo
  • EvalRunner avec concurrency + cost tracking
  • 20 cas tests anonymisés (RAG, structured output, safety)
  • Reporters CLI / JSON / Markdown pour publication
  • CI GitHub Actions qui fail si score < 0,85
  • Docs ARCHITECTURE.md + ADDING-CASES.md
Prêt à parler agent IA ?

30 min pour cadrer votre cas concret.

On regarde votre besoin, on benchmark Claude vs GPT vs Mistral sur 10 exemples réels, on revient avec une estimation chiffrée sous 48 h. Cadrage 30 min gratuit, sans engagement.