---
title: "Développer des agents Python avec routage, reprise et suivi"
description: "Duale AI propose un runtime Python‑first pour agents IA, avec SDK, politique de routage, gestion des délais et reprises, résultats typés et identifiant de tâche durable."
lang: fr
lastUpdated: 2026-06-07
url: https://duale.ai/fr/solutions/developers
---

## AI-generated summary

Cette page présente le runtime Duale AI dédié aux développeurs Python, expliquant comment le SDK Python permet de soumettre des tâches agentiques bornées avec politique de routage, délais et résultats typés, de gérer reprises, événements de tâche et contexte traçable, tout en précisant les limites actuelles du produit.

- Le SDK Python permet de soumettre une tâche bornée, préciser un routage via RoutingPolicy, imposer un délai, recevoir un identifiant de tâche et un résultat typé.
- Le runtime gère les reprises, les délais et les événements de tâche (soumission, résultat, timeout, erreurs) via un flux d'événements que l'application peut consommer.
- Les politiques de routage choisissent le modèle supporté selon la précision cible, les garde‑fous et la préférence de vitesse, sans que le code appelant contacte les fournisseurs.
- Le runtime offre des primitives – reprises, I/O stable, contrôles de projet et contexte traçable – pour garantir une interface durable entre l'agent et les fournisseurs.
- La page indique que le runtime ne couvre aujourd’hui que le chemin de soumission du SDK Python (action bornée, routage, délai, résultat typé).

Summaries were generated by AI. Generative AI is experimental.

---

<Hero
  eyebrow="Pour les leads plateforme"
  title={
    <>
      Construisez des agents Python que votre plateforme peut <AccentText>opérer</AccentText>
    </>
  }
  subtitle="Duale AI donne aux équipes Python un runtime durable pour le travail agentique borné : contrats stables, politique de routage, reprises, identifiants de tâche et contexte de revue propre au projet sans lier chaque projet à une pile fournisseur."
  primaryCta={{ label: "Demander l'accès Python", dialog: "contact" }}
  secondaryCta={{ label: "Voir les tarifs", href: "https://duale.ai/fr/product/pricing.md" }}
/>

<Section
  title="Supporté aujourd'hui"
  subtitle="La promesse développeur est volontairement étroite : Python d'abord, primitives runtime d'abord, chemin production d'abord."
>
  <CardGrid columns={3}>
    <Card title="SDK Python" icon="code">
      Utilisez Python pour soumettre un travail agentique borné, attacher une politique de routage, définir des délais,
      demander des résultats typés et conserver un identifiant de tâche pour le suivi.
    </Card>
    <Card title="Routage fournisseur" icon="mixer-horizontal">
      Traitez les modèles comme une capacité remplaçable. Routez par entrées de politique comme qualité, vitesse,
      préférence de garde-fous et priorité, au lieu de coder chaque appel en dur.
    </Card>
    <Card title="Evénements de tâche" icon="commit">
      Soumission, résultat terminal, timeouts, erreurs, reprises et décisions de routage peuvent devenir des événements
      produit quand l'intégration les capture.
    </Card>
  </CardGrid>
</Section>

<Band>
  <Section title="Forme Python" subtitle="Un vrai chemin de code, pas une grille marketing multi-framework.">

```python

from datetime import datetime, timedelta, timezone

from pydantic import BaseModel

from duale import DualeConfig, DualeSDK, RoutingPolicy, ask

class SupportDecision(BaseModel):
    next_action: str
    reason: str
    risk: str

async def main() -> None:
    deadline = datetime.now(timezone.utc) + timedelta(minutes=30)

    async with DualeSDK(config=DualeConfig(), auto_start=False) as sdk:
        response = await ask(
            action="Analyse ce dossier support et retourne la prochaine action sûre.",
            res=SupportDecision,
            routing=RoutingPolicy(
                target_accuracy=0.8,
                target_guardrails=0.7,
                speed_preference=0.4,
            ),
            deadline=deadline,
            sdk=sdk,
        )
        decision = await response.model()
        print(response.task_id, decision.next_action)

asyncio.run(main())
```

  </Section>
</Band>

<Section
  title="Couche de production réutilisable"
  subtitle="L'objectif est de donner à chaque projet agentique les mêmes primitives runtime, dès que le chemin production commence."
>
  <CardGrid columns={3}>
    <Card title="Reprises et délais" icon="exclamation-triangle">
      Le travail agentique peut échouer, durer trop longtemps ou nécessiter une route plus sûre. Le runtime rend ces
      comportements explicites au lieu de les cacher dans de la glue applicative.
    </Card>
    <Card title="Entrée et sortie stables" icon="file-text">
      Définissez une fois la frontière du travail. Modèles, politique fournisseur, rétention et exigences de gouvernance
      peuvent changer sans réécrire l'algorithme métier.
    </Card>
    <Card title="Contrôles projet" icon="eye">
      Gardez assez de contexte de tâche pour décider si un flux doit continuer, reprendre, attendre ou passer dans une
      revue propre au projet. Le produit ne rend pas cette politique de revue implicite.
    </Card>
    <Card title="Choix des fournisseurs" icon="layers">
      Passez entre fournisseurs de modèles supportés quand les coûts, la latence, la qualité ou les exigences changent.
      Le contrat agent reste l'interface durable.
    </Card>
    <Card title="Contexte de tâche traçable" icon="reader">
      Gardez assez de contexte pour comprendre pourquoi une tâche a réussi, échoué, attendu ou repris quand
      l'intégration enregistre ces signaux.
    </Card>
    <Card title="Revue sécurité" icon="lock-closed" href="https://duale.ai/fr/product/security.md">
      Les équipes sécurité peuvent revoir hébergement, sous-traitants, accès, mouvements de données et éléments de revue
      disponibles sur demande avant qu'un projet s'étende.
    </Card>
  </CardGrid>
