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 harnessLien 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 souhaitez | Commencez ici | Pourquoi |
|---|---|---|
| Maintenir une exécution disponible malgré les déconnexions du client ou les redémarrages du serveur | Durable Agents | Persistez 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 bloquer | Background Tasks | Terminez le travail de manière asynchrone et renvoyez son résultat à l'agent. |
| Maintenir un agent au travail jusqu'à ce qu'il atteigne un objectif | Goals | É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écurrents | Schedules | Dé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 inactif | Signals | Transmettez 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 externe | Signal Providers | Suivez 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énements | AgentController | Hé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êter | AgentController | Exposez les contrôles d'exécution via chaque session. |