failproofai-sdk, sous failproofai_sdk.evaluator ; l’importation du SDK de traçage ne le charge pas.
Écrire des évaluations
@app.eval(key, version=...)enregistre une évaluation. La clé détermine sous quel nom ses résultats sont regroupés ; changez la version à chaque modification de la logique, et chaque résultat conserve la version qui l’a produit. Un seul worker peut contenir jusqu’à 100 évaluations.result_kindvaut"score"par défaut. Pour une évaluation de type"metric"ou"assertion", nommez une entréemetricsouassertionsd’après la clé : c’est cette entrée qui constitue son résultat.whendétermine si une session est applicable. RetournezConditionResult(False, "<reason>")pour ignorer une session ; la raison est enregistrée.- Une évaluation peut être une fonction ordinaire ou
async, ettimeout_secondsen limite la durée. - Les clés de payload —
tool_name,responseetcontentci-dessus — correspondent à ce que vos agents envoient ; lisez-les depuis une vraie session.
Démarrer le worker
Placez une clé avec la permissionevaluations:run, créée sous Administration → Keys, dans FAILPROOFAI_EVALUATOR_TOKEN — configurez-la depuis votre gestionnaire de secrets plutôt qu’en la saisissant directement dans une commande — puis démarrez le worker :
__main__, python -m failproofai_sdk.evaluator evaluator:app produit le même résultat.
Types de résultats
Un
EvalResult contient au moins un score, une métrique ou une assertion, et au plus 25, chacun sous une clé unique.
La session
Chaque événement contient
id, ts, event_type et payload.
L’evaluator historique
L’Evaluator SDK précédent — un service HTTP que Failproof AI appelait àEVALUATOR_ENDPOINT, répondant sur /evaluate et interrogé via JobPending — est désormais retiré. Construisez vos nouveaux evaluators sur ce worker ; les opérateurs d’une instance auto-hébergée utilisant encore un service historique peuvent le maintenir le temps de la transition.
