Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions py/src/braintrust/wrappers/agno/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,9 @@ async def _trace_astream():


def _get_model_name(instance: Any) -> str:
provider = getattr(instance, "provider", None)
if provider:
return str(provider)
if hasattr(instance, "get_provider") and callable(instance.get_provider):
return str(instance.get_provider())
return getattr(instance.__class__, "__name__", "Model")
11 changes: 11 additions & 0 deletions py/src/braintrust/wrappers/agno/test_agno.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
from braintrust.logger import start_span
from braintrust.test_helpers import init_test_logger
from braintrust.wrappers.agno import agent as agno_agent_module
from braintrust.wrappers.agno import model as agno_model_module
from braintrust.wrappers.agno import run_helpers as agno_run_helpers_module
from braintrust.wrappers.agno import setup_agno
from braintrust.wrappers.agno import team as agno_team_module
Expand Down Expand Up @@ -112,6 +113,16 @@ def test_agno_simple_agent_execution(memory_logger):
assert llm_span["metrics"]["tokens"] == 42


def test_get_model_name_prefers_stable_provider_attribute():
class FakeModel:
provider = "OpenAI"

def get_provider(self):
return "OpenAI Chat"

assert agno_model_module._get_model_name(FakeModel()) == "OpenAI"


class TestAutoInstrumentAgno:
def test_auto_instrument_agno(self):
verify_autoinstrument_script("test_auto_agno.py")
Expand Down
Loading