What's Changed
🚀 Features
- Split
preserve_file_dataintoallow_uploaded_files(inbound security) and an AG-UI representation opt-in by @DouweM in #6232 - Add
GEvalevaluator and standard quality metric rubrics forLLMJudgeby @dmontagu in #5129 - Add agentic span-based evaluators (ToolCorrectness, TrajectoryMatch, ArgumentCorrectness, MaxToolCalls, MaxModelRequests) by @dmontagu in #5130
🐛 Bug Fixes
- fix(xai): update
XSearchToolhandle limit by @gyx09212214-prog in #5979 - Handle None metadata in Gradio weather agent example by @hramezani in #6214
- fix(mistral): preserve extended usage fields from API response by @felipebridge in #5693
- Avoid mutable default argument in
process_tool_callsby @kratos0718 in #6189 - feat: forward
WebSearchTool.user_locationto xAI web search by @manan-tech in #6181 - Clean up the pending task and streams on
KeyboardInterruptin synchronousrun_until_completewrappers by @DouweM in #6198 - fix(tool-search): drop redundant
descriptionfromToolSearchMatchby @serozhenka in #5654 - fix(temporal): pass through genai_prices and httpx2 for workflow cost() by @syf2211 in #6219
- fix(evals): reject non-positive
max_concurrencyby @VectorPeak in #6228 - Lazy-start
run_stream_events()background task on first event iteration by @DouweM in #6234
📦 Dependencies
- Bump
genai-pricesto >=0.0.69 by @adtyavrdhn in #6212
New Contributors
- @raullenchai made their first contribution in #5008
- @gyx09212214-prog made their first contribution in #5979
- @felipebridge made their first contribution in #5693
- @kratos0718 made their first contribution in #6189
- @serozhenka made their first contribution in #5654
Full Changelog: v2.3.0...v2.4.0