RobotSe7en/dagent

Dagent est un framework d'agents DAG dynamique qui transforme des objectifs en flux de travail modifiables et exécutables.

Qu'est-ce que dagent ?

Dagent est un framework d'agents basé sur des graphes orientés acycliques (DAG) qui convertit des objectifs de haut niveau en workflows éditables et exécutables. Il permet aux utilisateurs (humains ou agents) de définir un objectif, que Dagent décompose en une séquence d'étapes représentée sous forme de DAG. Chaque nœud du graphe correspond à une action ou une décision, et les arêtes définissent les dépendances entre elles. L'avantage clé de Dagent est la possibilité de visualiser, modifier et réexécuter le workflow résultant, offrant ainsi une transparence et un contrôle total sur le processus. Le framework supporte l'intégration avec divers outils et API, rendant les workflows adaptables à différents contextes de développement et d'exploitation. En résumé, Dagent facilite la création de flux de travail automatisés et modulaires, où chaque étape peut être inspectée et ajustée avant ou après exécution.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add RobotSe7en/dagent

Installed? Explore more Productivité et collaboration skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait dagent ?

Dagent est un framework d'agents DAG dynamique qui transforme des objectifs en flux de travail modifiables et exécutables.

Vue d'ensemble

Dagent permet de définir un objectif, qu'il décompose automatiquement en un graphe orienté acyclique (DAG) d'étapes. Chaque étape peut être une commande, un appel d'API, un script ou une décision logique. Le DAG résultant est entièrement éditable : vous pouvez ajouter, supprimer ou réorganiser des nœuds, modifier leurs paramètres, ou les marquer comme réussis/échoués. Cela permet une approche itérative et transparente pour la résolution de problèmes complexes.

Fonctionnalités principales

  • Conversion d'objectifs en workflows : Décrivez votre objectif en langage naturel, et Dagent construit le DAG correspondant.
  • Édition interactive : Visualisez le graphe et modifiez les étapes avant, pendant ou après l'exécution.
  • Exécution séquentielle ou parallèle : Les nœuds sans dépendances peuvent être exécutés en parallèle pour optimiser la performance.
  • Réexécution sélective : Vous pouvez relancer uniquement les nœuds échoués ou modifiés, sans refaire tout le workflow.
  • Intégration avec des outils externes : Supporte les appels à des API REST, des bases de données, des fichiers, etc.

Installation

pip install dagent

Utilisation rapide

from dagent import Dagent

# Créer une instance de Dagent
agent = Dagent()

# Définir un objectif
objectif = "Récupérer les données météo de Paris et les stocker dans un fichier JSON"

# Générer le workflow
workflow = agent.generate_workflow(objectif)

# Afficher le DAG
print(workflow.graph)

# Exécuter le workflow
result = workflow.execute()
print(result)

Édition du workflow

Après la génération, vous pouvez modifier le workflow directement :

# Ajouter un nouveau nœud
workflow.add_node('envoyer_email', depends_on=['stocker_donnees'])

# Modifier un nœud existant
workflow.update_node('recuperer_donnees', params={'city': 'Lyon'})

# Supprimer un nœud
workflow.remove_node('generer_graphique')

# Exécuter uniquement les nœuds modifiés
workflow.execute_changed()

Structure du DAG

Le DAG est représenté comme un dictionnaire Python avec des nœuds et des arêtes :

{
    "nodes": {
        "recuperer_donnees": {
            "type": "api_call",
            "params": {
                "url": "https://api.meteo.com/paris"
            },
            "status": "pending"
        },
        "stocker_donnees": {
            "type": "file_write",
            "params": {
                "path": "/tmp/meteo.json"
            },
            "dependencies": ["recuperer_donnees"]
        }
    },
    "edges": [
        ("recuperer_donnees", "stocker_donnees")
    ]
}

Commandes CLI

Dagent fournit également une interface en ligne de commande :

# Initialiser un projet Dagent
dagent init

# Générer un workflow à partir d'un objectif
dagent generate "Analyser les logs du serveur"

# Lister les workflows disponibles
dagent list

# Exécuter un workflow
dagent run <workflow_id>

Variables d'environnement

  • DAGENT_API_KEY : Clé API pour les services externes.
  • DAGENT_WORKSPACE : Répertoire de travail pour les fichiers temporaires.
  • DAGENT_LOG_LEVEL : Niveau de journalisation (DEBUG, INFO, WARNING, ERROR).

Contribution

Les contributions sont les bienvenues ! Veuillez consulter le fichier CONTRIBUTING.md pour plus de détails.

Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus d'informations.


Pour toute question, ouvrez une issue sur le dépôt GitHub RobotSe7en/dagent.

Skills associés