Changelog
New Features:
- CometAPI: Added support for CometAPI as a model provider.
Improvements:
- Access dependencies on tool:
dependencies
are now available on custom tools as a built-in argument. See an example. - V1 → V2 Migration Script: Updated the migration script by introducing batching. This makes it significantly more performant for large databases.
- Support multiple text_contents on
add_contents()
in Knowledge. - MultiMCPTools: Added
allow_partial_failure
flag toMultiMCPTools
toolkit
Bug Fixes:
- Dependencies in Teams: Ensure dependencies are correctly passed through to member agents to reference.
- Tool call limit on default reasoning agent: Ensures that a
tool_call_limit
can be passed to the default reasoning agent, avoiding potential costly tool call loops. - Fix string encoding: Addresses issue where string encoding broke when adding Chinese string content. Encoding now reliably works via utf-8 encoding.
- Fix
run_input
not being populated in session runs endpoint: The/sessions/<session_id>/runs
endpoint does not returnrun_input
in case of error as it references it fromstep_executor_runs
and its empty if the workflow hasn't run yet, so in this case we fallback to directly get it frominput
. - Fix State Precedence for Agents/Teams: Fixed issues related to state from the database that would override state passed on
agent.run
. - Fix early stop in workflow to return correct last output: early stop functionality in workflow was not updating the last output properly for non stream cases
- Fixed
OpenAIResponses
to remove duplicate messages for reasoning models:- The
OpenAIResponses
API has the (default enabled) feature that they store the conversation server-side and we send aprevious_response_id
with any followup questions. - Agno's
OpenAIResponses
class implements this feature by looking through the message history, finding the most recent assistant response, and using that message ID asprevious_response_id
. This part works. However, we were then not deleting the prior messages from the request it sends to OpenAI. As a result OpenAI concatenates its own message history with the message history sent by Agno, resulting in an exponential number of repeated messages as the conversation continues.
- The
What's Changed
- fix: langchaindb and llamaindex by @Ayush0054 in #4687
- feat: custom middleware agent os cookbook by @kausmeows in #4689
- fix: resolve circular import between Vectordb and knowledge modules by @SamJupe in #4696
- fix: Always encode string content as UTF-8 by @RockPaperSmittie in #4697
- fix: Handle extra_data in migration scripts by @willemcdejongh in #4654
- chore: add workflow id in workflow_data by @kausmeows in #4698
- fix: system message role bug fix by @Ayush0054 in #4701
- fix: Pass dependencies correctly to member agents by @dirkbrnd in #4700
- fix: Allow for passing tool_call_limit to default reasoning agent. by @RockPaperSmittie in #4703
- feat: access dependencies on tool by @kausmeows in #4706
- fix: favor session db state for subsequent runs by @RockPaperSmittie in #4704
- [fix] Fix claude reasoning tool user by @KeraStudios in #4709
- fix: Add fix for parameters on agentic filtering by @dirkbrnd in #4702
- [Fix] async ollama client with different Host not used correctly by @Mustafa-Esoofally in #4711
- fix: run_input not being populated in session runs endpoint if workflow raises error by @kausmeows in #4730
- Revert "fix: favor session db state for subsequent runs" by @dirkbrnd in #4732
- Fix: Ensure session state precedence by @RockPaperSmittie in #4735
- [fix] Fix reasoning content aggregation and streaming by @jtalmi in #4708
- [feat] Add CometAPI as a new model provider by @TensorNull in #4682
- fix: Gemini structured output by @dirkbrnd in #4647
- [Fix] Stop team task by @Nishant-Sagar in #4727
- fix: tool call mis match fix for ollama cloud by @Ayush0054 in #4733
- feat: fix initialisation of the sentence transformer client directly in get_embedding method. by @Ayush0054 in #4738
- [fix] Add message_id handling for correct tool call ordering by @Mustafa-Esoofally in #4664
- fix: early stop in workflow to return correct last output by @kausmeows in #4743
- fix: remove duplicate messages in OpenAIResponses by @mishramonalisha76 in #4739
- chore: OpenAI responses update by @kausmeows in #4744
- feat: add allow_partial_failure option to MultiMCPTools by @yinglj in #3627
- docs: added maxim support for observability by @akmadan in #3831
- feat: Support text_contents in add_contents by @willemcdejongh in #4695
- chore: Release 2.0.8 by @ysolanky in #4710
New Contributors
- @jtalmi made their first contribution in #4708
- @TensorNull made their first contribution in #4682
- @Nishant-Sagar made their first contribution in #4727
- @yinglj made their first contribution in #3627
- @akmadan made their first contribution in #3831
Full Changelog: v2.0.7...v2.0.8