Skip to content

evaluation/__init__.py unconditionally imports optional strands dependencies #340

@jariy17

Description

@jariy17

Bug

src/bedrock_agentcore/evaluation/__init__.py unconditionally imports from strands_agents_evals and span_to_adot_serializer:

from bedrock_agentcore.evaluation.integrations.strands_agents_evals.evaluator import (
    StrandsEvalsAgentCoreEvaluator,
    create_strands_evaluator,
)
from bedrock_agentcore.evaluation.span_to_adot_serializer import (
    convert_strands_to_adot,
)

However, strands-agents and strands-agents-evals are declared as optional dependencies in pyproject.toml:

[project.optional-dependencies]
strands-agents = ["strands-agents>=1.1.0"]
strands-agents-evals = ["strands-agents-evals>=0.1.0"]

This causes an ImportError when a user installs bedrock-agentcore without the strands extras and tries to use EvaluationRunner or EvaluationClient:

from bedrock_agentcore.evaluation import EvaluationRunner
  -> ImportError (strands_agents_evals not installed)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions