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

BUG: label queries only return the final conversation of an attack

Fermée Adaptée aux débutants
#3,095 4 commentaires 0 réactions 1 personne assignée Voir sur GitHub

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

@u7k4rs6 y travaille déjà.

Depuis le 14/10/2026.

  • #3199 par @u7k4rs6 — ouverte

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
85/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
python
Domaine
databases

Piste de recherche

Le bogue se trouve dans _get_message_pieces_memory_label_conditions dans sqlite_memory.py et azure_sql_memory.py, où la jointure ne récupère que les pièces de la conversation finale d'une attaque. Ajuste la condition de jointure pour qu'elle corresponde aussi à ConversationEntry.attack_result_id == AttackResultEntry.id, afin d'inclure toutes les conversations liées au résultat de l'attaque, puis exécute la reproduction fournie avec la cible factice pour confirmer que les requêtes de labels renvoient toutes les pièces attendues pour PromptSendingAttack et RedTeamingAttack.

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

Description

get_message_pieces_async(labels=...) only returns pieces from an attack result's final conversation_id. Labels now live on AttackResultEntry, and the condition in _get_message_pieces_memory_label_conditions (sqlite_memory.py and azure_sql_memory.py) only joins on AttackResultEntry.conversation_id == PromptMemoryEntry.conversation_id. Its docstring says it also matches labels on the piece itself, but that branch is gone.

So everything else an attack sent drops out of label queries: PromptSendingAttack retry attempts, Crescendo's pruned conversations, the adversarial chat in RedTeaming, Crescendo and TAP, and every TAP branch except the best one. The memory docs still say labels apply "to all prompts sent by any attack".

This is with mock targets:

PromptSendingAttack(max_attempts_on_failure=2): pieces sent in this attack=6, returned by labels query=2
RedTeamingAttack: objective-conv pieces=4, adversarial-conv pieces=5, returned by labels query=4

The Conversation table already has attack_result_id for these conversations, so one option is to also match when ConversationEntry.conversation_id equals PromptMemoryEntry.conversation_id and ConversationEntry.attack_result_id equals AttackResultEntry.id. Whether adversarial-chat prompts should come back is a design call, since they'd also get picked up by label-based batch scoring, so I'm filing this as an issue first. #3063 touches the same functions for dotted keys.

Langage dominant
Python
Étoiles
4.6k
Forks
962
Merge moyen
2 j 13 h
PR mergées (30 j)
407

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.