[Bug] reconstruct_run_result drops StepInfo.tools from persisted trajectories
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 78/100
Piste de recherche
Commencez par reconstruct_run_result et la construction de StepInfo qu’il utilise, puis examinez le chemin existant de sérialisation des trajectoires. Ajoutez une couverture pour un round trip contenant StepInfo.tools et vérifiez que l’étape reconstruite conserve les informations d’outil d’origine, y compris lors de réexécutions uniquement destinées à l’analyse.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
I noticed that reconstruct_run_result does not restore the tools field of persisted trajectory steps.
A serialized StepInfo can contain tool information such as:
{
"step_id": 1,
"tools": [
{
"name": "browser",
"description": "Browse a web page",
}
],
"assistant_content": {
"content": "Done",
"reasoning_content": "",
"tool_calls": [],
},
"metric": {},
"observation": [],
}
After passing this payload through reconstruct_run_result, the restored step contains:
restored.trajectory.steps[0].tools == []
The function restores assistant content, metrics, prompts, observations, and timestamps, but does not pass raw_step["tools"] to StepInfo.
This breaks lossless serialization and can make analysis results depend on whether they are produced during the original run or recomputed from persisted results. Analyzers that inspect step.tools, including the hack detection analyzer, may receive different inputs during an analysis-only rerun.
The expected behavior is for the reconstructed step to preserve the original tool information.
A possible fix is to restore the field when creating StepInfo:
tools=raw_step.get("tools", [])
A round-trip regression test could verify that serializing and reconstructing a trajectory preserves this field.
I reproduced this on revision 16cb375779271d4524cde785d1656e1fc4528fac with Python 3.11.9. No model or external API is required.
I'd be happy to work on the fix and add the regression test. Please let me know if this approach looks reasonable.
- Langage dominant
- Python
- Étoiles
- 138
- Forks
- 28
- Merge moyen
- 1 j 10 h
- PR mergées (30 j)
- 37
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de open-compass/AgentCompass
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 38/100
open-compass/AgentCompass#288 · 2 commentaires ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 72/100
open-compass/AgentCompass#273 · 1 commentaire ·
Toutes les issues de open-compass/AgentCompass
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100