Releases: agno-agi/agno
Releases · agno-agi/agno
v1.6.3
Changelog
New Features:
- User Control Flows on Playground: The Agno Platform now support user control flows on the playground.
- Team & Agent Events on RunResponse: Added
store_eventsparameter to optionally add all events that happened during the course of an agent/team run on theRunResponse/TeamRunResponse. - Team Member Responses on Playground: The Agno Platform now shows member responses during team runs.
- Behind-the-scenes on Playground: The Agno Platform now shows what is happening during runs, for both agents and teams.
- Metadata filtering support for
csvandcsv_urlknowledge bases: Add knowledge filters support for these knowledge base types.
Updates
- Removed
aprefix from async function names:asearch_knowledge_base, etc will now be the same as theirsynccounterparts when sent to the model. The names of functions are important for accurate function calling.
Bug Fixes:
- AG-UI Fix: Fixed issue related to missing messages when using the Agno AG-UI app.
- Chat History Fix: Fixed issue related to history not available when
agent_idnot set. - MongoDB ObjectId serialization issue when using with agent: Fixed issue while ****using mongodb vectordb with ObjectId present in the metadata it throws Object of type
ObjectIdis not JSON serializable
What's Changed
- fix: update agui app by @manuhortet in #3560
- [fix] Reset _tool_instructions in Agent and Team classes while calling 'determine_tools_for_model'. by @GitMarco27 in #3567
- feat: csv/csv-url metadata support by @kausmeows in #3572
- feat: continue run endpoint by @Ayush0054 in #3365
- feat: Persist events on run response by @dirkbrnd in #3548
- fix: mongodb json searialization issue if object id in metadata by @kausmeows in #3576
- chore: Release 1.6.3 by @dirkbrnd in #3582
New Contributors
- @GitMarco27 made their first contribution in #3567
Full Changelog: v1.6.2...v1.6.3
v1.6.2
v1.6.1
Changelog
New Features:
- Nebius Embeddings: Added support for embedding models on Nebius.
- Firestore Memory and Storage: Added support for Firestore both as memory and storage provider for your agents.
Improvements:
- Improved Event Payloads: Added
agent_nameto agent events, andteam_nameto team events. Also addedteam_session_idto team-member events to indicate that it belongs to the top-level team session. - Team Run Events: Added
stream_member_eventsto teams to optionally disable streaming of member events. - DocumentKnowledgeBase Async: Added
asyncsupport onDocumentKnowledgeBase - Enums on Custom Tools: Added support for
enumparameters in custom tools.
Bug Fixes:
- Team Events: Fixed issues related to team and member events not being part of the same session. Going forward a team and its members will all have the same session ID.
What's Changed
- [fix] Open AI tools missing api key by @celobusana in #3517
- [fix] Fix quote escaping in string utility function. Ensure only unescaped … by @kostadinov92 in #3529
- Fix multi Image generations by @VirusDumb in #3536
- chore: Update file save method by @Mustafa-Esoofally in #3533
- feat: Add Nebius embedding support by @SamuelJacobJ in #3531
- fix: Do not leak the full host env vars into MCP tools by @kepler in #3547
- fix: Add doc KB async by @dirkbrnd in #3550
- feat: Add version on FastAPIApp by @dirkbrnd in #3549
- fix: handle json workflow input in our fastapi app by @manuhortet in #3543
- fix: Run response events agent name by @dirkbrnd in #3546
- fix: Enums support on custom tools for all models by @SamuelJacobJ in #3532
- Firestore memory by @jeffbryner in #1975
- fix: Azure imports by @ysolanky in #3558
- chore: Release 1.6.1 by @dirkbrnd in #3557
New Contributors
- @celobusana made their first contribution in #3517
- @kostadinov92 made their first contribution in #3529
- @jeffbryner made their first contribution in #1975
Full Changelog: v1.6.0...v1.6.1
v1.6.0
Changelog
Improvements:
- New Streaming Events: We have improved our streaming events system. See the details in “breaking changes” section at the bottom.
- Member Events in Teams: The above change includes streaming of events from team members with the top-level team events.
Bug Fixes:
- Apify Tools: Fixed the ApifyTools initialize to correctly register functions.
Breaking Changes:
- Updates to Run Without Streaming:
RunResponsenow does not have aneventattribute. It still represents the responses of the entire run.- An additional attribute
RunResponse.statusnow indicates whether the run response isRUNNING,PAUSED, orCANCELLED.
- Updates to Run Streaming:
- In the case of streaming you now get reformulated run events. These events are streamed if you do
agent.run(..., stream=True)oragent.arun(..., stream=True). - Agents have the following event types:
RunResponseContentRunErrorRunCancelledToolCallStartedToolCallCompleted- with
stream_intermediate_steps=True:RunStartedRunCompletedReasoningStartedReasoningStepReasoningCompletedMemoryUpdateStartedMemoryUpdateCompleted
- See detailed documentation here.
- In the case of streaming you now get reformulated run events. These events are streamed if you do
- Updates to Teams:
- Teams have the following event types:
TeamRunResponseContentTeamRunErrorTeamRunCancelledTeamToolCallStartedTeamToolCallCompleted- with
stream_intermediate_steps=True:TeamRunStartedTeamRunCompletedTeamReasoningStartedTeamReasoningStepTeamReasoningCompletedTeamMemoryUpdateStartedTeamMemoryUpdateCompleted
- Teams will also yield events from team members as they are executed.
- See detailed documentation here.
- Teams have the following event types:
- Updates to Workflows:
- You should now yield
WorkflowRunResponseStartedEventandWorkflowRunResponseCompletedEventevents.
- You should now yield
What's Changed
- chore: Refactor run response events by @dirkbrnd in #3375
- chore: add prefix to playground url by @pritipsingh in #3521
- revert error response for workflow sync router sessions by @Ayush0054 in #3524
- feat: Yield member events for teams by @dirkbrnd in #3467
- fix: Apify Bug by @dirkbrnd in #3519
- chore: Release 1.6.0 by @dirkbrnd in #3530
Full Changelog: v1.5.10...v1.6.0
v1.5.10
Changelog
New Features:
- Playground File Upload: We now support file upload via the Agno Playground. This will send PDF, CSV, Docx, etc files directly to the agents/teams for interpretation by the downstream LLMs. If you have a knowledge base attached to the agent/team, it will upload the file to the knowledge base instead.
- Async Evals: Support for async and evaluations. See examples here.
Improvements:
- Exa Research: Added
researchtool onExaTools. See more on their docs about how their research works. - Whatsapp Type Indicator: Add type indicator to Whatsapp responses.
Bug Fixes:
- State in Messages Fixes: Fixed issues around nested json inside messages and adding state into messages.
- Anthropic Empty Responses: Fixed issue with Anthropic sometimes responding with empty message.
What's Changed
- feat: Add Exa Research tool by @Mustafa-Esoofally in #3487
- fix: Raise error from custom retriever by @dirkbrnd in #3492
- [docs] : broken link to example implementation of vector db by @nebulaanish in #3488
- feat: add async support for all evals by @manuhortet in #3445
- feat: add direct file upload support to model by @Ayush0054 in #3439
- feat: Typing Indicator by @VirusDumb in #3495
- fix: Issue empty anthropic responses by @dirkbrnd in #3491
- fix: State in message substitution by @dirkbrnd in #3490
- fix: Remove tool caching by @dirkbrnd in #3494
- chore: Release 1.5.10 by @dirkbrnd in #3498
New Contributors
- @nebulaanish made their first contribution in #3488
Full Changelog: v1.5.9...v1.5.10
v1.5.9
Changelog
New Features:
- AG-UI App: Expose your Agno Agents and Teams with an AG-UI compatible FastAPI APP.
- vLLM Support: Added support for running vLLM models via Agno.
- Serper Toolkit: Added
SerperToolstoolkit to search Google - LangDB Support: Added LangDB AI Gateway support into Agno.
- LightRAG server support: Added LightRAG support which provides a fast, graph-based RAG system that enhances document retrieval and knowledge querying capabilities.
- Parser Model: Added ability to use an external model to apply a structured output to a model response
- Pdf Bytes Knowledge: Introduced a new knowledge base class:
PDFBytesKnowledgeBase, which allows the ingestion of in-memory PDF content via bytes or IO streams instead of file paths. - Qdrant Mcp Server: Added MCP support for Qdrant
- Daytona integration: Added
DaytonaToolstoolkit to let Agents execute code remotely on Daytona sandboxes - Expand URL addition in Crawl4ai: Introduced a new URL expansion feature directly into the Crawl4ai toolkit. Our agents frequently encounter shortened URLs that crawl4ai cannot scrape effectively, leading to incomplete data retrieval. With this update, shortened URLs are expanded to their final destinations before being processed by the crawler.
- AWS SES Tools: Added
AWSSESToolsto send emails via AWS SES. - Location Aware Agents: Added
add_location_to_instructionsto automatically detect the current location where the agent is running and add that to the system message.
Improvements:
- FastAPIApp Update: FastAPIApp was updated and
agentwas replaced withagents,teamwithteamsandworkflowswas added. This also now requires you to specify which agent/team/workflow to run.- E.g.
http://localhost:8001/runs?agent_id=my-agent
- E.g.
- ZepTools Updates: Updated
ZepToolsto remove deprecated features. - GmailTools Attachments:
GmailToolsnow support attachments. - Improve code reusability by using fetch with retry and async_fetch_with_retry: updated
fetch_with_retryandasync_fetc_with_retryto be reused inurl_reader.py - Add name to evaluation examples: Included name param in evaluation examples
- XTools Search: Added
search_postsforXTools.
Bug Fixes:
- Claude Prompt Tokens: Fixed a bug with prompt tokens not propagating in Claude model class
- Add type in base App class for registry: Can have different types of app like-
slack,whatsapp, etc - Accept empty array of pdf urls: Fixed an issue where empty PDF URL arrays were not accepted, preventing knowledge base queries without adding new documents
- Anthropic cache metrics propagation: Fixed a bug where Anthropic's prompt caching metrics were not propagating to Agent responses, despite the raw Anthropic API working correctly. This minimal fix ensures cache performance metrics are properly captured and reported.
- Handle non serializable objects on RunResponse dict parsing:
- Updated
RunResponse.to_dict()to handle non-serializable fields, as Python enums
- Updated
What's Changed
- fix: add type in base App class for registry by @Ayush0054 in #3444
- feat: Zep toolkit update by @Mustafa-Esoofally in #3436
- feat: Competitor analysis agent by @Mustafa-Esoofally in #3456
- feat: Added serper.dev as new tool with agno toolkit by @CoderOMaster in #2673
- fix: add name to evaluation examples by @anuragts in #3453
- feat: AG-UI agno bridge by @Mustafa-Esoofally in #3405
- feat: vLLM support by @Mustafa-Esoofally in #3315
- chore: adjust AG-UI app url by @manuhortet in #3468
- [fix] anthropic cache metrics propagation by @NitsanCohen770 in #3460
- cookbook: Qdrant Mcp Server by @lucifertrj in #3346
- feat: LangDB AI Gateway Support for Agno by @MrunmayS in #2077
- [FIX] Accept empty array of pdf urls by @matthieu-vincke in #3372
- feat/expand URL addition in crawl4ai by @chiruu12 in #2409
- Feat/pdf bytes knowledge by @renanmoretto in #3024
- feat: parser model by @ysolanky in #3441
- feat: Change fastapi app to allow multiple agents/teams by @dirkbrnd in #3471
- Enable GmailTools to send emails with attachments by @hsubbaraj in #3378
- [feat] Improve code reusability by using fetch with retry and async_fe… by @memorylorry in #3368
- feat: LightRAG server support by @willemcdejongh in #3420
- feat: handle non serializable objects on RunResponse dict parsing by @manuhortet in #3477
- feat: Updates to Crawl4ai toolkit by @Mustafa-Esoofally in #3473
- feat: Infinity Reranker by @bet0x in #3380
- chore: ag-ui integration setup readme by @manuhortet in #3482
- fix: add storage mode in workflows and fixes by @Ayush0054 in #3475
- feat: Add new search posts tool to X toolkit by @Mustafa-Esoofally in #3474
- chore: simplify setup for the AG-UI app by @manuhortet in #3483
- feat: add Daytona toolkit by @manuhortet in #3479
- feat: tool to send email via SES also updated Cookbook example for th… by @aakashsengar in #1882
- [FIX] numpy<2 not required for Windows by @matthieu-vincke in #3388
- fix(media): Add Media IDs to Serialization and Correct Media Deserialization by @0xRichardH in #3227
- Feature/aws sso by @nikodyk in #2880
- [bugfix] use sentence_transformer_client by @mathematicalmichael in #2420
- feat: Add location to instructions to make agent location aware by @dirkbrnd in #3485
- chore: Release 1.5.9 by @kausmeows in #3478
New Contributors
- @CoderOMaster made their first contribution in #2673
- @NitsanCohen770 made their first contribution in #3460
- @MrunmayS made their first contribution in #2077
- @matthieu-vincke made their first contribution in #3372
- @chiruu12 made their first contribution in #2409
- @renanmoretto made their first contribution in #3024
- @hsubbaraj made their first contribution in #3378
- @memorylorry made their first contribution in #3368
- @bet0x made their first contribution in #3380
- @nikodyk made their first contribution in #2880
Full Changelog: v1.5.8...v1.5.9
v1.5.8
Changelog
New Features:
- Slack App: Introducing the
SlackAppto allow you to create agents for Slack! The app allows agents to respond to individual messages or on group chats, and it creates threads to respond to messages. - Visualization Tools: Added
VisualizationToolsthat usesmatplotlibto give agents the ability to make graphs. - Brave Search Tools: Introduced a new toolkit for integrating
BraveSearchthat allows agent to search the web using brave search api.
Improvements:
- Pass filters for traditional RAG: Properly pass down
knowledge_filterseven ifself.add_references=Truewhich is a case for traditional RAG (diff from Agentic RAG) - Add infer param to Mem0: Added infer as a param to
Mem0Tools
Bug Fixes:
-
Searxng tool initialization: Fixed Searxng tool initialization error
AttributeError: 'Searxng' object has no attribute 'include_tools'and added comprehensive unit tests.
-
Fix for enum as a response model for Gemini: With 1.5.6, a bug was introduced now allowing enum as a data type for Gemini response model.
-
OpenAI parsing structured output: With the changes in the OpenAI library we don't need to parse the structured output separately.
-
Fix accuracy evals monitoring: Added logic to handle monitoring when evaluating Teams in the run function of AccuracyEval
Updates
- Updates to Apps:
FastAPIAppdoes not have a defaultprefixanymore and/run→/runs(i.e. the created run endpoint is now<your_domain>/runs)serve_fastapi_appis now replaced with.serve()on the instance ofFastAPIApp.serve_whatsapp_appis now replaced with.serve()on the instance ofWhatsappAPI.
v1.5.6
Changelog
New Features
- Team Evals: Evaluations are now supported for teams!
Improvements:
- Async Workflows: Added
arunsupport for Workflows, so they can now be used withasyncPython. - Parallel Memory Updates: Made speed improvements when user memories and session summaries are generated.
- Reimplement
tool_call_limit: Revamp oftool_call_limitto make it work across a whole agent run.
Bug Fixes:
- Mistral Structured Outputs with Tools: Fixed an issue preventing Mistral model use with structured output and tools
- Images In Run Without Prompt: Fixed issues related to images being ignored if there wasn’t a prompt provided on
run. - Pgvector Upsert Fix: Fixed Pgvector upsert not copying metadata properly
- Handle AgnoInstrumentor failing with OpenAIResponses: PR merged in Arize’s openinference repo- Arize-ai/openinference#1701
- Pinecone Filters: Enabled filters for pinecone vector db
- Combined KB Async: Add missing async method to Combined KB
- Team Session State Fix:
team_session_stateis now correctly propagated and shared between all members and sub-teams of a team. - Gemini type fix for integers:
- Pydantic models with
Dict[str, int]fields (and other Dict types) were failing when used asresponse_schemafor both OpenAI and Gemini models due to schema format incompatibilities.
- Pydantic models with
- Session Name:
session_nameis now available after a run. - Handle UUIDs while serialization in RedisStorage: Fixed error object of type UUID is not JSON serializable
Updates:
- For managing
team_session_state, you now have to setteam_session_stateon theTeaminstead ofsession_state.
What's Changed
- fix: Add mistral structured output and tool use parsing by @dirkbrnd in #3369
- chore: add cookbooks for hybrid search by @kausmeows in #3379
- fix: User confirmation flows with run ID by @dirkbrnd in #3385
- fix: type mismatch with streamable http timeouts by @manuhortet in #3398
- feat: add pipedream auth example by @manuhortet in #3397
- feat: anthropic mcp connector tool by @ysolanky in #3377
- fix: pgvector upsert not copying metadata properly by @kausmeows in #3401
- feat: add arun in workflows by @kausmeows in #3396
- fix: Handle None prompt with media by @dirkbrnd in #3410
- fix: enable filters for pinecone by @kausmeows in #3411
- fix: add missing async method to Combined KB by @kausmeows in #3412
- feat: add team_session_state state management in teams by @pritipsingh in #3404
- fix: Gemini type fix for integers by @willemcdejongh in #3395
- fix: handle uuids while serialization in RedisStorage by @kausmeows in #3415
- fix: session name persistance by @dirkbrnd in #3407
- feat: support teams for all evals by @manuhortet in #3327
- perf: Improve performance of agent memory updates by @dirkbrnd in #3409
- fix: Tool call limit response by @dirkbrnd in #3408
- chore: Release 1.5.6 by @kausmeows in #3414
Full Changelog: v1.5.5...v1.5.6
v1.5.5
Changelog
New Features:
- Claude File Upload: We can now upload a file to Anthropic directly and then use it as an input to an agent.
- Claude 4 Code Execution Tool: Updated Claude to execute Python code in a secure, sandboxed environment.
- Prompt caching with Anthropic Models: Allowed resuming from specific prefixes in your prompts. This approach significantly reduces processing time and costs for repetitive tasks or prompts with consistent elements.
- Vercel v0 Model: Added support for new Vercel v0 models and cookbook examples.
- Qdrant Hybrid Search support
- Markdown Knowledge Base: Added native support for Markdown-based knowledge bases.
- AI/ML API platform integration: Introduced integration with
AI/ML API, a platform providing AI/ML models. AI/ML API provides 300+ AI models including Deepseek, Gemini, ChatGPT. The models run at enterprise-grade rate limits and uptimes. - Update Pydantic and dataclass in function handling: Added support for
Pydanticanddataclassobjects as input to a function. See here for an example.
Improvements:
- Timeout handling for API calls in ExaTools class:
- Timeout functionality to Exa API calls to prevent indefinite hanging of search operations. The implementation uses Python's
concurrent.futuresmodule to enforce timeouts on all Exa API operations (search, get contents, find similar, and answer generation). - This change addresses the issue where Exa search functions would hang indefinitely, causing potential service disruptions and resource leaks.
- Timeout functionality to Exa API calls to prevent indefinite hanging of search operations. The implementation uses Python's
- Fetch messages from last N sessions:
- A tool for the agent, something like
get_previous_session_messages(number_of_sessions: int)that returns a list of messages that the agent can analyse - Switch on with
search_previous_sessions_history
- A tool for the agent, something like
- Redis Expiration: Added
expirekey to set TTL on Redis keys. - Add Anthropic Cache Write to Agent Session Metrics: Added
cache_creation_input_tokensto agent session metrics, to allow for tracking Anthropic cache write statistics
Bug Fixes:
- Huggingface Embedder Updates:
- Huggingface has changed some things on their API and they've deprecated
.poston theirInferenceClient()- https://discuss.huggingface.co/t/getting-error-attributeerror-inferenceclient-object-has-no-attribute-post/156682 - We can also no longer use
id: str = "jinaai/jina-embeddings-v2-base-code"as default, because these models are no longer provided by theHF Inference API. Changed the default toid: str = "intfloat/multilingual-e5-large"
- Huggingface has changed some things on their API and they've deprecated
- Add
role_mapforOpenAIChat: This allows certain models that don’t adhere to OpenAI’s role mapping to be used virOpenAILike. - Use Content Hash as ID in Upsert in Pgvector: Use reproducible
content_hashin upsert as ID. - Insert in Vector DB passes only last chunk meta_data: Insert in vector db passes only last chunk meta_data. issue link- https://discord.com/channels/965734768803192842/1219054452221153463/1376631140047130649
- Remove Argument Sanitization: Replaced with a safer way to do this that won't break arguments that shouldn't be sanitized
- Handle async tools when running async agents on playground: Fixed a regression where using Agents with async tools (e.g. MCP tools) was breaking in the Playground.
What's Changed
- fix-llama-sys-message-ag-3049 by @ysolanky in #3088
- feat-claude-4-ag-3292 by @ysolanky in #3302
- feat: update claude file upload by @kausmeows in #3332
- fix: repeated class variables by @kausmeows in #3334
- feat: prompt caching with Anthropic models by @manuhortet in #3324
- [Enhancement] Implement timeout handling for API calls in ExaTools class by @siddythings in #3287
- fix: HF custom embedder by @kausmeows in #3357
- feat: allow custom role map for OpenAIChat by @manuhortet in #3355
- chore: Add tests for functions by @dirkbrnd in #3354
- fix user_input_schema by @lybtt in #3350
- feat: add vercel model by @anuragts in #3349
- feat: fetch messages from last n sessions by @kausmeows in #3279
- feat: Qdrant hybrid search by @kausmeows in #3339
- feat: handle empty responses from Gemini model by @ItsRoy69 in #3317
- feat: registry by @willemcdejongh in #2726
- feat: add mem0 mcp example by @manuhortet in #3301
- feat: pipedream mcp examples by @manuhortet in #3299
- Added expiration support for Redis by @nhathoang0110 in #3316
- chore: update qdrant to remove hybrid search breaking change by @kausmeows in #3360
- fix: pass async mode by @gsaada in #3295
- fix embedding dimensions key by @adroitvarun in #3337
- feat: add knowledge support for markdown files by @manuhortet in #3289
- [feat] Add AI/ML API platform integration by @D1m7asis in #3209
- fix-claude-tool-call-bug-ag-3287 by @ysolanky in #3285
- fix: insert in vector db passes only last chunk meta_data by @kausmeows in #3363
- fix: Remove argument sanitization by @dirkbrnd in #3364
- fix: use content hash as id in upsert by @kausmeows in #3367
- Feat: Add anthropic cache write to agent session metrics by @piotrpenar in #3344
- fix: handle async tools when running async agents on playground by @manuhortet in #3356
- chore: Release 1.5.5 by @kausmeows in #3359
New Contributors
- @lybtt made their first contribution in #3350
- @nhathoang0110 made their first contribution in #3316
- @adroitvarun made their first contribution in #3337
- @D1m7asis made their first contribution in #3209
Full Changelog: v1.5.4...v1.5.5
v1.5.4
Changelog
New Features:
- User Control Flows: This is the beta release of Agno’s Human-in-the-loop flows and tools.
- We now allow agent runs to be
pausedawaiting completion of certain user requirements before the agent can continue. - This also adds the
agent.continue_runandagent.acontinue_runfunctions. - The control flows that are available:
- User confirmation flow → Decorate a function with
@tool(requires_confirmation=True)and the agent will expect user confirmation before executing the tool. - User input required → Decorate a function with
@tool(requires_user_input=True)to have the agent stop and ask for user input before continuing. - External tool execution → Decorate a function with
@tool(external_execution=True)to indicate that you will execute this function outside of the agent context. - Dynamic user input → Add
UserControlFlowTools()to an agent to give the agent the ability to dynamically stop the flow and ask for user input where required.
- User confirmation flow → Decorate a function with
- See a host of examples here.
- We would appreciate any feedback from the community!
- We now allow agent runs to be
- Mem0 Toolkit: Added a toolkit for managing memories in Mem0.
- Firecrawl Search: Added support for Firecrawl web search in
FirecrawlTools.
Bug Fixes:
- Firecrawl Tools and Reader: Fixed parameter parsing for the Firecrawl reader and tools.
- Include/Exclude on all Tools: Ensure all toolkits support
include_toolsandexclude_tools.
What's Changed
- feat: Imagen-4 example by @Mustafa-Esoofally in #3281
- fix: Firecrawl params by @Mustafa-Esoofally in #3258
- feat: refactor apps structure by @Ayush0054 in #3260
- Added a parameter to configure auto_suggest in wikipedia.summary by @djoek in #3205
- feat: add mongodb hybrid search support by @kausmeows in #3262
- feat: Implementation for user approval pause flow by @dirkbrnd in #3243
- feat: add logic to track eval runs by @manuhortet in #3019
- feat: Create implementation for function paused for external execution by @dirkbrnd in #3272
- chore: update retriever cookbooks by @kausmeows in #3300
- chore: clarify eval cookbooks by @manuhortet in #3294
- feat: Create implementation for user input flow by @dirkbrnd in #3278
- feat: mem0 memory toolkit by @Mustafa-Esoofally in #3028
- chore: update cookbooks for teams observability by @kausmeows in #3308
- [test] Add test case for FirecrawlReader params handling by @siddythings in #3286
- feat: Add firecrawl search by @dirkbrnd in #3325
- Fix: Improve user confirmation flow by @dirkbrnd in #3297
- feat: User confirmation flow using run_id as reference only by @dirkbrnd in #3305
- chore: migrate tools to use include/exclude_tools by @kausmeows in #3323
- feat: Implement agentic user requirements flow by @dirkbrnd in #3322
- update streamlit apps folder structure by @Ayush0054 in #3329
- chore: Release 1.5.4 by @dirkbrnd in #3330
New Contributors
- @djoek made their first contribution in #3205
- @siddythings made their first contribution in #3286
Full Changelog: v1.5.3...v1.5.4