Aller au contenu principal

Présentation des harnesses

Un harness permet à un agent de poursuivre des objectifs complexes et de longue durée tout en gardant son travail durable, visible et pilotable. Il préserve la progression entre les nouvelles tentatives et les interruptions, tout en donnant aux personnes et aux autres systèmes les moyens d'inspecter la progression, d'ajouter du contexte, d'approuver des actions, de rediriger l'agent ou de l'arrêter.

Dans Mastra, un harness désigne un ensemble de capacités permettant de gérer un agent au-delà d'une seule exécution ininterrompue. Vous pouvez adopter ces capacités individuellement ou les combiner selon vos besoins.

AgentController est un harness conçu pour les applications d'agents interactives. Il étend la boucle Agent de base avec des sessions isolées pour chaque utilisateur ou tâche, des threads et un état persistants, des modes et des modèles interchangeables, des autorisations et validations de tools, l'orchestration de sous-agents, ainsi que des flux d'événements et d'état d'affichage.

Les harnesses d'agents sont utiles partout où le travail se poursuit dans le temps. Parmi les exemples courants figurent les agents de programmation qui accompagnent les modifications jusqu'à l'intégration continue et la revue, les usines logicielles qui coordonnent de nombreuses tâches en parallèle, les agents SRE qui s'adaptent à l'évolution des incidents et les agents go-to-market qui réagissent aux changements de comptes, de signaux et de conversations.

Quand utiliser un harness
Lien direct vers Quand utiliser un harness

Choisissez un point de départ selon les besoins de l'agent. Vous pouvez utiliser une ou plusieurs capacités.

Si vous souhaitezCommencez iciPourquoi
Maintenir une exécution disponible malgré les déconnexions du client ou les redémarrages du serveurDurable AgentsPersistez l'état d'exécution et permettez aux clients de se reconnecter à son flux.
Exécuter des tools, des workflows ou des sous-agents lents sans bloquerBackground TasksTerminez le travail de manière asynchrone et renvoyez son résultat à l'agent.
Maintenir un agent au travail jusqu'à ce qu'il atteigne un objectifGoalsÉvaluez un objectif associé à un thread jusqu'à ce qu'il soit terminé ou atteigne son budget d'exécution.
Démarrer automatiquement le travail à des moments récurrentsSchedulesDémarrez des exécutions isolées ou envoyez des prompts dans un thread existant selon une planification cron.
Ajouter du contexte, rediriger le travail actif ou réveiller un thread inactifSignalsTransmettez une entrée maintenant ou conservez-la pour le prochain tour.
Réagir aux changements dans GitHub, Slack, l'intégration continue ou un autre système externeSignal ProvidersSuivez les abonnements et transférez les événements correspondants aux threads des agents.
Créer un produit interactif avec des sessions, des modes, un état, des validations et des événementsAgentControllerHébergez des sessions isolées autour d'un environnement d'exécution d'agent partagé.
Permettre aux utilisateurs de piloter une exécution interactive, de mettre en file d'attente du travail de suivi ou de l'arrêterAgentControllerExposez les contrôles d'exécution via chaque session.