agentx-python 0.6.24__tar.gz → 0.6.25__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentx_python-0.6.24 → agentx_python-0.6.25}/PKG-INFO +1 -1
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/evaluations/datasets.py +11 -1
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/evaluations/models.py +5 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/evaluations/results.py +3 -0
- agentx_python-0.6.25/agentx/version.py +1 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx_python.egg-info/PKG-INFO +1 -1
- agentx_python-0.6.24/agentx/version.py +0 -1
- {agentx_python-0.6.24 → agentx_python-0.6.25}/LICENSE +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/README.md +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/__init__.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/agentx.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/cli.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/evaluations/__init__.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/evaluations/_term.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/evaluations/adapters/__init__.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/evaluations/adapters/http_endpoint.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/evaluations/adapters/precomputed.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/evaluations/adapters/raw.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/evaluations/client.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/evaluations/evaluation_settings.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/evaluations/prompts.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/evaluations/redaction.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/evaluations/reporting.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/evaluations/runner.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/evaluations/tracing.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/exceptions.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/feedback.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/integrations/__init__.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/integrations/_traced_call.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/integrations/anthropic.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/integrations/autogen.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/integrations/crewai.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/integrations/databricks.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/integrations/google_adk.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/integrations/google_genai.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/integrations/langchain.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/integrations/litellm.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/integrations/llamaindex.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/integrations/moveworks.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/integrations/openai.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/integrations/openai_agents.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/monitor/__init__.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/monitor/client.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/monitor/models.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/monitor/online_evaluators.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/monitor/patterns.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/monitor/profile.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/monitor/signals.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/outcomes.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/py.typed +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/resources/__init__.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/resources/agent.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/resources/conversation.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/resources/workforce.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/tracing/__init__.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/tracing/ci_types.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/tracing/ingest_client.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/tracing/tracer.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx/util.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx_python.egg-info/SOURCES.txt +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx_python.egg-info/dependency_links.txt +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx_python.egg-info/entry_points.txt +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx_python.egg-info/not-zip-safe +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx_python.egg-info/requires.txt +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/agentx_python.egg-info/top_level.txt +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/setup.cfg +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/setup.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/tests/test_integration.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/tests/test_integrations.py +0 -0
- {agentx_python-0.6.24 → agentx_python-0.6.25}/tests/test_span_tree.py +0 -0
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import csv
|
|
4
4
|
import logging
|
|
5
5
|
from pathlib import Path
|
|
6
|
-
from typing import Any, Dict, List, Optional, TYPE_CHECKING
|
|
6
|
+
from typing import Any, Dict, List, Optional, TYPE_CHECKING, Union
|
|
7
7
|
|
|
8
8
|
from agentx.evaluations.models import Dataset
|
|
9
9
|
|
|
@@ -88,6 +88,7 @@ class DatasetBuilder:
|
|
|
88
88
|
smoke_test_guidance: Optional[str] = None,
|
|
89
89
|
expected_tools: Optional[List[str]] = None,
|
|
90
90
|
trajectory_match_mode: str = "strict",
|
|
91
|
+
expected_retrieval_context: Optional[Union[str, List[str]]] = None,
|
|
91
92
|
) -> "DatasetBuilder":
|
|
92
93
|
"""Add a case. `judge_guideline` is optional grading guidance specific to this question.
|
|
93
94
|
|
|
@@ -99,6 +100,13 @@ class DatasetBuilder:
|
|
|
99
100
|
any order), "superset" (all expected present, extras allowed), or "subset" (no unexpected
|
|
100
101
|
calls, missing allowed).
|
|
101
102
|
|
|
103
|
+
`expected_retrieval_context` (string or list of chunk strings) declares what a correct
|
|
104
|
+
retriever should have fetched for this case. When the run's result carries actual
|
|
105
|
+
retrieved context (a `retrieval_context` return value, or a linked trace with retrieval
|
|
106
|
+
spans), the engine compares the two with token-level Jaccard similarity and reports a
|
|
107
|
+
deterministic "Context match (jaccard)" scorer row (0-1) - a cheap retriever regression
|
|
108
|
+
check with no LLM judge call.
|
|
109
|
+
|
|
102
110
|
`smoke_test_count`, when set (1-10), asks this question that many extra ways each
|
|
103
111
|
evaluation run, LLM-paraphrased server-side, to catch agents that are brittle to phrasing
|
|
104
112
|
rather than genuinely wrong. `smoke_test_guidance` optionally steers what kind of variants
|
|
@@ -123,6 +131,8 @@ class DatasetBuilder:
|
|
|
123
131
|
main["smokeTest"]["guidance"] = smoke_test_guidance
|
|
124
132
|
if expected_tools:
|
|
125
133
|
main["expectedTrajectory"] = {"tools": expected_tools, "mode": trajectory_match_mode}
|
|
134
|
+
if expected_retrieval_context:
|
|
135
|
+
main["expectedRetrievalContext"] = expected_retrieval_context
|
|
126
136
|
self._payload["questions"].append(
|
|
127
137
|
{
|
|
128
138
|
"main_question": main,
|
|
@@ -346,6 +346,11 @@ class EvaluationResult(BaseModel):
|
|
|
346
346
|
# the dashboard's "Message Trace Details -> Execution Timeline" render the full execution
|
|
347
347
|
# trace for this case, not just the lightweight observable_trace events above.
|
|
348
348
|
trace_id: Optional[str] = Field(default=None, alias="traceId")
|
|
349
|
+
# What the agent actually retrieved for THIS case (a string, or list of chunk strings) - the
|
|
350
|
+
# {context} the RAG metric pack's judges grade faithfulness/relevancy against. Overrides the
|
|
351
|
+
# question's static retrievalContext; when absent, the engine falls back to the linked
|
|
352
|
+
# trace's recorded retrieval spans (trace_id above), then the case's pinned context.
|
|
353
|
+
retrieval_context: Optional[Any] = Field(default=None, alias="retrievalContext")
|
|
349
354
|
# Smoke test: set by execute() from the originating EvaluationCase, not something you need to
|
|
350
355
|
# set yourself when returning a plain str/dict from your callable.
|
|
351
356
|
is_smoke_test_variant: Optional[bool] = Field(default=None, alias="isSmokeTestVariant")
|
|
@@ -37,6 +37,7 @@ def normalize_result(
|
|
|
37
37
|
output: Optional[dict] = None
|
|
38
38
|
trace = None
|
|
39
39
|
trace_id: Optional[str] = None
|
|
40
|
+
retrieval_context = None
|
|
40
41
|
metadata: Optional[dict] = None
|
|
41
42
|
error: Optional[ResultError] = None
|
|
42
43
|
input_tokens: Optional[int] = None
|
|
@@ -55,6 +56,7 @@ def normalize_result(
|
|
|
55
56
|
trace = build_trace(raw.get("trace") or raw.get("observable_trace"))
|
|
56
57
|
trace_id_raw = raw.get("trace_id") or raw.get("traceId")
|
|
57
58
|
trace_id = str(trace_id_raw) if trace_id_raw else None
|
|
59
|
+
retrieval_context = raw.get("retrieval_context") or raw.get("retrievalContext")
|
|
58
60
|
meta_raw = raw.get("metadata")
|
|
59
61
|
if isinstance(meta_raw, dict):
|
|
60
62
|
metadata = redact_dict(meta_raw)
|
|
@@ -108,6 +110,7 @@ def normalize_result(
|
|
|
108
110
|
),
|
|
109
111
|
metadata=metadata,
|
|
110
112
|
traceId=trace_id,
|
|
113
|
+
retrievalContext=retrieval_context,
|
|
111
114
|
isSmokeTestVariant=case.is_smoke_test_variant,
|
|
112
115
|
smokeTestVariantText=case.smoke_test_variant_text,
|
|
113
116
|
)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
VERSION = "0.6.25"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
VERSION = "0.6.24"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|