Repository navigation
Conversation
|
Task A base refresh: merged current |
|
Task A base refresh: merged current |
…sks/186 Co-authored-by: TRAE CLI <traecli@bytedance.com>
…sks/186 Co-authored-by: TRAE CLI <traecli@bytedance.com> # Conflicts: # src/strands_evals/__init__.py
|
Task A base refresh: merged the latest This was a real top-level export conflict in Verification on the refreshed head:
I use a coding assistant to help implement, and I review and take responsibility for the final change. |
…sks/186 Co-authored-by: TRAE CLI <traecli@bytedance.com>
…sks/186 Co-authored-by: TRAE CLI <traecli@bytedance.com>
…sks/186 Co-authored-by: TRAE CLI <traecli@bytedance.com>
…sks/186 Co-authored-by: TRAE CLI <traecli@bytedance.com>
…sks/186 Co-authored-by: TRAE CLI <traecli@bytedance.com>
…sks/186 Co-authored-by: TRAE CLI <traecli@bytedance.com>
Description
Adds
ExperimentTrendAnalyzer, a pure analysis layer that connectsoverall_scoreand pass rate across sequential experiment runs. Today eachrun_evaluations()produces a freshEvaluationReportwith no link to prior runs, so a trajectory like0.91 -> 0.85 -> 0.78 -> 0.71yields no signal. This analyzer fits an OLS slope (viastatistics.linear_regression) to each metric over a window of runs, labels the direction (improving/degrading/stablewith a small epsilon so run-to-run jitter is not a false trend), and flagsany_regressionwhen either metric is trending down.Key points:
src/strands_evals/trend.py—ExperimentTrendAnalyzer,ExperimentTrendReport,MetricTrend,RunPoint. No changes toEvaluationReport,Experiment, orEvaluationDataStore, so nothing existing changes behavior.EvaluationReports (run order, optionalrun_ids), orfrom_files(...)reading JSON written byEvaluationReport.to_file(with an optionalwindowto keep the most recent N runs).test_passes, falling back tooverall_scorewhen a report has none; a single run is reported asstablewith a zero slope.to_dict()/to_file()for downstream reporting.__init__.Related Issues
Closes #186
Type of Change
New feature
Testing
hatch test tests/strands_evals/test_trend.py-> 28 passed. Also ranhatch test tests/strands_evals/test_trend.py tests/strands_evals/types/-> 132 passed (no regressions).hatch fmt --formatter --check-> 362 files already formatted;hatch fmt --linter-> all checks passed;mypy -p srcvia hatch-static-analysis env -> Success, no issues in 236 source files.Checklist
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.