Sortie structurée : le « faux outil »
Problème : « réponds en JSON » dans le prompt = aucune garantie.
Solution : un outil jamais exécuté, qui ne sert qu'à mouler la sortie :
resp = client.messages.create(
model=MODEL, max_tokens=1024,
tools=[extraction_tool],
tool_choice={"type": "tool", "name": "record_ticket_analysis"},
messages=[{"role": "user", "content": f"Analyse :\n{ticket}"}],
)
data = next(b for b in resp.content
if b.type == "tool_use").input
Pas de tool_result à renvoyer : appel à sens unique.