Valider les réponses de l’agent
Demandez une réponse structurée et validez-la avant de l’utiliser dans votre application.
Demander une réponse JSON
Section intitulée « Demander une réponse JSON »Définissez un contrat de réponse JSON pour recevoir des données que votre application peut valider. L’agent écrit sa réponse dans la balise demandée, puis Outpost l’analyse et la valide avant de fournir result.value.
Référence API : DispatchResult et defineJsonResponse.
Indiquer le format dans les consignes
Section intitulée « Indiquer le format dans les consignes »Outpost envoie votre brief tel quel : il n’ajoute aucune consigne de format. Indiquez la balise attendue et montrez un exemple de son contenu, comme ci-dessus.
dispatch() vérifie que le brief contient la balise ouvrante (<verdict>) avant de démarrer une sandbox. Sans elle, l’appel échoue avec une erreur configuration.
Utiliser votre propre validation
Section intitulée « Utiliser votre propre validation »La fonction reçoit le JSON analysé comme unknown et renvoie la valeur typée. Levez une exception pour le rejeter. read() applique les mêmes règles que dispatch() : vous pouvez tester une réponse hors ligne.
La dernière paire <verdict>…</verdict> complète l’emporte : un brouillon placé plus tôt dans la réponse est ignoré. Son contenu est nettoyé des espaces et peut être entouré d’un bloc de code json.
Renvoyer du texte brut
Section intitulée « Renvoyer du texte brut »defineTextResponse() renvoie le texte nettoyé contenu dans la balise, sans analyse JSON.
Traiter une réponse invalide
Section intitulée « Traiter une réponse invalide »Une balise absente, un JSON invalide ou un rejet du schéma fait lever à dispatch() une ResponseError de code response, une fois les tours de réparation épuisés.
Référence API : ResponseError.
Laisser l’agent réparer sa réponse
Section intitulée « Laisser l’agent réparer sa réponse »Définissez repairs pour accorder à l’agent des tours supplémentaires après une réponse invalide.
Chaque réparation reprend la même conversation avec l’erreur de validation et le contenu précédent. Elle demande uniquement la balise corrigée, sans modifier de fichiers ni lancer de commandes. Les tours de réparation s’ajoutent à result.usage et à result.text.
Les réparations exigent un agent capable de reprendre sa conversation ; sinon, dispatch() refuse repairs. Choisir un agent indique quels harness le permettent.
- Un dispatch avec
responses’exécute en une seule passe :passesdoit valoir 1 ou être omis. - Une balise commence par une lettre, suivie de lettres, de chiffres, de
_ou de-. - Une réponse valide prouve sa forme, pas ses affirmations. Vérifiez « tests réussis » en lançant les tests dans une session de sandbox ou une boucle de vérification.
API : defineJsonResponse · defineTextResponse · ResponseError · ResponseSpec · DispatchResult.