AI-translated from English; not yet reviewed by a fluent editor.

# Créer un workflow Claude pour examiner des documents en parallèle

> La version bêta de Managed Agents d’Anthropic peut transformer l’examen de documents en un workflow en plusieurs phases. Ce guide montre comment configurer une exécution, consulter ses événements et ses résultats, et tenir compte des coûts et des limites.

By BIG CHANGE Editorial

Published: 2026-10-09T20:34:58.333Z
Updated: 2026-10-09T20:34:58.333Z
Canonical: https://bigchange.ai/blog/claude-managed-agents-parallel-document-review-guide

![One reader sits at a laptop with text on screen; a page with faint text lines lies on the table beside it.](https://bigchange.ai/api/media/file/claude-managed-agents-document-review-hero-v1.png)
Conceptual illustration of a reader manually checking a proposed document-review report. It is not a Claude product screenshot or a BIG CHANGE hands-on test. AI-generated illustration by BIG CHANGE.

Claude Managed Agents peut désormais écrire un programme de workflow qui répartit les parties d’une tâche importante entre plusieurs agents, recueille leurs conclusions et les combine. La fonctionnalité est en bêta. Voici une configuration documentée destinée à un développeur logiciel qui souhaite examiner un dossier de documents et produire un fichier de conclusions vérifiées.

Cette configuration utilise l’API Claude Platform et l’interface CLI d’Anthropic. BIG CHANGE a consulté la documentation actuelle ; nous n’avons pas exécuté la configuration ni testé de workflow.

## Fonctionnement du workflow

Un [workflow dynamique](https://platform.claude.com/docs/en/managed-agents/workflow-runs) est un programme pour une seule exécution. Il peut répartir le travail en phases, démarrer des threads d’agents en parallèle, transmettre leurs résultats entre les phases, réessayer une branche en échec ou la gérer, puis combiner les résultats. Par exemple, une première phase peut examiner des fichiers distincts, tandis qu’une phase ultérieure rapproche les conclusions. L’agent principal démarre l’exécution ; le serveur l’exécute en arrière-plan.

Cela diffère du fait de demander à l’agent principal de créer des exécutions distinctes. Une exécution de workflow coordonne des threads enfants au sein d’une même exécution et renvoie le résultat à l’agent qui l’a démarrée. Un message de session ordinaire ne démarre pas une exécution à lui seul ; l’agent décide quand en démarrer une en fonction de la tâche et de son prompt système. Selon Anthropic, une session peut avoir plusieurs exécutions ouvertes, mais chacune a ses propres phases et son propre résultat.

## Avant de commencer

Vous avez besoin d’un compte Claude Console, d’une clé API et d’un accès à Claude Managed Agents, qu’Anthropic indique activé par défaut pour les comptes API. Les points de terminaison d’agent et de workflow nécessitent l’en-tête `managed-agents-2026-04-01` beta. Le SDK d’Anthropic définit automatiquement cet en-tête ; si vous appelez l’API sans SDK, ajoutez-le vous-même.

La documentation actuelle qualifie toujours Managed Agents de [bêta](https://platform.claude.com/docs/en/managed-agents/overview). Les [notes de version](https://platform.claude.com/docs/en/release-notes/overview) d’Anthropic datent la bêta publique du 9 avril 2026, l’orchestration multiagent du 11 mai et les workflows dynamiques du 9 octobre. Ces derniers sont également en bêta. La date compte : le chiffre de « 1 000 agents » est une limite actuelle par exécution de workflow, pas une nouvelle possibilité de lancer simultanément 1 000 agents.

La plateforme stocke côté serveur l’historique des conversations de session, l’état du bac à sable et les résultats. Anthropic précise que Managed Agents ne relève actuellement ni de [Zero Data Retention ni de la couverture HIPAA Business Associate Agreement](https://platform.claude.com/docs/en/managed-agents/overview). Ne placez pas de contenu réglementé ou confidentiel dans une session tant que votre organisation n’a pas confirmé les règles de données applicables et la configuration.

## 1. Installer l’interface CLI et le SDK

Installez l’interface `ant` CLI d’Anthropic en suivant la méthode correspondant à votre système d’exploitation dans le [guide de démarrage de Managed Agents](https://platform.claude.com/docs/en/managed-agents/quickstart). Par exemple, la commande macOS documentée est :

```sh
brew install anthropics/tap/ant
```

Pour Python, installez le SDK et fournissez la clé API par l’intermédiaire de votre environnement plutôt que de la placer dans un fichier source :

```sh
pip install anthropic
export ANTHROPIC_API_KEY="your-api-key"
```

La clé ci-dessus est un espace réservé. Conservez la vraie valeur dans votre gestionnaire de secrets habituel ou dans une configuration d’environnement protégée.

## 2. Définir un agent capable d’utiliser des workflows

Créez `document-reviewer.md`. Le bloc `multiagent` active le type de workflow introduit en octobre. Désactiver les sous-agents explicite le mode de délégation configuré : cet agent utilise des workflows dynamiques plutôt qu’une délégation ponctuelle à un sous-agent.

```yaml
---
name: document-reviewer
model: claude-sonnet-5-5
tools:
  - type: agent_toolset_20260401
multiagent:
  type: multiagent_20261001
  subagents:
    type: disabled
  workflows:
    type: enabled
---

You review documents for a user-defined checklist.

When a request contains more than 20 independent files, use a dynamic workflow.
Make one phase that checks the files independently and a later phase that
reconciles duplicate findings. Do not infer missing facts. Save the final
machine-readable results to report.json and a concise explanation to summary.md.
Include the source filename and a short evidence excerpt for every finding.
If a file cannot be read or a worker fails, record that file as unresolved;
do not silently omit it. The final response must report the number of files
reviewed, unresolved files, and whether every output file was written.
```

Le seuil et les consignes de vérification relèvent de vos choix de politique, et ne sont pas des valeurs par défaut d’Anthropic. Adaptez-les au travail et au coût des erreurs. `claude-sonnet-5-5` est un exemple d’identifiant de modèle ; choisissez un modèle actuellement disponible pour votre compte et compatible avec votre budget.

Créez l’agent et conservez l’identifiant renvoyé :

```sh
ant apply document-reviewer.md
```

L’interface CLI affiche l’identifiant de l’agent et l’enregistre dans `claude-lock.json`. Managed Agents sépare la définition réutilisable de l’agent (modèle, instructions et outils) de l’environnement dans lequel une session s’exécute.

## 3. Configurer le bac à sable

Un environnement détermine où les sessions s’exécutent : dans un bac à sable cloud géré par Anthropic ou dans un bac à sable auto-hébergé sur votre infrastructure. L’exemple cloud du guide de démarrage utilise un réseau restreint et autorise les gestionnaires de paquets :

```yaml
# environment.yaml
name: document-review
config:
  type: cloud
  networking:
    type: limited
    allow_package_managers: true
```

Appliquez-le avec `ant apply environment.yaml`; son identifiant est également enregistré dans `claude-lock.json`. Si l’agent a besoin d’un accès réseau, indiquez uniquement les hôtes requis dans `allowed_hosts`. Lorsque le réseau est restreint, cette liste d’hôtes limite également les outils de recherche et de récupération sur le Web de Managed Agents. Un paramètre autorisant les gestionnaires de paquets n’ajoute pas de sites à la liste d’autorisation.

Pour un premier lancement, utilisez un petit dossier non sensible et uniquement les outils nécessaires. L’ensemble d’outils intégré de l’agent comprend des opérations de shell et de fichiers ; l’ajout d’outils peut étendre ce que l’agent peut faire. Consultez la politique d’autorisations documentée et les contrôles du bac à sable avant d’accorder l’accès à des systèmes externes ou à des identifiants.

## 4. Démarrer une session et envoyer une tâche délimitée

Utilisez les identifiants de l’agent et de l’environnement pour créer une session avec le SDK Python :

```python
import anthropic

client = anthropic.Anthropic()
session = client.beta.sessions.create(
    agent="AGENT_ID_FROM_CLAUDE_LOCK",
    environment_id="ENVIRONMENT_ID_FROM_CLAUDE_LOCK",
    title="Small document review",
)
print(session.id)
```

Remplacez les deux espaces réservés d’identifiant par les valeurs dans `claude-lock.json`. Envoyez ensuite une tâche concrète par le flux d’événements de la session. Démarrez le flux avant d’envoyer l’événement afin de voir l’exécution et sa progression au fur et à mesure :

```python
with client.beta.sessions.events.stream(session.id) as stream:
    client.beta.sessions.events.send(
        session.id,
        events=[{
            "type": "user.message",
            "content": [{
                "type": "text",
                "text": (
                    "Review each Markdown file in /review-set for a missing "
                    "owner, deadline, or acceptance criterion. Quote evidence; "
                    "do not infer missing details. Reconcile duplicate findings "
                    "and write /mnt/session/outputs/report.json plus "
                    "/mnt/session/outputs/summary.md. In report.json, use "
                    "a files array with one record per input: path, status "
                    "(reviewed or unresolved), and findings; each finding has "
                    "a check, evidence excerpt, and source location. Include "
                    "input, reviewed, and unresolved counts."
                ),
            }],
        }],
    )
    open_runs = {}
    run_results = {}
    for event in stream:
        if event.type == "workflow_run.created":
            open_runs[event.workflow_run_id] = event.name
            print(f"Run started: {event.name}")
        elif event.type == "workflow_run.status_ended":
            run_results[event.workflow_run_id] = event.result.type
            open_runs.pop(event.workflow_run_id, None)
            print(f"Run ended: {event.result.type}")
        elif event.type == "workflow_run.error":
            print(f"Run error: {event.error}")
        elif event.type == "agent.message":
            for block in event.content:
                if block.type == "text":
                    print(block.text)
        elif event.type == "session.status_idle":
            if event.stop_reason.type == "end_turn" and not open_runs:
                break

    # Inspect the child threads associated with completed workflow runs.
    for thread in client.beta.sessions.threads.list(session.id):
        if thread.workflow_run_id in run_results:
            print(f"Thread {thread.id}: {thread.status}")
            for thread_event in client.beta.sessions.threads.events.list(
                thread.id, session_id=session.id
            ):
                if thread_event.type == "session.error":
                    print(f"Thread error: {thread_event}")
```

Cet exemple suppose que la méthode d’entrée configurée de votre session expose les fichiers à `/review-set`. Placez les fichiers dans le bac à sable de la session à l’aide de la méthode d’entrée documentée avant de demander à l’agent de les examiner. Demandez-lui d’écrire les résultats sous `/mnt/session/outputs/`; la documentation des fichiers de [Managed Agents](https://platform.claude.com/docs/en/managed-agents/files) explique comment répertorier les fichiers propres à une session et les télécharger. Dans le SDK Python, la forme de lecture documentée est :

```python
files = client.beta.files.list(
    scope_id=session.id,
    betas=["managed-agents-2026-04-01"],
)
for report in files:
    if report.filename == "report.json":
        content = client.files.download(report.id)
        content.write_to_file("report.json")
        break
```

Un fichier peut mettre quelques secondes à apparaître une fois la session inactive ; s’il manque, relancez la liste après un court délai. Pour un premier essai prudent, créez un dossier de test contenant quelques documents dont vous pouvez vérifier manuellement les résultats attendus. Le prompt d’exemple définit la tâche d’examen ; il ne garantit pas que l’agent trouvera tous les problèmes.

Le contrat de sortie doit être assez strict pour être audité. Par exemple :

```json
{
  "files": [
    {
      "path": "requirements.md",
      "status": "reviewed",
      "findings": [
        {
          "check": "deadline",
          "evidence_excerpt": "...",
          "source_location": "requirements.md, section 2"
        }
      ]
    }
  ],
  "input_count": 1,
  "reviewed_count": 1,
  "unresolved_count": 0
}
```

Il s’agit d’un schéma proposé pour votre workflow, et non d’un schéma fourni par Anthropic. Conservez les fichiers non résolus ou illisibles sous forme d’enregistrements afin qu’un résultat manquant ne puisse pas être pris pour un examen sans problème.

## 5. Vérifier l’exécution et ses résultats

Au démarrage d’un workflow, le flux d’événements signale `workflow_run.created`, notamment un identifiant d’exécution et les phases déclarées par le workflow. L’exemple garde chaque identifiant ouvert jusqu’à l’événement `workflow_run.status_ended`correspondant ; l’inactivité de la session principale ne suffit pas à établir que le workflow en arrière-plan est terminé. Le flux principal résume l’état des threads enfants, tandis que la liste d’événements d’un thread contient ses propres messages et erreurs. L’exemple répertorie les threads par `workflow_run_id` et affiche les événements `session.error` . Examinez ces événements pour repérer les nouvelles tentatives épuisées (y compris `retry_status.type == "exhausted"`) ou d’autres erreurs de threads enfants, puis marquez les fichiers concernés comme non résolus.

Considérez le fichier de sortie comme le livrable, et non le mot « terminé ». Anthropic avertit explicitement qu’une exécution peut se terminer par `completed` même si le travail d’un thread a échoué ou si un thread n’a pas pu être créé. Ouvrez `report.json` et vérifiez que chaque fichier d’entrée comporte soit des conclusions, soit un statut explicitement non résolu, que les extraits de preuve renvoient au bon fichier source et que les nombres correspondent aux fichiers fournis. Comparez le petit dossier de test à vos résultats attendus avant d’utiliser le workflow sur un corpus plus vaste.

Si votre client se déconnecte, un nouveau flux d’événements n’envoie que les événements émis après son ouverture. Reconstituez l’état de l’exécution en répertoriant les événements passés de la session avec les filtres de type d’événement documentés et la pagination. Ne déduisez pas qu’une exécution est terminée simplement parce que l’agent principal est inactif alors que des threads enfants peuvent encore travailler. Une fois toutes les exécutions observées terminées, répertoriez les fichiers propres à la session et téléchargez `/mnt/session/outputs/report.json` et `summary.md` à l’aide de l’API Files documentée. Vérifiez que chaque fichier fourni possède un enregistrement examiné ou non résolu et que les nombres concordent. La boucle d’événements de l’exemple ne télécharge ni ne valide le rapport lui-même.

## Limites qui influent sur la conception

Les [limites des exécutions de workflow](https://platform.claude.com/docs/en/managed-agents/workflow-runs) documentées par Anthropic prévoient actuellement jusqu’à 64 threads de workflow travaillant simultanément dans une même exécution, mais l’API ne garantit pas ce niveau de concurrence et la valeur peut évoluer. La limite de 1 000 agents compte les agents démarrés pendant toute la durée de l’exécution. Il ne s’agit pas du nombre de threads simultanés. Si un workflow tente de démarrer un autre agent après avoir atteint ce total, l’exécution se termine par `thread_limit_error`; les nouvelles tentatives d’agents en échec peuvent créer des threads supplémentaires.

Une exécution dure 24 heures par défaut, ou moins si son agent définit une durée plus courte. Le temps passé à attendre votre client compte aussi, et une exécution en pause peut tout de même expirer. Une session comporte par défaut 10 exécutions ouvertes, y compris celles qui sont inactives. Le budget d’utilisation d’une session s’applique à tous ses agents de workflow ; une fois atteint, les exécutions ouvertes sont suspendues jusqu’à ce que le budget soit augmenté ou supprimé. Prévoyez des unités de travail plus petites, enregistrez des points de contrôle dans des fichiers et demandez à la phase de rapprochement de signaler les éléments inachevés plutôt que de prétendre qu’ils ont été examinés.

En cas d’échec, examinez le `workflow_run.error` et le thread concerné. `program_error` peut indiquer un échec du code du workflow ou d’un thread enfant ; `thread_limit_error` désigne le plafond de 1 000 agents ; `timeout_error` désigne la limite de durée de l’exécution. Si une exécution atteint le budget de la session, augmentez-le ou supprimez-le pour la reprendre. Pour arrêter un workflow, demandez à l’agent principal d’arrêter ses exécutions ; interrompre un tour de session ne constitue pas en soi une commande d’annulation d’exécution.

## Coût

La [documentation tarifaire](https://platform.claude.com/docs/en/about-claude/pricing) d’Anthropic facture Managed Agents selon le tarif des jetons du modèle choisi et la durée de la session, à **0,08 $ par heure de session active**. La durée est comptabilisée tant que l’état de la session est `running`; les périodes d’inactivité, de reprogrammation et de fin ne comptent pas. Une exécution de workflow n’entraîne pas de frais distincts, mais les jetons utilisés par les threads sont facturés dans le cadre de la session. Une recherche Web lancée dans une session est facturée 10 $ pour 1 000 recherches. Le total exact dépend du modèle, des jetons d’entrée et de sortie, des outils et de la durée de la session ; consultez l’utilisation dans Console au lieu de l’estimer à partir du plafond de 1 000 agents.

En pratique, commencez par quelques fichiers, vérifiez que la sortie du workflow rend compte de chacun, examinez les threads en échec, puis n’élargissez l’entrée que si la politique de vérification et le coût sont acceptables. Les workflows gérés permettent de coordonner un travail parallèle asynchrone ; ils ne certifient pas les conclusions.

## Le changement majeur

Depuis le 9 octobre, un agent Managed Agents peut écrire un programme de workflow que le serveur exécute sur plusieurs threads et phases d’agents. Les développeurs peuvent utiliser cette approche pour une répartition limitée et vérifiable, tandis que la session principale suit la progression. La fonctionnalité reste en bêta, et les limites publiées ne garantissent ni que chaque exécution atteindra la concurrence maximale ni qu’elle produira des conclusions exactes.

## Sources et lectures complémentaires

- [Présentation de Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) — statut bêta, en-tête API, accès, sessions avec état, outils et limites de conservation des données.
- [Premiers pas avec Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/quickstart) — CLI, SDK, configuration de l’agent et de l’environnement, création de session et exemple de flux d’événements.
- [Orchestration multiagent](https://platform.claude.com/docs/en/managed-agents/multiagent-orchestration) — activation des workflows dynamiques et choix entre workflows et sous-agents.
- [Exécutions de workflow](https://platform.claude.com/docs/en/managed-agents/workflow-runs) — événements d’exécution, interprétation des résultats, récupération, budgets et limites documentées.
- [Threads de session](https://platform.claude.com/docs/en/managed-agents/session-threads) — répertorier les threads enfants associés à l’exécution et consulter leur historique d’événements.
- [Fichiers de session](https://platform.claude.com/docs/en/managed-agents/files) — entrées montées, chemins de sortie, liste des fichiers de session et téléchargements.
- [Notes de version de Claude Platform](https://platform.claude.com/docs/en/release-notes/overview) — mise à jour des workflows dynamiques du 9 octobre 2026 et configuration bêta.
- [Tarifs de Claude Platform](https://platform.claude.com/docs/en/about-claude/pricing) — facturation des jetons et tarifs de durée de session.

## Sources

- [Présentation de Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) — Statut bêta actuel, en-tête API, accès, sessions avec état et limites de conservation des données.
- [Premiers pas avec Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/quickstart) — Configuration de la CLI et du SDK, de l’agent et de l’environnement, exemples de session et de flux d’événements.
- [Orchestration multiagent](https://platform.claude.com/docs/en/managed-agents/multiagent-orchestration) — Activation des workflows et distinction par rapport aux sous-agents.
- [Exécutions de workflow](https://platform.claude.com/docs/en/managed-agents/workflow-runs) — Mécanismes des workflows et des exécutions, événements, interprétation de l’état de sortie, récupération, budgets et limites.
- [Claude Platform release notes](https://platform.claude.com/docs/en/release-notes/overview) — Historique daté de la bêta publique et mise à jour des workflows dynamiques du 9 octobre 2026 ; URL canonique corrigée.
- [Claude Platform pricing](https://platform.claude.com/docs/en/about-claude/pricing) — Tarifs des jetons Managed Agents et de la durée de session.
- [Session threads](https://platform.claude.com/docs/en/managed-agents/session-threads) — Répertorier les threads enfants associés à l’exécution et consulter leur historique d’événements.
- [Session files](https://platform.claude.com/docs/en/managed-agents/files) — Entrées montées, chemins de sortie, liste des fichiers de session et téléchargements.
