Changelog
New Features:
- Async MySQL: Added support for
AsyncMySQLDbwith compatibility for theasyncmydriver. See the docs. - AgentAsJudgeEval: LLM as a judge evaluation system that judges agent outputs against custom criteria with binary (pass/fail) or numeric (1-10) scoring, supporting standalone runs, post-hooks, background execution, and custom evaluator agents. See the docs.
- Introduction: Added an Introduction param to Agent and Teams that allows users to set the first “Assistant” message with support for Agent-OS coming soon.
- OpenRouter reasoning: Added support for reasoning messages coming from OpenRouter.
Improvements:
- Skip database schema creation: You can now set
create_schema=Falsewhen initializing your database class (e.g.PostgresDb) to skip automatic schema creation. This is useful for environments where the schema needs to be managed externally. - Support
get_step_outputfor nested steps in Parallel groups: Add recursive search toget_step_output()to find steps nested inside Parallel, Condition, Router, Loop, and Steps. - Handle Gemini malformed tool calls: Added logic to automatically detect Gemini’s malformed tool calls, add a guidance message for the model to avoid the error, and retry the failed request.
- Support for DeepSeek thinking mode with tools: Added the
reasoning_contentto the message for thinking mode. run_idparam in run methods: Added arun_idparameter to the run and arun methods in the Agent, Team and Workflow classes, to set the id of the run instead of automatically generating one.- Knowledge Sync Support: Added true sync support for all
add_content_functions instead of wrapping withasyncio
Bug Fixes:
- Parallel step does not aggregate inner steps' content: Fixed parallel step in workflow to pass aggregated content to next step and maintain the chained behavior.
- Pre-hooks triggering retries: Fixed an error where Agent runs would be unnecessary retried when a
InputCheckErrorwas raised withretries=True.
What's Changed
- fix: auto db provisioning by @ysolanky in #5619
- feat: add AsyncMySQLDb by @harrytran001 in #5425
- fix: ensure table auto-creation on async Postgres upserts by @xpander-moriel in #5633
- chore: update parallel step to pass aggregated content to next step by @kausmeows in #5636
- fix: workflow run not saving to DB with status RUNNING by @kausmeows in #5646
- fix: Firecrawl tools limit by @Mustafa-Esoofally in #5639
- fix: agent retries by @manuhortet in #5645
- fix: get pdf files output by @anuragts in #5316
- feat: add create_schema parameter to skip automatic schema creation by @alec-drw in #5649
- feat: support get_step_output for nested steps in Parallel groups by @maorkipnis in #5635
- chore: add unit tests for the HackerNewsTools toolkit by @edlsh in #5638
- [fix] Correct AWS credential validation in Bedrock Claude model by @edlsh in #5653
- chore: add a cookbook to show sending traces to different projects in arize by @kausmeows in #5584
- feat: add introduction by @ysolanky in #5338
- feat: handle Gemini malformed tool calls by @manuhortet in #5652
- [fix] support enabling thinking mode with tool calls for deepseek v3.2 by @pengye91 in #5618
- feat: async mysql traces by @ysolanky in #5631
- feat: support OpenRouter reasoning by @zhiheng-yu in #5641
- feat: add run_id parameter to run methods by @alikhtag in #5627
- Feat: Implement pure sync knowledge methods by @willemcdejongh in #5642
- feat: AgentAsJudge evals [SDK-349] by @harshsinha03 in #5629
- chore: Release 2.3.9 by @dirkbrnd in #5651
New Contributors
- @maorkipnis made their first contribution in #5635
- @edlsh made their first contribution in #5638
- @pengye91 made their first contribution in #5618
- @zhiheng-yu made their first contribution in #5641
- @alikhtag made their first contribution in #5627
Full Changelog: v2.3.8...v2.3.9