Releases: huggingface/smolagents
Releases · huggingface/smolagents
v1.10.0
What's Changed
- Bump dev version: v1.10.0.dev0 by @albertvillanova in #649
- Improve missing toolcall exception by @GrahamTheCoder in #614
- refactor: simplify file type checking from MIME to extension by @kingdomad in #342
- Bugfix: Groq via LiteLLM 🚅 by @JGalego in #605
- Add docstring args for MultiStepAgent.from_folder by @albertvillanova in #654
- Remove non-existent subfolder arg in MultiStepAgent.from_hub by @albertvillanova in #653
- Minor fix save agents by @keetrap in #645
- Align step numbers in monitoring logging by @spemed in #667
- Remove deprecated resume_download arg in from_hub by @albertvillanova in #670
- Pass notebook_folder to build notebook docs by @albertvillanova in #671
- Update the prompts for delegating subtasks to agents in prompt files by @spemed in #678
- Documentation: manage agent's memory by @aymeric-roucher in #675
- Move contributing details into contributing file by @GrahamTheCoder in #651
- Fix typo in error message by @samee99 in #687
- Refactor evaluate ast to improve readability by @CalOmnie in #625
- Update docs in zh/examples/multiagents.md by @spemed in #688
- Rename doc file extension from .md to .mdx by @albertvillanova in #691
- Make dangerous_patterns a module variable by @CalOmnie in #505
- Pin transformers < 4.49.0 to fix TypeError: LlavaProcessor: got multiple values for keyword argument 'images' by @albertvillanova in #693
- Respect formatting in ast.FormattedValue for local_python_executor by @LorienMan in #660
- Add support for serper search by @aymeric-roucher in #698
- Simplify instrumentation for phoenix by @aymeric-roucher in #697
- Test validate_tool_attributes by @albertvillanova in #696
- Remove translation tool from README by @keetrap in #705
- Fix test docs by @albertvillanova in #701
- Fix SpeechToTextTool by @albertvillanova in #706
- Fixed typo in Telemetry docs by @sergiopaniego in #710
- Fix validate_tool_attributes for non-literal defaults by @albertvillanova in #711
- Ignore parameter types in tool docstrings by @carlsberg03 in #724
- Refactor MultiStepAgent and improve some tests by @colesmcintosh in #598
- Fix duplicate managed agent name and its tool name by @keetrap in #721
- Update docs on how to change prompts by @albertvillanova in #725
- Remove transformers tasks from load_tool docstring by @albertvillanova in #726
- Remove article section from launch_gradio_demo Interface by @albertvillanova in #728
- Update logo in Readme by @aymeric-roucher in #730
- Support passing additional parameters for openai client initialization by @touseefahmed96 in #388
- Add api-base and api-key arguments to CLI by @keetrap in #734
- Fix CI test error: DuckDuckGoSearchException: 202 Ratelimit by @albertvillanova in #739
- Fix typo in Makefile by @albertvillanova in #741
- Add disclaimer in benchmark to request access for gated dataset by @albertvillanova in #744
- Define test RUN_ALL requirement marker in one file by @albertvillanova in #743
- Rename managed agent in multiagents docs to avoid confusing the LLM by @albertvillanova in #766
- Update documentation on sandboxes by @aymeric-roucher in #747
- Add audioop-lts as Python>=3.13 Open DeepResearch requirement for pydub by @albertvillanova in #749
- Create docker extra installation dependency by @albertvillanova in #764
- Fix bracket logging in rich by @aymeric-roucher in #753
- Enable custom final answer in CodeAgent by @aymeric-roucher in #769
- Fix TypeError raised by launch_gradio_demo with PipelineTool by @albertvillanova in #732
- Use docker extra in Secure code execution docs by @albertvillanova in #780
- Support custom final_answer in agent init by @albertvillanova in #783
- Fix LiteLLMModel API key usage in CLI by @asselindebeauville in #788
- Secure code execution wrong title in docs TOC by @maeste in #771
- Update Open DeepResearch to install smolagents from local path by @albertvillanova in #786
- Support importing scipy and sklearn without AttributeError: module 'scipy.sparse._coo' has no attribute 'upcast' by @albertvillanova in #790
- Fix and test validate_tools_and_managed_agents by @albertvillanova in #731
- Add Docker executor by @aymeric-roucher in #733
- Update README with mention to Docker sandboxed execution by @touseefahmed96 in #803
- Support running a demo of Open DeepResearch by @albertvillanova in #806
- Added sidebar layout and session state management for agent by @yvrjsharma in #797
- Fix CI quality in examples/gradio_ui by @albertvillanova in #822
- Improve dependency loading of Open DeepResearch visual_qa by @albertvillanova in #821
- Improve setup instruction for Open DeepResearch by @albertvillanova in #823
- Support other models than o1 in Open Deep Research by @albertvillanova in #824
- Fix final_answer_pattern matching in remote executors by @albertvillanova in #826
- Fix and refactor tests of Docker executors by @albertvillanova in #827
- Remove unnecessary self argument in GoogleSearchTool super() call by @gael1130 in #828
- Fix call from dict with LocalPythonExecutor by @albertvillanova in #837
- Minor fix of import in VisitWebpageTool by @keetrap in #840
- Make local Python interpreter safer by checking if returns builtins by @albertvillanova in #848
- No need of these Files by @touseefahmed96 in #798
- fix: correcting tool_call role by @zndqs in #779
- Fix translation guide as it points to invalid location by @FanwangM in #794
- Fix load_model in webagent CLI by @albertvillanova in #855
- Fix message for observations without tool_calls by @albertvillanova in #857
- Make local Python interpreter safer by checking if returns dangerous modules by @albertvillanova in #861
- Fix CI test_action_step_to_messages by @albertvillanova in #868
- Make local Python interpreter safer by adding builtins to dangerous modules by @albertvillanova in #869
- Fix LiteLLMModel docstring by @albertvillanova in #885
- Fix bug where operations count was not reinitialized at each step by @aymeric-roucher in #866
- Fix CLI webagent by @albertvillanova in #889
New Contributors
v1.9.2
Bug Fixes 🐛
- Fix litellm flatten_messages_as_text detection by @aymeric-roucher in ef60315
- Fix litellm flatten_messages_as_text detection by @aymeric-roucher in #659
Full Changelog: v1.9.1...v1.9.2
v1.9.1
Bug Fixes 🐛
- fix tool code generation in case of multiline descriptions by @sysradium in #613
- Fix prompt for toolcalling agent and slightly update doc by @aymeric-roucher in #650
Full Changelog: v1.9.0...v1.9.1
v1.9.0
What's Changed
- Bump dev version: v1.9.0.dev0 by @albertvillanova in #544
- Small update to 'Introduction to Agents' docs format by @sergiopaniego in #548
- Doc grammar fix by @juanqui in #556
- Minor grammar correction by @doomspork in #528
- Fix multiagents docs by @derekalia in #549
- Fix managed agent example by @keetrap in #562
- Add authorized_imports in importFrom errors by @CalOmnie in #506
- chore: fix some typos by @zoupingshi in #557
- Minor fix in the guilded_tour docs by @touseefahmed96 in #578
- Add small readme to open Deep Research by @aymeric-roucher in #581
- Fixed Readme that is missing run.py call by @jsmidt in #585
- Fix 429 Client Error: Too Many Requests in CI test by @albertvillanova in #599
- Remove unused import in guided_tour docs by @albertvillanova in #600
- Test evaluate_delete by @albertvillanova in #519
- Move check_module_authorized out of import_module for use in get_safe_module by @CalOmnie in #507
- Test agent call with provide_run_summary by @albertvillanova in #513
- Create PromptTemplates typed dict by @albertvillanova in #547
- Refactor and test final answer prompts by @albertvillanova in #595
- Make question arg required in Open DeepResearch example by @albertvillanova in #617
- Remove unused api-base arg from Open DeepResearch example by @albertvillanova in #616
- corrected typo in README.md by @blakkd in #609
- MLX model support by @g-eoj in #300
- Add support for non-bool comparison operators. by @kc9zyz in #612
- docs: add Langfuse OpenTelemetry guide by @jannikmaierhoefer in #601
- Remove --prompt argument of instance instruction in README.md by @leeivan1007 in #632
- Fix CI quality check by removing trailing whitespace by @albertvillanova in #628
- Change math.pow -> pow by @Bilokin in #624
- Move plan user prompt to YAML and test text of plan prompts by @albertvillanova in #591
- Fix installation instructions in Open-DeepResearch README by @albertvillanova in #633
- Remove ManagedAgent from doc by @aymeric-roucher in #563
- Refactor operations count state setting by @albertvillanova in #631
- LiteLLMModel - detect message flatenning based on model information by @sysradium in #553
- Contribute to the documentation by @seanxuu in #630
- Adding default parameter for max_new_tokens in TransformersModel by @matfrei in #604
- Test evaluate_condition by @albertvillanova in #634
- Allow Gradio share parameter passthrough by @sysradium in #490
- Fix issue #635. Corrected installation instructions for open_deep_research by @nishaddeokar in #636
- Share full agents by @aymeric-roucher in #533
- Fix PlanningPromptTemplate and its docstring by @albertvillanova in #648
- Fix evaluate_condition for non-bool result by @albertvillanova in #638
- Removed reference to deprecated single_step in documentation by @crumbly-blue-cheese in #608
- Update README.md by @aymeric-roucher in #642
- Fix reference to Transformers in docs by @sergiopaniego in #643
- Fix for MLX Model when stop sequence is followed by any chars by @g-eoj in #623
- Allow for last_input_token_count=None by @Strings-RH in #644
New Contributors
- @juanqui made their first contribution in #556
- @doomspork made their first contribution in #528
- @CalOmnie made their first contribution in #506
- @zoupingshi made their first contribution in #557
- @NeuroWhAI made their first contribution in #576
- @jsmidt made their first contribution in #585
- @blakkd made their first contribution in #609
- @g-eoj made their first contribution in #300
- @kc9zyz made their first contribution in #612
- @jannikmaierhoefer made their first contribution in #601
- @leeivan1007 made their first contribution in #632
- @Bilokin made their first contribution in #624
- @seanxuu made their first contribution in #630
- @matfrei made their first contribution in #604
- @nishaddeokar made their first contribution in #636
- @crumbly-blue-cheese made their first contribution in #608
- @Strings-RH made their first contribution in #644
Full Changelog: v1.8.1...v1.9.0
v1.8.1
Bug Fixes 🐛
- Restore missing user prompt for initial facts by @NeuroWhAI in #576
- Bugfix: problems with the prompt refactoring of the planning step by @IlyaGusev in #564
- Do not pass system prompt to update plan and test plan prompts by @albertvillanova in #586
Full Changelog: v1.8.0...v1.8.1
v1.8.0
New features ⭐️
- We added visualization method to display the agent' structure as a tree! 🌳 by @aymeric-roucher in #470