</Section>

<Section title="Bon périmètre aujourd'hui" subtitle="Des frontières claires valent mieux que des promesses larges.">
  <CardGrid columns={2}>
    <Card title="Utilisez Duale AI pour" icon="check">
      Des agents Python qui ont besoin de politique de routage, reprise, résultats typés, contexte de tâche et d'un
      chemin du prototype au logiciel opéré.
    </Card>
    <Card title="Frontière actuelle" icon="exclamation-triangle">
      Développement natif dans d'autres langages, constructeurs visuels d'agents, places de marché d'assistants ou kits
      de démarrage par framework.
    </Card>
  </CardGrid>
</Section>

## Questions développeurs

### Comment démarrer avec le SDK 

Demandez l'accès Python via le formulaire de contact. Installez le paquet `duale`, définissez `DUALE_TENANT_ID` et
    `DUALE_AUTH_TOKEN`, instanciez `DualeSDK(config=DualeConfig())`, puis soumettez une première tâche bornée avec
    `ask(action=..., res=..., routing=RoutingPolicy(...), deadline=..., sdk=sdk)`. Le premier agent tourne sur l'espace
    d'évaluation avant tout déploiement production.

### Comment le routage fournisseur fonctionne-t-il depuis le SDK 

Votre code soumet une `RoutingPolicy` avec précision cible, garde-fous et préférence de vitesse. Le runtime note les
  modèles supportés selon la politique et en sélectionne un par tâche ; votre code agent n'appelle jamais un fournisseur
  de modèle directement. La découverte cross-fournisseurs et l'ordre de bascule restent au plan de route, pas livrés
  aujourd'hui.

### Que doit conserver mon application après la soumission 

Persistez `response.task_id` : c'est le corrélateur durable pour tout ce que votre application journalise sur cette
  tâche. Le résultat terminal revient via `await response.model()`, validé contre le modèle de réponse passé à `ask`. En
  cas d'échec, `DualeError.problem_details` porte l'enveloppe RFC 9457 : `error_code`, `detail`, `retryable`,
  `retry_after_seconds` et `error_category`. Les deltas de contenu et événements d'outil arrivent en direct sur
  `response.stream()` pendant l'exécution ; si votre produit a besoin d'un historique consultable de ces événements,
  stockez-les côté application à mesure qu'ils arrivent — le SDK n'expose pas de point de rejeu aujourd'hui.

### Comment le SDK gère-t-il reprises et échecs 

Le transport HTTP du SDK reconnecte les flux d'événements interrompus avec backoff exponentiel et jitter ; le runtime
  gère les reprises au niveau tâche dans une politique bornée. Votre code n'implémente ni l'une ni l'autre couche. Les
  tâches en échec retournent un résultat terminal avec catégorie d'erreur et drapeau `retryable` ; l'identifiant de
  tâche relie la décision de routage et l'historique d'événements à cette tentative.

### Quand Duale AI n'est-il pas encore le bon choix 

Duale AI est un runtime, pas un framework d'agents, pas une passerelle de modèles, pas un fournisseur de modèles
    et pas une plateforme d'agents managée. Ce n'est pas le bon choix si vous cherchez un chemin de développement non
    Python, un constructeur no-code d'agents, un constructeur visuel d'agents, une place de marché d'assistants
    préconstruits, un kit de démarrage propre à un framework ou un assistant employé clé en main. La surface supportée
    aujourd'hui est le chemin de soumission de tâches du SDK Python : action bornée, politique de routage, délai,
    résultat typé et identifiant de tâche.

<Cta
  title="Apportez un agent Python et testez le chemin production."
  primaryCta={{ label: "Demander l'accès Python", dialog: "contact" }}
  secondaryCta={{ label: "Voir la posture sécurité", href: "https://duale.ai/fr/product/security.md" }}
/>

<JsonLd
  data={{
    "@type": "SoftwareApplication",
    name: "Duale AI",
    applicationCategory: "DeveloperApplication",
    inLanguage: "fr-FR",
    audience: {
      "@type": "BusinessAudience",
      audienceType: "Ingénieurs plateforme et développeurs Python",
    },
    offers: {
      "@type": "Offer",
      priceCurrency: "EUR",
      availability: "https://schema.org/PreOrder",
    },
    description:
      "Runtime Python-first pour agents IA durables avec politique de routage, reprises, résultats typés, événements runtime quand configurés et contrats stables.",
    operatingSystem: "Web",
  }}
/>

## Related content

- [Déployer des agents IA avec routage des modèles](https://duale.ai/fr/home.md)
- [Solutions pour agents IA selon le rôle de l'équipe](https://duale.ai/fr/solutions.md)
- [Transformer les pilotes IA en portefeuille de production](https://duale.ai/fr/solutions/business.md)
- [Tarifs d'orchestration fiable d'agents IA en accès anticipé](https://duale.ai/fr/product/pricing.md)
- [Gouverner les agents IA pendant leur passage en production](https://duale.ai/fr/solutions/governance.md)
- [Conditions générales d'utilisation de la plateforme IA](https://duale.ai/fr/legal/cgu.md)

---

## Sitemap

See the full [Markdown sitemap](https://duale.ai/sitemap.md) for all pages.
