10 KiB
10 KiB
Workflow d'orchestration
Ce document décrit le workflow d'orchestration Commande → Agent (avec skill) → Skill, démontré à travers un système de récupération de données météo et de rendu SVG.
| ← Retour à Claude Code Best Practice |
Vue d'ensemble du système
Le système météo démontre deux patterns de skills distincts dans un seul workflow d'orchestration :
- Agent Skills (préchargés) :
weather-fetcherest injecté dansweather-agentau démarrage comme connaissance de domaine - Skills (indépendants) :
weather-svg-creatorest invoqué directement par la commande via l'outil Skill
Cela illustre le pattern d'architecture Commande → Agent → Skill, où :
- Une commande orchestre le workflow et gère l'interaction utilisateur
- Un agent récupère les données avec son skill préchargé
- Un skill crée la sortie visuelle de manière indépendante
Résumé des composants
| Composant | Rôle | Exemple |
|---|---|---|
| Commande | Point d'entrée, interaction utilisateur | /weather-orchestrator |
| Agent | Récupère les données avec un skill préchargé (agent skill) | weather-agent avec weather-fetcher |
| Skill | Crée la sortie indépendamment (skill) | weather-svg-creator |
Diagramme de flux
╔══════════════════════════════════════════════════════════════════╗
║ WORKFLOW D'ORCHESTRATION ║
║ Commande → Agent → Skill ║
╚══════════════════════════════════════════════════════════════════╝
┌──────────────────────┐
│ Interaction utilisateur│
└─────────┬────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ /weather-orchestrator — Commande (point d'entrée) │
└─────────────────────────┬───────────────────────────┘
│
Étape 1
│
▼
┌────────────────────────┐
│ AskUser — C° ou F° ? │
└────────────┬───────────┘
│
Étape 2 — outil Agent
│
▼
┌─────────────────────────────────────────────────────┐
│ weather-agent — Agent ● skill: weather-fetcher │
└─────────────────────────┬───────────────────────────┘
│
Retourne : temp + unité
│
Étape 3 — outil Skill
│
▼
┌─────────────────────────────────────────────────────┐
│ weather-svg-creator — Skill ● carte SVG + sortie │
└─────────────────────────┬───────────────────────────┘
│
┌────────┴────────┐
│ │
▼ ▼
┌────────────┐ ┌────────────┐
│weather.svg │ │ output.md │
└────────────┘ └────────────┘
Détails des composants
1. Commande
/weather-orchestrator (commande)
- Emplacement :
.claude/commands/weather-orchestrator.md - Objectif : point d'entrée — orchestre le workflow et gère l'interaction utilisateur
- Actions :
- Demande à l'utilisateur sa préférence d'unité de température (Celsius/Fahrenheit)
- Invoque weather-agent via l'outil Agent
- Invoque weather-svg-creator via l'outil Skill
- Modèle : haiku
2. Agent avec skill préchargé (agent skill)
weather-agent (agent)
- Emplacement :
.claude/agents/weather-agent.md - Objectif : récupérer les données météo avec son skill préchargé
- Skills :
weather-fetcher(préchargé comme connaissance de domaine) - Outils disponibles : Read, Skill
- Modèle : sonnet
- Couleur : green
- Mémoire : project
L'agent a weather-fetcher préchargé dans son contexte au démarrage. Il suit les instructions du skill pour récupérer la température et retourne la valeur à la commande.
3. Skill
weather-svg-creator (skill)
- Emplacement :
.claude/skills/weather-svg-creator/SKILL.md - Objectif : créer une carte météo SVG visuelle et écrire les fichiers de sortie
- Invocation : via l'outil Skill depuis la commande (non préchargé dans un agent)
- Sorties :
orchestration-workflow/weather.svg— carte météo SVGorchestration-workflow/output.md— résumé météo
4. Skill préchargé
weather-fetcher (skill)
- Emplacement :
.claude/skills/weather-fetcher/SKILL.md - Objectif : instructions pour récupérer les données de température en temps réel
- Source de données : API Open-Meteo pour Dubaï, Émirats arabes unis
- Sortie : valeur de température et unité (Celsius ou Fahrenheit)
- Note : c'est un agent skill — préchargé dans
weather-agent, pas invoqué directement
Flux d'exécution
- Invocation utilisateur : l'utilisateur lance la commande
/weather-orchestrator - Prompt utilisateur : la commande demande l'unité de température préférée (Celsius/Fahrenheit)
- Invocation de l'agent : la commande invoque
weather-agentvia l'outil Agent - Exécution du skill (dans le contexte de l'agent) :
- L'agent suit les instructions du skill
weather-fetcherpour récupérer la température depuis Open-Meteo - L'agent retourne la valeur de température et l'unité à la commande
- L'agent suit les instructions du skill
- Création SVG : la commande invoque
weather-svg-creatorvia l'outil Skill- Le skill crée la carte météo SVG dans
orchestration-workflow/weather.svg - Le skill écrit le résumé dans
orchestration-workflow/output.md
- Le skill crée la carte météo SVG dans
- Affichage du résultat : résumé affiché à l'utilisateur avec :
- Unité de température demandée
- Température récupérée
- Emplacement de la carte SVG
- Emplacement du fichier de sortie
Exemple d'exécution
Input: /weather-orchestrator
├─ Étape 1 : demande : Celsius ou Fahrenheit ?
│ └─ User: Celsius
├─ Étape 2 : outil Agent → weather-agent
│ ├─ Skill préchargé :
│ │ └─ weather-fetcher (connaissance de domaine)
│ ├─ Récupère depuis Open-Meteo → 26°C
│ └─ Retourne : temperature=26, unit=Celsius
├─ Étape 3 : outil Skill → /weather-svg-creator
│ ├─ Crée : orchestration-workflow/weather.svg
│ └─ Écrit : orchestration-workflow/output.md
└─ Sortie :
├─ Unité : Celsius
├─ Température : 26°C
├─ SVG : orchestration-workflow/weather.svg
└─ Résumé : orchestration-workflow/output.md
Principes clés de design
- Deux patterns de skills : démontre à la fois les agent skills (préchargés) et les skills (invoqués directement)
- Commande comme orchestrateur : la commande gère l'interaction utilisateur et coordonne le workflow
- Agent pour la récupération de données : l'agent utilise son skill préchargé pour récupérer les données, puis les retourne
- Skill pour la sortie : le créateur SVG s'exécute indépendamment, recevant les données depuis le contexte de la commande
- Séparation claire : Fetch (agent) → Render (skill) — chaque composant a une seule responsabilité
Patterns d'architecture
Agent Skill (préchargé)
# Dans la définition de l'agent (.claude/agents/weather-agent.md)
---
name: weather-agent
skills:
- weather-fetcher # Préchargé dans le contexte de l'agent au démarrage
---
- Les skills sont préchargés : le contenu complet du skill est injecté dans le contexte de l'agent au démarrage
- L'agent utilise la connaissance du skill : l'agent suit les instructions des skills préchargés
- Pas d'invocation dynamique : les skills sont du matériel de référence, pas invoqués séparément
Skill (invocation directe)
# Dans la définition du skill (.claude/skills/weather-svg-creator/SKILL.md)
---
name: weather-svg-creator
description: Creates an SVG weather card...
---
- Invoqué via l'outil Skill : la commande appelle
Skill(skill: "weather-svg-creator") - Exécution indépendante : s'exécute dans le contexte de la commande, pas dans un agent
- Reçoit les données depuis le contexte : utilise les données de température déjà disponibles dans la conversation