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
18 changes: 18 additions & 0 deletions packages/gooddata-eval/src/gooddata_eval/cli/agentic_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
from gooddata_eval.core.agentic._trace_linker import BackgroundTraceLinker, SubmitTraceLink, run_trace_link_inline
from gooddata_eval.core.agentic.alert_skill import evaluate_agentic_alert_skill
from gooddata_eval.core.agentic.conversation import ConversationFixture, evaluate_agentic_conversation
from gooddata_eval.core.agentic.dashboard_skill import evaluate_agentic_dashboard_skill
from gooddata_eval.core.agentic.general_question import evaluate_agentic_general_question
from gooddata_eval.core.agentic.guardrail import evaluate_agentic_guardrail
from gooddata_eval.core.agentic.kda_skill import evaluate_agentic_kda_skill
Expand Down Expand Up @@ -40,6 +41,7 @@ class _LfKw(TypedDict, total=False):
"agentic_visualization", # experimental: expected_output.expected_outputs (multi-candidate)
"agentic_metric_skill",
"agentic_alert_skill",
"agentic_dashboard_skill",
"agentic_search",
"agentic_general_question",
"agentic_guardrail",
Expand Down Expand Up @@ -85,6 +87,10 @@ class _LfKw(TypedDict, total=False):
# create_key_driver_analysis with no cleanup, and while the evaluator only ever reads that
# call's ARGUMENTS -- never a created object id -- whether the platform persists anything is
# unverified. Move it to the allowlist once someone confirms it does not.
#
# agentic_dashboard_skill is absent by default rather than by evidence: gen-ai holds the draft and
# any chart it authors in conversation state and writes neither until a user saves from the UI, so
# it is a candidate for the allowlist once the dataset has runs behind it.
WORKSPACE_MUTATING_TEST_KINDS = frozenset(AGENTIC_TEST_KINDS) - PARALLEL_SAFE_TEST_KINDS


Expand Down Expand Up @@ -183,6 +189,18 @@ def _dispatch_agentic(
agent_id=agent_id,
**lf_kw,
)
elif kind == "agentic_dashboard_skill":
return evaluate_agentic_dashboard_skill(
host=host,
token=token,
workspace_id=workspace_id,
question=item.question,
expected_output=eo if isinstance(eo, dict) else {},
k=k,
gate=gate,
agent_id=agent_id,
**lf_kw,
)
elif kind == "agentic_alert_skill":
return evaluate_agentic_alert_skill(
host=host,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,14 @@
evaluate_agentic_conversation,
run_agentic_conversation,
)
from gooddata_eval.core.agentic.dashboard_skill import (
AgenticDashboardSummary,
DashboardEvaluation,
DashboardRunResult,
DashboardSkillAssertionError,
evaluate_agentic_dashboard_skill,
run_agentic_dashboard_skill,
)
from gooddata_eval.core.agentic.general_question import (
AgenticGeneralQuestionSummary,
GeneralQuestionAssertionError,
Expand Down Expand Up @@ -62,6 +70,7 @@

__all__ = [
"AgenticAlertSummary",
"AgenticDashboardSummary",
"AgenticGeneralQuestionSummary",
"AgenticGuardrailSummary",
"AgenticKdaSummary",
Expand All @@ -74,6 +83,9 @@
"ConversationAssertionError",
"ConversationFixture",
"ConversationResult",
"DashboardEvaluation",
"DashboardRunResult",
"DashboardSkillAssertionError",
"GeneralQuestionAssertionError",
"GeneralQuestionResult",
"GuardrailAssertionError",
Expand All @@ -91,6 +103,7 @@
"VisualizationAssertionError",
"evaluate_agentic_alert_skill",
"evaluate_agentic_conversation",
"evaluate_agentic_dashboard_skill",
"evaluate_agentic_general_question",
"evaluate_agentic_guardrail",
"evaluate_agentic_kda_skill",
Expand All @@ -99,6 +112,7 @@
"evaluate_agentic_visualization",
"run_agentic_alert_skill",
"run_agentic_conversation",
"run_agentic_dashboard_skill",
"run_agentic_general_question",
"run_agentic_guardrail",
"run_agentic_kda_skill",
Expand Down
Loading
Loading