-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Comparing changes
Open a pull request
base repository: agno-agi/agno
base: v2.1.3
head repository: agno-agi/agno
compare: v2.1.4
- 19 commits
- 42 files changed
- 13 contributors
Commits on Oct 9, 2025
-
[feat] Add support for custom events in AGUI interface (#4960)
## Summary Added support for custom events in the AGUI interface to enable more flexible event handling. As specified in the AG-UI documentation here https://docs.ag-ui.com/sdk/js/core/events#customevent ## Type of change - [ ] Bug fix - [ ] New feature - [ ] Breaking change - [x] Improvement - [ ] Model update - [ ] Other: --- ## Checklist - [x] Code complies with style guidelines - [x] Ran format/validation scripts (`./scripts/format.sh` and `./scripts/validate.sh`) - [x] Self-review completed - [x] Documentation updated (comments, docstrings) - [x] Examples and guides: Relevant cookbook examples have been included or updated (if applicable) - [x] Tested in clean environment - [x] Tests added/updated (if applicable) --------- Co-authored-by: Kristian Schwienbacher <kristian.schwienbacher@raft.ai> Co-authored-by: manu <manuhortet@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for ec84823 - Browse repository at this point
Copy the full SHA ec84823View commit details -
[Fix]: Remove unused from and add missing fields into schemas in Dyna…
…moDB + fix Dynamo Serialization and Query Syntax (#4771) ## Summary Issue number: #4769 Upon working on DynamoDB as DB integration into my application, I realised there are some issues with it - DynamoDB only allows defining attributes that act as keys e.g. KeySchema or any GSI KeySchema. - Missing required attribute `workflow_id` in UserMemories Table. - Wrong serialisation: double stringify json and bool - Wrong DynamoDB scan syntax ## Type of change - [X] Bug fix - [ ] New feature - [ ] Breaking change - [ ] Improvement - [ ] Model update - [ ] Other: --- ## Checklist - [X] Code complies with style guidelines - [X] Ran format/validation scripts (`./scripts/format.sh` and `./scripts/validate.sh`) - [X] Self-review completed - [ ] Documentation updated (comments, docstrings) - [ ] Examples and guides: Relevant cookbook examples have been included or updated (if applicable) - [X] Tested in clean environment - [ ] Tests added/updated (if applicable) --- ## Additional Notes Add any important context (deployment instructions, screenshots, security considerations, etc.) --------- Co-authored-by: Willem Carel de Jongh <willemcarel@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 787e2bc - Browse repository at this point
Copy the full SHA 787e2bcView commit details -
Configuration menu - View commit details
-
Copy full SHA for b8dc190 - Browse repository at this point
Copy the full SHA b8dc190View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9cba1fb - Browse repository at this point
Copy the full SHA 9cba1fbView commit details -
Configuration menu - View commit details
-
Copy full SHA for f3c9ee1 - Browse repository at this point
Copy the full SHA f3c9ee1View commit details -
Fix: Dictionary Key Order Causing Redundant Cache Files (#4907)
## Summary fixes #4822 The current caching in `agno/tools/function.py` used `str()` to serialize dictionary arguments for cache key generation. Since str() preserves dictionary key order, identical data with different key orders produced different cache keys. Replaced str() with json.dumps(sort_keys=True) to ensure serialization regardless of dictionary key order (If applicable, issue number: #\_\_\_\_) ## Type of change - [x] Bug fix - [ ] New feature - [ ] Breaking change - [ ] Improvement - [ ] Model update - [ ] Other: --- ## Checklist - [x] Code complies with style guidelines - [x] Ran format/validation scripts (`./scripts/format.sh` and `./scripts/validate.sh`) - [x] Self-review completed - [x] Documentation updated (comments, docstrings) - [x] Examples and guides: Relevant cookbook examples have been included or updated (if applicable) - [x] Tested in clean environment - [x] Tests added/updated (if applicable) --- ## Additional Notes Add any important context (deployment instructions, screenshots, security considerations, etc.) Co-authored-by: manu <manuhortet@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 553426e - Browse repository at this point
Copy the full SHA 553426eView commit details -
fix: handle team sessions with no runs (#4951)
Without the minor update in line 92, we carry `runs = None` which breaks in line 97 when trying to iterate on runs
Configuration menu - View commit details
-
Copy full SHA for 3d3ef60 - Browse repository at this point
Copy the full SHA 3d3ef60View commit details -
fix: ensure the RunCompletedEvent is the last created event (#4959)
Reorganize order of actions in the streaming methods of Agent and Team, for the `RunCompletedEvent` to be created last. Without this change, the`created_at` of the `RunCompletedEvent` is smaller than the one in the memory events, creating confusion and problems in the OS.
Configuration menu - View commit details
-
Copy full SHA for 47a8714 - Browse repository at this point
Copy the full SHA 47a8714View commit details -
chore: customer research workflow agent os (#4950)
## Summary - customer research workflow example with parallel steps ## Type of change - [ ] Bug fix - [ ] New feature - [ ] Breaking change - [ ] Improvement - [ ] Model update - [x] Other: examples update --- ## Checklist - [x] Code complies with style guidelines - [x] Ran format/validation scripts (`./scripts/format.sh` and `./scripts/validate.sh`) - [x] Self-review completed - [ ] Documentation updated (comments, docstrings) - [x] Examples and guides: Relevant cookbook examples have been included or updated (if applicable) - [x] Tested in clean environment - [ ] Tests added/updated (if applicable) --- ## Additional Notes Add any important context (deployment instructions, screenshots, security considerations, etc.)
Configuration menu - View commit details
-
Copy full SHA for dfc328c - Browse repository at this point
Copy the full SHA dfc328cView commit details -
chore: deactivate CI AWS tests (#4969)
Co-authored-by: Yash Pratap Solanky <101447028+ysolanky@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 34a5bab - Browse repository at this point
Copy the full SHA 34a5babView commit details
Commits on Oct 10, 2025
-
chore: update parallel and custom function step events streaming logic (
#4954) ## Summary - from sdk we pass workflow_context in case of streaming (`step.py`) when we do `self.active_executor.run` . This workflow context consists of things like step id, step name, step index etc which is then put in RunOutputEvent used by FE. - Now in case of a custom function step, which does `agent.run()` inside it. this agent run is completely unanimous and not in the flow of our execution. like the user decides to trigger it. and we cant directly inject that workflow_context into this run, so - in case of this step even if we yield events the FE wont know about which step it belongs to because it doesn't have access to that `step_id` etc info. Now we inspect all events that are yielded during the workflow run, and set the workflow context variables on them before yielding upwards. - Also updates parallel step event streaming logic to immediately yield events as they come so that FE can catch and display in real time. - Old approach - collect all, yield at end - New approach - stream immediately (used queues as we cant yield directly from async running tasks) ## Type of change - [ ] Bug fix - [ ] New feature - [ ] Breaking change - [x] Improvement - [ ] Model update - [ ] Other: --- ## Checklist - [ ] Code complies with style guidelines - [ ] Ran format/validation scripts (`./scripts/format.sh` and `./scripts/validate.sh`) - [ ] Self-review completed - [ ] Documentation updated (comments, docstrings) - [ ] Examples and guides: Relevant cookbook examples have been included or updated (if applicable) - [ ] Tested in clean environment - [ ] Tests added/updated (if applicable) --- ## Additional Notes Add any important context (deployment instructions, screenshots, security considerations, etc.)
Configuration menu - View commit details
-
Copy full SHA for 02af061 - Browse repository at this point
Copy the full SHA 02af061View commit details -
fix: change dimensions type to Optional[int] in FastEmbedEmbedder (#4981
) ## Summary Describe key changes, mention related issues or motivation for the changes. (If applicable, issue number: #\_\_\_\_) ## Type of change - [ ] Bug fix - [ ] New feature - [ ] Breaking change - [ ] Improvement - [ ] Model update - [ ] Other: --- ## Checklist - [ ] Code complies with style guidelines - [ ] Ran format/validation scripts (`./scripts/format.sh` and `./scripts/validate.sh`) - [ ] Self-review completed - [ ] Documentation updated (comments, docstrings) - [ ] Examples and guides: Relevant cookbook examples have been included or updated (if applicable) - [ ] Tested in clean environment - [ ] Tests added/updated (if applicable) --- ## Additional Notes Add any important context (deployment instructions, screenshots, security considerations, etc.) Co-authored-by: manu <manuhortet@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 9ac2098 - Browse repository at this point
Copy the full SHA 9ac2098View commit details -
chore: cancel previous workflow runs on new commits (#4980)
Add concurrency control to prevent multiple workflow runs from the same branch running simultaneously. Meaning: new commits will automatically cancel any in-progress workflows coming from the same branch.
Configuration menu - View commit details
-
Copy full SHA for d9b70ad - Browse repository at this point
Copy the full SHA d9b70adView commit details -
feat: add Google Drive toolkit (#4658)
## Summary This PR introduces an enhancement to the agno repository by adding a Google Drive toolkit. The new toolkit enables interaction with Google Drive, providing methods to list files, upload files, and download files. Motivation: To allow seamless integration and management of Google Drive files within the agno platform, improving user productivity and convenience. Issue: #4232 ## Type of change - [ ] Bug fix - [x] New feature - [ ] Breaking change - [x] Improvement - [ ] Model update - [ ] Other: --- ## Checklist - [x] Code complies with style guidelines - [x] Ran format/validation scripts (`./scripts/format.sh` and `./scripts/validate.sh`) - [x] Self-review completed - [x] Documentation updated (comments, docstrings) - [x] Examples and guides: Relevant cookbook examples have been included or updated (if applicable) - [x] Tested in clean environment - [x] Tests added/updated (if applicable) --- ## Additional Notes - Added Google Drive toolkit with `list_files`, `upload_file`, and `download_file` methods. - Integrated API authentication and robust error handling. - Provided comprehensive documentation and in-code comments for new toolkit methods. - No breaking changes introduced. - Toolkit usage is documented in the relevant code files. - Reviewers: Please verify API setup and test each method for expected behavior. - Ensure Google Drive API credentials are set up before testing. --------- Co-authored-by: manu <manuhortet@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 8414b65 - Browse repository at this point
Copy the full SHA 8414b65View commit details -
fix: run tool post-hooks in case of tool failure (#4926)
## Summary Fixed a critical bug (#4925) where tool post-hooks were not executing when tool execution failed with an exception. Post-hooks are now guaranteed to execute regardless of success or failure, matching the documented behavior and enabling important use cases like cleanup, error logging, and retry logic. **The Problem:** - Post-hooks were called AFTER the try/except block - When exceptions occurred, the code returned early from the except block - Post-hook execution was skipped entirely on tool failures **The Solution:** - Moved post-hook execution into a `finally` block - Post-hooks now execute regardless of success/failure - `AgentRunException` is properly re-raised after post-hook execution - Applied fix to both sync (`execute()`) and async (`aexecute()`) methods This fix enables critical use cases that were previously broken: - **Cleanup operations** - Release resources even when tools fail - **Error logging** - Track and log tool failures - **Metrics/monitoring** - Measure tool failure rates - **Retry logic** - Implement retry mechanisms in post-hooks (Related to the documented behavior at [function.py:95-97](libs/agno/agno/tools/function.py#L95-L97)) ## Type of change - [x] Bug fix - [ ] New feature - [ ] Breaking change - [ ] Improvement - [ ] Model update - [ ] Other: --- ## Checklist - [x] Code complies with style guidelines - [ ] Ran format/validation scripts (`./scripts/format.sh` and `./scripts/validate.sh`) - [x] Self-review completed - [x] Documentation updated (comments, docstrings) - [x] Examples and guides: Relevant cookbook examples have been included or updated (if applicable) - [x] Tested in clean environment - [x] Tests added/updated (if applicable) --- ## Additional Notes ### Testing - All 66 existing tests pass without modification (35 unit tests + 31 integration tests) - Verified both sync and async execution paths - Confirmed post-hooks execute on: - Regular exceptions (`ValueError`, `RuntimeError`, etc.) - `AgentRunException` (which is re-raised after post-hook) - Successful execution (existing behavior maintained) ### Code Changes Files modified: - `libs/agno/agno/tools/function.py` - `execute()` method (lines 776-850) - `aexecute()` method (lines 974-1058) ### Backward Compatibility ✅ **Fully backward compatible** - All existing tests pass without modification. The change only fixes the bug where post-hooks weren't executing on failures. ### Related Cookbook Examples The fix enables the retry logic example at `cookbook/tools/other/retry_tool_call_from_post_hook.py` to work correctly when tools throw exceptions. --------- Co-authored-by: manu <manuhortet@gmail.com> Co-authored-by: Kaustubh <shuklakaustubh84@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 216340e - Browse repository at this point
Copy the full SHA 216340eView commit details -
chore: store events for agent os in workflows (#4982)
## Summary - like agent and team, store_events should be true by default for agent os in workflows ## Type of change - [ ] Bug fix - [ ] New feature - [ ] Breaking change - [x] Improvement - [ ] Model update - [ ] Other: --- ## Checklist - [ ] Code complies with style guidelines - [ ] Ran format/validation scripts (`./scripts/format.sh` and `./scripts/validate.sh`) - [ ] Self-review completed - [ ] Documentation updated (comments, docstrings) - [ ] Examples and guides: Relevant cookbook examples have been included or updated (if applicable) - [ ] Tested in clean environment - [ ] Tests added/updated (if applicable) --- ## Additional Notes Add any important context (deployment instructions, screenshots, security considerations, etc.)
Configuration menu - View commit details
-
Copy full SHA for 07c80ae - Browse repository at this point
Copy the full SHA 07c80aeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 25b2b7d - Browse repository at this point
Copy the full SHA 25b2b7dView commit details -
feat: workflow history (#4785)
## Summary Workflow level- ```python Workflow( ... add_workflow_history_to_steps=True, num_history_runs=3, ... ) ``` Step level- ``` python Step( ... add_workflow_history=True, num_history_runs=3, ... ) ``` This would add the workflow history message to the step so you could expect more continuous execution of workflow type experience.. <img width="986" height="982" alt="image" src="https://github.com/user-attachments/assets/5a4b9c16-39e1-4b13-94a8-e9ea360a9211" /> Example with intent router- ```python 🎧 Smart Customer Service Demo ============================================================ This workflow demonstrates: • 🤖 Simple routing between Technical, Billing, and General support • 📚 Shared conversation history across ALL agents • 💬 Context continuity - agents remember your entire conversation 🎯 TRY THESE CONVERSATIONS: 🔧 TECHNICAL SUPPORT: • 'My API is not working' • 'I'm getting an error message' • 'There's a technical bug' 💳 BILLING SUPPORT: • 'I need help with billing' • 'Can I get a refund?' • 'My payment was charged twice' 🎧 GENERAL SUPPORT: • 'Hello, I have a question' • 'What features do you offer?' • 'I need general help' 🌟 THE MAGIC: Try switching between topics! 1. Start: 'Hello, I have a question' 2. Then: 'Actually, I have a billing issue' 3. Then: 'Is this a technical problem?' → Notice how each agent remembers your full conversation! Type 'exit' to quit ------------------------------------------------------------ 🎧 Customer : I'm getting an error message ┏━ Workflow Information ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃ Workflow: Smart Customer Service ┃ ┃ ┃ ┃ Description: Simple routing to specialists with shared conversation history ┃ ┃ ┃ ┃ Steps: 1 steps ┃ ┃ ┃ ┃ Message: I'm getting an error message ┃ ┃ ┃ ┃ Session ID: smart_customer_service_demo ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 🔧 Routing to Technical Support ┏━ Step 1: Technical Support (Completed) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃ I'm sorry to hear you're experiencing an error message. Could you please provide more details about the error message you're ┃ ┃ seeing? Any specifics, like the error code or when the error occurs (e.g., during login, while performing a specific task), will ┃ ┃ help me assist you more effectively. ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┏━ Router Customer Service Router (Completed) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃ Router Summary: ┃ ┃ ┃ ┃ • Selected steps: Technical Support ┃ ┃ • Executed steps: 1 ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Completed in 5.1s 🎧 Customer : on loggin in to my account it says internal server error 500 ┏━ Workflow Information ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃ Workflow: Smart Customer Service ┃ ┃ ┃ ┃ Description: Simple routing to specialists with shared conversation history ┃ ┃ ┃ ┃ Steps: 1 steps ┃ ┃ ┃ ┃ Message: on loggin in to my account it says internal server error 500 ┃ ┃ ┃ ┃ Session ID: smart_customer_service_demo ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 🔧 Routing to Technical Support ┏━ Step 1: Technical Support (Completed) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃ Thank you for providing more information about the error you're encountering. An "Internal Server Error500" typically indicates ┃ ┃ that something has gone wrong on the server side. ┃ ┃ ┃ ┃ Here's a step-by-step guide to troubleshoot this issue: ┃ ┃ ┃ ┃ 1 Refresh the Page: Sometimes, the issue can be temporary. Try reloading the page by clicking the refresh button in your ┃ ┃ browser or pressing Ctrl + R on your keyboard. ┃ ┃ 2 Clear Browser Cache: Cached files can sometimes cause issues with loading the most up-to-date version of the page. Try ┃ ┃ clearing your browser cache: ┃ ┃ ┃ ┃ • For Google Chrome, go to Settings > Privacy and Security > Clear browsing data. ┃ ┃ • For Firefox, go to Options > Privacy & Security > Cookies and Site Data > Clear Data. ┃ ┃ • For Safari, click Safari > Preferences > Privacy > Manage Website Data and remove your site's data. ┃ ┃ ┃ ┃ 3 Try a Different Browser or Incognito Mode: To check if the issue is browser-specific, try logging in using a different ┃ ┃ browser or an incognito/private window. ┃ ┃ 4 Check Server Status: Verify if the issue might be widespread by checking for any outage announcements on our status page or ┃ ┃ social media. ┃ ┃ 5 Disable Extensions: Sometimes, browser extensions can interfere. Try disabling them and see if it resolves the issue. ┃ ┃ 6 Contact Support: If none of the steps above resolve the issue, it may be best to contact our technical support team directly. ┃ ┃ They can look into your account and server logs to get more details on the problem. ┃ ┃ ┃ ┃ Please let me know if any of these steps help resolve the issue or if I can assist you further! ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┏━ Router Customer Service Router (Completed) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃ Router Summary: ┃ ┃ ┃ ┃ • Selected steps: Technical Support ┃ ┃ • Executed steps: 1 ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Completed in 7.4s 🎧 Customer : ok thanks, also do i need to make sure my billing is done? ┏━ Workflow Information ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃ Workflow: Smart Customer Service ┃ ┃ ┃ ┃ Description: Simple routing to specialists with shared conversation history ┃ ┃ ┃ ┃ Steps: 1 steps ┃ ┃ ┃ ┃ Message: ok thanks, also do i need to make sure my billing is done? ┃ ┃ ┃ ┃ Session ID: smart_customer_service_demo ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 💳 Routing to Billing Support ┏━ Step 1: Billing Support (Completed) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃ Certainly! It's always a good idea to ensure your billing information is up-to-date to avoid service interruptions. Let me ┃ ┃ verify your account details for any pending payments or updates needed. Could you confirm if you'd like me to check your current ┃ ┃ billing status or if you had any recent notifications about billing or payments? If there's anything specific you need ┃ ┃ assistance with regarding your billing, feel free to let me know! ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┏━ Router Customer Service Router (Completed) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃ Router Summary: ┃ ┃ ┃ ┃ • Selected steps: Billing Support ┃ ┃ • Executed steps: 1 ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Completed in 3.8s 🎧 Customer : could less funds in billing account be reason for the above error? ┏━ Workflow Information ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃ Workflow: Smart Customer Service ┃ ┃ ┃ ┃ Description: Simple routing to specialists with shared conversation history ┃ ┃ ┃ ┃ Steps: 1 steps ┃ ┃ ┃ ┃ Message: could less funds in billing account be reason for the above error? ┃ ┃ ┃ ┃ Session ID: smart_customer_service_demo ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 🔧 Routing to Technical Support ┏━ Step 1: Technical Support (Completed) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃ Generally, the "Internal Server Error500" is not directly related to billing issues. This error typically indicates an ┃ ┃ unexpected situation on the server side that prevents it from fulfilling the request. However, being behind on billing can lead ┃ ┃ to service interruptions which might cause access issues or other errors. ┃ ┃ ┃ ┃ To ensure the error is not related to billing, here’s what you can do: ┃ ┃ ┃ ┃ 1 Check Your Billing Status: Log in to your account management or billing portal to verify that your payments are up-to-date. ┃ ┃ Look for any outstanding invoices or notifications about due payments. ┃ ┃ 2 Payment Method Details: Ensure that your payment method details, such as your credit card information, are current and ┃ ┃ correct to avoid processing issues. ┃ ┃ 3 Email or Notifications: Review any emails or notifications from our service for alerts or reminders regarding billing. ┃ ┃ ┃ ┃ If your billing is in order and the error persists, then it is most likely unrelated to your billing status, and continuing with ┃ ┃ troubleshooting steps mentioned previously would be the best course of action. If you need specific help checking your billing ┃ ┃ details, let me know, and I can guide you through the process! ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┏━ Router Customer Service Router (Completed) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃ Router Summary: ┃ ┃ ┃ ┃ • Selected steps: Technical Support ┃ ┃ • Executed steps: 1 ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Completed in 6.3s ``` ## Type of change - [ ] Bug fix - [x] New feature - [ ] Breaking change - [ ] Improvement - [ ] Model update - [ ] Other: --- ## Checklist - [x] Code complies with style guidelines - [x] Ran format/validation scripts (`./scripts/format.sh` and `./scripts/validate.sh`) - [x] Self-review completed - [x] Documentation updated (comments, docstrings) - [x] Examples and guides: Relevant cookbook examples have been included or updated (if applicable) - [x] Tested in clean environment - [ ] Tests added/updated (if applicable) --- ## Additional Notes Add any important context (deployment instructions, screenshots, security considerations, etc.) --------- Co-authored-by: Dirk Brand <51947788+dirkbrnd@users.noreply.github.com> Co-authored-by: Dirk Brand <dirkbrnd@gmail.com> Co-authored-by: manu <manuhortet@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 0b702f0 - Browse repository at this point
Copy the full SHA 0b702f0View commit details -
# Changelog ## New Features: - **Workflow History**: Support to add workflow history to all or individual steps for a better continuous conversational experience - **Google Drive Toolkit**: Added the `GoogleDriveTools` class, to provide your Agents with read and write access to Google Drive. ## Improvements: - **Update parallel and custom function step events streaming logic in workflows:** - Inspect all events that are yielded during the workflow run, and set the workflow context variables on them before yielding upwards. - Update parallel step event streaming logic to immediately yield events as they come so that FE can catch and display in real time. - Old approach - collect all, yield at end - New approach - stream immediately (used queues as we cant yield directly from async running tasks) - **Custom events with AG-UI**: The AG-UI integration now support custom events. Your Agno custom events will now be delivered in the AG-UI interface in the conventional [AG-UI custom event](https://docs.ag-ui.com/concepts/events#custom) format. - **Tool post-hooks in case of tool failure**: Our tool post-hooks now also run when the tool run fails. This enables you to easily add logic to run in case of tool failures! ## Bug Fixes: - **Order of persisted streaming events**: Fix a bug where the created_at of some Memory events would be larger than the created_at of the final RunCompleted event. - **Handle Team sessions with no runs**: When cancelling a Team run early enough, you can end with a session that contains no run objects. Some functionality was failing in this edge case. - **Dynamo Table definitions:** Fixed a bug where some DynamoDB schemas incorrectly defined non key attributes - **Dictionary Key Order Causing Redundant Cache Files:** The current caching in `agno/tools/function.py` used `str()` to serialize dictionary arguments for cache key generation. Since `str()` preserves dictionary key order, identical data with different key orders produced different cache keys. Replaced `str()` with `json.dumps(sort_keys=True)` to ensure serialization regardless of dictionary key order - **Change dimensions type to Optional[int] in FastEmbedEmbedder :** Fixed an issue where FastEmbedEmbedder didn’t allow optional dimensions. --------- Co-authored-by: Yash Pratap Solanky <101447028+ysolanky@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 038a1a7 - Browse repository at this point
Copy the full SHA 038a1a7View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v2.1.3...v2.1.4