- We vastly simplified managed agents in #484
- We've removed the ManagedAgents class: directly provide
name
anddescription
attributes to your agent to make it work as a managed agent ! Check an example here.
- We've removed the ManagedAgents class: directly provide
- We released Open Deep Research in #317!
Fixes 🔧
- Bump dev version: v1.8.0.dev0 by @albertvillanova in #451
- Add ToC and CLI docs by @merveenoyan in #455
- Fix link to Helium repository in README.md by @dross20 in #471
- Remove default max_tokens for all models by @albertvillanova in #475
- Improve Readme: shorter intro, VLMs, MCP, etc by @aymeric-roucher in #459
- Fix SpeechToTextTool new instance by @albertvillanova in #478
- Allow flatten_messages_as_text to be pushed via LiteLLMModel to fix Ollama integration by @sysradium in #406
- Fixed demo typo in README.md by @hanteed in #481
- Added
HfApiModel
import toweb browser example
by @sergiopaniego in #461 - Minor Fix tool push_to_hub by @keetrap in #460
- Fix link in README.md by @vanrohan in #496
- Fix undefined
step_number
in single_step run by @taha-yassine in #495 - Bump litellm to 1.60.2 (fixes #34) by @taha-yassine in #488
- Initialize step_number attribute by @albertvillanova in #497
- Suppress terminal logging in CI tests by @albertvillanova in #504
- Fix link in README.md by @Ryanb58 in #492
- Test PrintContainer by @albertvillanova in #515
- Add missing default tools to reference docs by @touseefahmed96 in #516
- Refactor prompts by @aymeric-roucher in #502
- Fix Typo by @rehanzo in #529
- Test HfApiModel call with custom_role_conversions by @albertvillanova in #517
- Set MAX_WHILE_ITERATIONS as module variable by @albertvillanova in #520
- add self.logger = logger for e2b_executor by @femto in #537
- Create simpler example open-deep-research by @aymeric-roucher in #534
- Support disabling logging to terminal by @albertvillanova in #512
- Fix installation with data files by @albertvillanova in #536
- Pin openinference-instrumentation-smolagents >= 0.1.4 by @albertvillanova in #535
- Delete prompts_path argument and use prompt_templates by @albertvillanova in #541
- Fix deprecation warning from importlib.resources.read_text by @albertvillanova in #543
- Delete non-exisiting accelerate extra by @albertvillanova in #539
- Fix some doc examples by @aymeric-roucher in #542
- Test E2B Executor by @albertvillanova in #540
New Contributors
- @dross20 made their first contribution in #471
- @sysradium made their first contribution in #406
- @hanteed made their first contribution in #481
- @vanrohan made their first contribution in #496
- @taha-yassine made their first contribution in #495
- @Ryanb58 made their first contribution in #492
- @rehanzo made their first contribution in #529
- @femto made their first contribution in #537
Full Changelog: v1.7.0...v1.8.0
v1.7.0
Main changes
Added commands to directly run agents from CLI: smolagent
and webagent
✨
- Make web browser agent example a CLI script by @merveenoyan in #416
- Add CLI for smolagents by @aymeric-roucher in #431
- Now you can run
smolagent "Your task!"
from CLI to directly call a smolagent. Try it!webagent "Find me a cheap train from Paris to Torino before Thursday"
orsmolagent "Who's the current director of La French Tech?"
- Now you can run
Gave a memory
to agents! 🧠
- Untangling Logging by @clefourrier in #316
- Test memory by @albertvillanova in #428
- This added a specific
memory
attribute to the agent! - We used this change to introduce nice functions like an
agent.replay()
function that replays the last run (based on the memories stored, so no further LLM calls)
- This added a specific
Other big improvements 💪
-
Improve code execution logs in case of error by showing print outputs by @aymeric-roucher in #446
- This makes sure that code execution outputs are stored to memory even when an error was raised later on. It should slightly improve the performance of
CodeAgents
- This makes sure that code execution outputs are stored to memory even when an error was raised later on. It should slightly improve the performance of
-
Update benchmark with Hub datasets by @albertvillanova in #412
- This adds storing of benchmarking outputs directly to the Hub. Moving forward, we'll make benchmarking even easier!
Fixes and small improvements
- Bump dev version: v1.7.0.dev0 by @albertvillanova in #390
- Fix return type of generator function in
Agent._run()
by @abidlabs in #409 - Update minimum Gradio version by @abidlabs in #408
- Support third-party Inference providers in
HfApiModel
by @julien-c in #422 - Minor fix for agent_from_any_llm.py example by @RolandJAAI in #423
- Fix
vlm_web_browser.py
example by @abidlabs in #410 - Fix regressions, refactor logging and improve replay function by @aymeric-roucher in #419
- Fix installation instruction for GradioUI in error message by @jank in #418
- Fix import from deleted logger module by @albertvillanova in #433
- Add web search tool and make prompt positional arg by @aymeric-roucher in #435
- Remove explicit model arg in HfApiModel - which wouldn't run without Pro by @sanjeed5 in #373
- Fix MultiStepAgent.planning_step message content by @albertvillanova in #437
- Fix and test MemoryStep by @albertvillanova in #432
- Fix get safe module by @antoinejeannot in #405
- Remove duplicate final_memory_step creation by @albertvillanova in #444
- Remove unused ChatMessageToolCall raw argument by @albertvillanova in #445
- Fix TransformersModel docstring by @August-murr in #447
- Test get_clean_message_list by @albertvillanova in #448
- Add web browser example to doc by @aymeric-roucher in #439
- Fix minor issue in e2b by @keetrap in #436
New Contributors
- @abidlabs made their first contribution in #409
- @julien-c made their first contribution in #422
- @August-murr made their first contribution in #447
Full Changelog: v1.6.0...v1.7.0
v1.6.0
What's Changed
- Bump version to 1.6.0.dev by @albertvillanova in #348
- Use transformers as optional dependency by @albertvillanova in #360
- Add pip install datasets to RAG example by @sanjeed5 in #371
- Update issue templates by @aymeric-roucher in #377
- TransformersModel auto-detects VLMs by @aymeric-roucher in #378
- Separate tree for Model docs is added by @touseefahmed96 in #382
- add kwargs to gradio launch by @tocab in #367
- Minor Fix in the example docs by @touseefahmed96 in #383
- Fix Extra planning by @bvantuan in #362
- Gradio chatbot: step duration, number, token count, support nested thoughts by @yvrjsharma in #384
- Gradio Chatbot looks much nicer than before! See below:

- Add Chinese translations for text-to-sql example by @FanwangM in #366
- Add Chinese translations for RAG by @FanwangM in #363
Qwen-2VL
->Qwen2-VL
model name typo fixed by @sergiopaniego in #349- chore: Fix Typo by Calling is_torch_available() in AgentAudio Class by @hironow in #379
- Additional parameters for openai client by @touseefahmed96 in #385
- DuckDuckGoSearchTool: add ddgs_kwargs parameter to constructor by @onukura in #372
- Fix final_answer issue in e2b_executor by @keetrap in #319
- Docs: Text to sql example - minor naming / dedupe by @GrahamTheCoder in #376
- Test import without extras by @albertvillanova in #370
- Add tool saving test by @aymeric-roucher in #389
- Fix blocking of os in authorized imports by @aymeric-roucher in #386
- Add test for DDGS Tool kwargs by @aymeric-roucher in #387
New Contributors
- @tocab made their first contribution in #367
- @bvantuan made their first contribution in #362
- @sergiopaniego made their first contribution in #349
- @hironow made their first contribution in #379
- @onukura made their first contribution in #372
- @GrahamTheCoder made their first contribution in #376
Full Changelog: v1.5.1...v1.6.0
v1.5.1
Bug Fixes 🐛
- Use transformers as optional dependency by @albertvillanova in #360
Full Changelog: v1.5.0...v1.5.1
v1.5.0
What's Changed
New Features 🚀
- Add VLM support by @merveenoyan in #220
Fixes 🐛
- refactor: update model type to ChatMessage in agent classes by @jank in #263
- Fixes AttributeError: 'CodeAgent' object has no attribute 'logger' #258 by @joaopauloschuler in #259
- Improve tool call argument parsing by @aymeric-roucher in #267
- Remove unused and undocumented
test_mode
parameter by @Wauplin in #273 - Fix Bug in from_langchain in tools.py by @RolandJAAI in #268
- Python interpreter: improve suggestions for possible mappings by @aymeric-roucher in #266
- Improve python executor's error logging by @aymeric-roucher in #275
- The use of BASE_PYTHON_TOOLS enables the use of compile, exec and eval by @tandiapa in #274
- Try first dunder method in evaluate_augassign by @albertvillanova in #285
- Add cool GIF of agent run inspection using Phoenix by @aymeric-roucher in #277
- Remove pickle5 package from E2BExecutor by @albertvillanova in #295
- Fuse stream and direct run calls by @clefourrier in #296
- minor fix for console in AgentLogger by @nbroad1881 in #303
- Add Azure OpenAI support by @vladiliescu in #282
- Fix arg passing to AgentExecutionError by @albertvillanova in #309
- refactor(models): restructure model parameter handling by @kingdomad in #227
- Local interpreter security: prevent builtins functions from being used if they have not been added as tools by @tandiapa in #299
- Support any and none tool types by @aymeric-roucher in #280
- Minor fix: adding a 60 seconds timeout to the visit webpage tool by @Killian-pit in #308
- Fix: source code inspection in interactive shells by @antoinejeannot in #281
- Refactor evaluate_augassign and test all operators by @albertvillanova in #313
- Unset temperature in models by @aymeric-roucher in #315
- Fix tool calls with LiteLLM and tool optional types by @aymeric-roucher in #318
- Multiple tool example by @touseefahmed96 in #293
- RAG on your huggingface_doc data using chromadb and groq api by @touseefahmed96 in #235
- Improve static tools initialization safety by @kingdomad in #324
- Append unused error message to memory by @albertvillanova in #325
Documentation and examples 📚
- Fix code examples with additional_args and num_ctx examples also in zh docs by @RolandJAAI in #260
- Update building_good_agents.md by @derekalia in #283
- Update guided_tour.md by @sanjeed5 in #287
- Added Hindi docs for smolagents by @keetrap in #279
- Update README and documentation to clarify Hub integrations with Gradio Spaces by @davidberenstein1957 in #306
- Update README.md fix quick demo code import bug by @Deng-Xian-Sheng in #327
- Add args to MultiStepAgent docstring by @albertvillanova in #332
- Fix MultiStepAgent docstring by @albertvillanova in #336
- Fix docstrings of models by @albertvillanova in #344
- docstring args for ToolCallingAgent, CodeAgent and ManagedAgent by @touseefahmed96 in #335
- Corrected tool examples in ToolCallingAgent system prompts by @RolandJAAI in #341
- Improve inference choice examples by @aymeric-roucher in #311
Maintenance 🏗️
- Add linter rules + apply make style by @Wauplin in #255
- Fix CI quality issue by @albertvillanova in #272
- Bump version to 1.5.0.dev by @aymeric-roucher in #256
- Make import time faster (optional deps + delay imports) by @Wauplin in #253
- Fix CI quality by @albertvillanova in #286
- Add huggingface-hub as required dependency by @albertvillanova in #288
- Make e2b optional dependency by @albertvillanova in #292
- Remove package json files by @albertvillanova in #314
- Update README instructions to run tests by @albertvillanova in #328
- Move torchvision to the torch extra by @nonsleepr in #297
New Contributors
- @tandiapa made their first contribution in #274
- @keetrap made their first contribution in #279
- @sanjeed5 made their first contribution in #287
- @davidberenstein1957 made their first contribution in #306
- @clefourrier made their first contribution in #296
- @nbroad1881 made their first contribution in #303
- @vladiliescu made their first contribution in #282
- @Killian-pit made their first contribution in #308
- @antoinejeannot made their first contribution in #281
- @touseefahmed96 made their first contribution in #293
- @Deng-Xian-Sheng made their first contribution in #327
- @nonsleepr made their first contribution in #297
- @merveenoyan made their first contribution in #220
Full Changelog: v1.4.1...v1.5.0