getsentry / getsentry/sentry-python

Better way to capture errors in tool execution

Abierto
#4,526 2 comentarios 0 reacciones 0 asignados Ver en GitHub
Errors Improvement Python
Lenguaje dominante
Python
Estrellas
2.2k
Forks
669
Merge medio
1 d 40 min
PR fusionados (30 d)
212

Descripción

We can not capture exceptions in tool execution here because `_on_invoke_tool` is swallowing the exception here:

[https://github.com/openai/openai-agents-python/blob/main/src/agents/tool.py#L409-L422](https://github.com/openai/openai-agents-python/blob/main/src/agents/tool.py#L409-L422)

And because `function_tool` is a decorator with `default_tool_error_function` set as a default parameter

I was unable to monkey patch it because those are evaluated at module import time and the SDK is too late to patch it. I was also unable to patch `_on_invoke_tool_impl` because it is nested inside this import time code. As if they made it hard to patch on purpose...

Right now we just check if the output of the tool is a string that starts with `"An error occurred while running the tool"` and if so set the spans status to `internal_error`. But we do not have any stack trace or all the other context information. There must be a better way.

Here is the communication I started with OpenAI to improve things:

[https://github.com/openai/openai-agents-python/issues/945](https://github.com/openai/openai-agents-python/issues/945)

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.