You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Summary evaluators with a defaulted extra parameter receive raw Run/Example lists instead of mapped outputs #22
langsmith at f6b73d8374b30b6dd69b703d4c1e3617ed2fb6e6 (main). Reproduced offline.
Reproduction
In _normalize_summary_evaluator (evaluator.py), the validity check accepts parameters that have defaults, but the later elif not all(pname in supported_args for pname in all_args) branch does not. A summary evaluator with an extra defaulted parameter therefore takes the "backwards compatibility" branch and is returned unwrapped, so outputs is a list[Run] rather than a list of output dicts. The row-level normalizer accepts defaulted params in the equivalent condition.
Both evaluators give 1.0: the defaulted parameter should not change how outputs and reference_outputs are mapped. There is no error, so the metric is silently wrong.
A possible fix is to mirror the row-level condition in the elif: not all(p in supported_args or p in args_with_defaults for p in all_args), plus a test.
Activity
thibautlehmann commentedon Oct 16, 2026
Hey Muneeb Ullah (@moneebullah25), langsmith-sdk is archived, so I moved this issue to langchain-ai/langsmith-python, where the SDK now lives 🙏