Skip to content

feat(gooddata-eval): record the turns and steps each agentic run took - #1813

Merged
myhoai merged 2 commits into
masterfrom
qa-29110-effort-turns-steps
Sep 15, 2026
Merged

myhoai merged 2 commits into
masterfrom
qa-29110-effort-turns-steps

Conversation

@myhoai

@myhoai myhoai commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

The effort comparison in gdc-nas reads these. A pass/fail bit cannot separate two reasoning efforts, while the step count moves with the effort, and the turn count tells a wrong answer from a run max_iterations cut short.

alert_skill and kda_skill gained the counters; metric_skill and conversation already had them and only needed the write. conversation also logs clarification_turns, since its total includes the turns its fixture asks for.

Summary by CodeRabbit

  • Bug Fixes

    • Agentic alert, KDA, conversation, metric, and visualization evaluations now report turn and reasoning-step totals as accurate integer values.
    • Evaluation telemetry records integer turn and reasoning-step scores, including clarification turns where applicable.
    • Run metrics now correctly include clarification and creation turns and report zero activity when a run fails before producing a response.
  • Tests

    • Added regression coverage for effort metrics, clarification handling, failed runs, and telemetry values across agentic evaluations.

@coderabbitai

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Essentials

Run ID: e861d470-c0ab-4cd2-bce0-7851d29bf496

📥 Commits

Reviewing files that changed from the base of the PR and between fa82a6a and 99935f9.

📒 Files selected for processing (10)
  • packages/gooddata-eval/src/gooddata_eval/core/agentic/alert_skill.py
  • packages/gooddata-eval/src/gooddata_eval/core/agentic/conversation.py
  • packages/gooddata-eval/src/gooddata_eval/core/agentic/kda_skill.py
  • packages/gooddata-eval/src/gooddata_eval/core/agentic/metric_skill.py
  • packages/gooddata-eval/src/gooddata_eval/core/agentic/visualization.py
  • packages/gooddata-eval/tests/test_agentic_alert_skill.py
  • packages/gooddata-eval/tests/test_agentic_conversation.py
  • packages/gooddata-eval/tests/test_agentic_kda_skill.py
  • packages/gooddata-eval/tests/test_agentic_metric_skill.py
  • packages/gooddata-eval/tests/test_agentic_visualization.py
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/gooddata-eval/tests/test_agentic_alert_skill.py

Included review availability: 3 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 4 reviews per hour.


📝 Walkthrough

Walkthrough

Agentic conversation and skill results now preserve turn and reasoning-step counts as integers. Langfuse scoring receives these numeric totals. Tests cover clarification, failed-send, and visualization cases.

Changes

Agentic metrics

Layer / File(s) Summary
Conversation metric accumulation and scoring
packages/gooddata-eval/src/gooddata_eval/core/agentic/conversation.py, packages/gooddata-eval/tests/test_agentic_conversation.py
ConversationResult uses integer reasoning-step totals. Conversation scoring records integer turns, steps, and clarification turns. Tests cover proposal and clarification responses.
Skill run metric accumulation and scoring
packages/gooddata-eval/src/gooddata_eval/core/agentic/alert_skill.py, packages/gooddata-eval/src/gooddata_eval/core/agentic/kda_skill.py, packages/gooddata-eval/src/gooddata_eval/core/agentic/metric_skill.py, packages/gooddata-eval/tests/test_agentic_alert_skill.py, packages/gooddata-eval/tests/test_agentic_kda_skill.py, packages/gooddata-eval/tests/test_agentic_metric_skill.py
Alert, KDA, and metric results use integer turn and reasoning-step totals. Accumulators no longer convert reasoning-step counts to floats. Trace scoring records numeric totals.
Visualization metric types and coverage
packages/gooddata-eval/src/gooddata_eval/core/agentic/visualization.py, packages/gooddata-eval/tests/test_agentic_visualization.py
Visualization run results and counters use integers. Tests expect integer turn and reasoning-step values.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~15 minutes

Change: Feature

Merge Risk: ⚪ Minimal · up to 99935

The counter updates consistently use integer values across results and trace scoring, with corresponding test coverage. No merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 57.89% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 38 functions across 10 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: recording turn and reasoning-step counts for each agentic run.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch

A rabbit counts each turn with care
Integer steps hop through the air
Langfuse logs the numbers bright
Clarifications land just right
Tests nibble bugs from every run

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Sep 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.49%. Comparing base (8bfa6ff) to head (99935f9).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1813      +/-   ##
==========================================
+ Coverage   82.30%   82.49%   +0.19%     
==========================================
  Files         283      283              
  Lines       20421    20448      +27     
==========================================
+ Hits        16807    16869      +62     
+ Misses       3614     3579      -35     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@myhoai
myhoai force-pushed the qa-29110-effort-turns-steps branch from d3ea699 to 7543628 Compare September 15, 2026 09:55
@myhoai myhoai changed the title feat(eval): record the turns and reasoning steps each agentic run took feat(gooddata-eval): record the turns and steps each agentic run took Sep 15, 2026
The effort comparison in gdc-nas reads these. A pass/fail bit cannot separate
two reasoning efforts, while the step count moves with the effort, and the turn
count tells a wrong answer from a run max_iterations cut short.

alert_skill and kda_skill gained the counters; metric_skill and conversation
already had them and only needed the write. conversation also logs
clarification_turns, since its total includes the turns its fixture asks for.

The tests cover the counters on every skill and assert the counts reach
Langfuse — the dataclass fields alone would pass with the score writes deleted.
@myhoai
myhoai force-pushed the qa-29110-effort-turns-steps branch from 7543628 to fa82a6a Compare September 15, 2026 10:00
Comment on lines +480 to +481
total_turns: float = 0.0
total_steps: float = 0.0

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: does this needs to be float?

Review nit on alert_skill: these are counts, and a float reads as though a
fraction of a turn or of a reasoning step were possible. conversation already
counted its clarification turns as int.

Applied to every skill, including the two fields visualization and metric_skill
already had — leaving those as float would have split the same two score names
across two types.

Test literals drop the .0, and one score test pins the type with isinstance:
`2 == 2.0` is True, so the literals alone would not catch a regression.
@myhoai
myhoai merged commit b145e1a into master Sep 15, 2026
14 checks passed
@myhoai
myhoai deleted the qa-29110-effort-turns-steps branch September 15, 2026 12:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants