Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

BUG: Inferred objective is empty when tool calls come between the request and the answer

Ouverte
#3,515 0 commentaires 0 réactions 1 personne assignée Voir sur GitHub

Les mainteneurs répondent en général sous 2 jours

@Shizoqua y travaille déjà.

Depuis le 26/10/2026.

  • #3517 par @Shizoqua — ouverte

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
25/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
À l'abandon
Stack technique
python
Domaine
ai, backend

Piste de recherche

Read extract_objective_from_previous_turn_async and compare its lookup with MemoryInterface.get_request_from_response_async and WildGuardScorer, which the issue cites. Reproduce with the described sequence of user, function call, tool output, and answer turns; done means the inferred objective is the original user question. Pull request #3517 is already open for this issue.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Describe the bug

extract_objective_from_previous_turn_async (used when a scorer infers the objective from the request) only reads the turn at sequence - 1. When a target runs a tool loop, memory stores the user request, the function_call, the function_call_output and then the answer, so the turn before the answer is the tool output. It has no user text, and the scorer ends up with an empty objective.

#3410 fixed the same problem in MemoryInterface.get_request_from_response_async, and WildGuardScorer already looks back to the latest earlier user turn.

Steps to Reproduce

Store a conversation of user question (seq 2), assistant function_call (seq 3), tool function_call_output (seq 4) and assistant answer (seq 5), then call extract_objective_from_previous_turn_async on the answer.

Expected Results

The objective is the user question from seq 2.

Actual Results

An empty string.

Versions

Linux, Python 3.13.16, PyRIT 1.2.0.dev0 from main (96de757e)

Langage dominant
Python
Étoiles
4.7k
Forks
980
Merge moyen
2 j 9 h
PR mergées (30 j)
433

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

  • Aucun Dockerfile ni fichier Docker Compose
  • Propose un modèle de pull request
  • Aucun guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de microsoft/PyRIT

Toutes les issues de microsoft/PyRIT

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.