v1.10.0

huggingface/smolagentsv1.10.0Mar 5, 2025by albertvillanova

AI Summary

Added Docker executor for sandboxed code execution, improved local Python interpreter safety, added serper search support, and enhanced documentation.

Key Highlights

  • New Docker executor for sandboxed code execution
  • Improved local Python interpreter safety with dangerous module checks
  • Added serper search support
  • Enhanced Open Deep Research demo
  • Improved documentation and tool functionality

New Features

  • Docker executor support
  • Enhanced local Python interpreter safety
  • Serper search support
  • Open Deep Research demo
  • Enhanced Gradio UI with sidebar layout

Full Release Notes

## New features 🚀🚀
* Add Docker executor by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/733
    - This means you can now initialize agents with `executor="docker"` to run code in a Docker sandbox! Docs coming soon.
* Safer local Python interpreter
  * Make local Python interpreter safer by checking if returns builtins by @albertvillanova in https://github.com/huggingface/smolagents/pull/848
  * Make local Python interpreter safer by checking if returns dangerous modules by @albertvillanova in https://github.com/huggingface/smolagents/pull/861
  * Make local Python interpreter safer by adding builtins to dangerous modules by @albertvillanova in https://github.com/huggingface/smolagents/pull/869
* Add support for serper search by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/698
* Support running a demo of Open DeepResearch by @albertvillanova in https://github.com/huggingface/smolagents/pull/806
* Enable Colab notebook version of each doc page (by renaming doc file extension from .md to .mdx) by @albertvillanova in https://github.com/huggingface/smolagents/pull/691

## Fixes and improvements 🔧
* Bump dev version: v1.10.0.dev0 by @albertvillanova in https://github.com/huggingface/smolagents/pull/649
* Improve missing toolcall exception by @GrahamTheCoder in https://github.com/huggingface/smolagents/pull/614
* refactor: simplify file type checking from MIME to extension by @kingdomad in https://github.com/huggingface/smolagents/pull/342
* Bugfix: Groq via LiteLLM 🚅 by @JGalego in https://github.com/huggingface/smolagents/pull/605
* Add docstring args for MultiStepAgent.from_folder by @albertvillanova in https://github.com/huggingface/smolagents/pull/654
* Remove non-existent subfolder arg in MultiStepAgent.from_hub by @albertvillanova in https://github.com/huggingface/smolagents/pull/653
* Minor fix save agents by @keetrap in https://github.com/huggingface/smolagents/pull/645
* Align step numbers in monitoring logging by @spemed in https://github.com/huggingface/smolagents/pull/667
* Remove deprecated resume_download arg in from_hub by @albertvillanova in https://github.com/huggingface/smolagents/pull/670
* Pass notebook_folder to build notebook docs by @albertvillanova in https://github.com/huggingface/smolagents/pull/671
* Update the prompts for delegating subtasks to agents in prompt files by @spemed in https://github.com/huggingface/smolagents/pull/678
* Documentation: manage agent's memory by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/675
* Move contributing details into contributing file by @GrahamTheCoder in https://github.com/huggingface/smolagents/pull/651
* Fix typo in error message by @samee99 in https://github.com/huggingface/smolagents/pull/687
* Refactor evaluate ast to improve readability by @CalOmnie in https://github.com/huggingface/smolagents/pull/625
* Update docs in zh/examples/multiagents.md by @spemed in https://github.com/huggingface/smolagents/pull/688
* Make dangerous_patterns a module variable by @CalOmnie in https://github.com/huggingface/smolagents/pull/505
* Pin transformers < 4.49.0 to fix TypeError: LlavaProcessor: got multiple values for keyword argument 'images' by @albertvillanova in https://github.com/huggingface/smolagents/pull/693
* Respect formatting in ast.FormattedValue for local_python_executor by @LorienMan in https://github.com/huggingface/smolagents/pull/660
* Simplify instrumentation for phoenix by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/697
* Test validate_tool_attributes by @albertvillanova in https://github.com/huggingface/smolagents/pull/696
* Remove translation tool from README by @keetrap in https://github.com/huggingface/smolagents/pull/705
* Fix test docs by @albertvillanova in https://github.com/huggingface/smolagents/pull/701
* Fix SpeechToTextTool by @albertvillanova in https://github.com/huggingface/smolagents/pull/706
* Fixed typo in Telemetry docs by @sergiopaniego in https://github.com/huggingface/smolagents/pull/710
* Fix validate_tool_attributes for non-literal defaults by @albertvillanova in https://github.com/huggingface/smolagents/pull/711
* Ignore parameter types in tool docstrings by @carlsberg03 in https://github.com/huggingface/smolagents/pull/724
* Refactor MultiStepAgent and improve some tests by @colesmcintosh in https://github.com/huggingface/smolagents/pull/598
* Fix duplicate managed agent name and its tool name by @keetrap in https://github.com/huggingface/smolagents/pull/721
* Update docs on how to change prompts by @albertvillanova in https://github.com/huggingface/smolagents/pull/725
* Remove transformers tasks from load_tool docstring by @albertvillanova in https://github.com/huggingface/smolagents/pull/726
* Remove article section from launch_gradio_demo Interface by @albertvillanova in https://github.com/huggingface/smolagents/pull/728
* Update logo in Readme by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/730
* Support passing additional parameters for openai client initialization by @touseefahmed96 in https://github.com/huggingface/smolagents/pull/388
* Add api-base and api-key arguments to CLI by @keetrap in https://github.com/huggingface/smolagents/pull/734
* Fix CI test error: DuckDuckGoSearchException: 202 Ratelimit by @albertvillanova in https://github.com/huggingface/smolagents/pull/739
* Fix typo in Makefile by @albertvillanova in https://github.com/huggingface/smolagents/pull/741
* Add disclaimer in benchmark to request access for gated dataset by @albertvillanova in https://github.com/huggingface/smolagents/pull/744
* Define test RUN_ALL requirement marker in one file by @albertvillanova in https://github.com/huggingface/smolagents/pull/743
* Rename managed agent in multiagents docs to avoid confusing the LLM by @albertvillanova in https://github.com/huggingface/smolagents/pull/766
* Update documentation on sandboxes by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/747
* Add audioop-lts as Python>=3.13 Open DeepResearch requirement for pydub by @albertvillanova in https://github.com/huggingface/smolagents/pull/749
* Create docker extra installation dependency by @albertvillanova in https://github.com/huggingface/smolagents/pull/764
* Fix bracket logging in rich by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/753
* Enable custom final answer in CodeAgent by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/769
* Fix TypeError raised by launch_gradio_demo with PipelineTool by @albertvillanova in https://github.com/huggingface/smolagents/pull/732
* Use docker extra in Secure code execution docs by @albertvillanova in https://github.com/huggingface/smolagents/pull/780
* Support custom final_answer in agent init by @albertvillanova in https://github.com/huggingface/smolagents/pull/783
* Fix LiteLLMModel API key usage in CLI by @asselindebeauville in https://github.com/huggingface/smolagents/pull/788
* Secure code execution wrong title in docs TOC by @maeste in https://github.com/huggingface/smolagents/pull/771
* Update Open DeepResearch to install smolagents from local path by @albertvillanova in https://github.com/huggingface/smolagents/pull/786
* Support importing scipy and sklearn without AttributeError: module 'scipy.sparse._coo' has no attribute 'upcast' by @albertvillanova in https://github.com/huggingface/smolagents/pull/790
* Fix and test validate_tools_and_managed_agents by @albertvillanova in https://github.com/huggingface/smolagents/pull/731
* Update README with mention to Docker sandboxed execution by @touseefahmed96 in https://github.com/huggingface/smolagents/pull/803
* Added sidebar layout and session state management for agent by @yvrjsharma in https://github.com/huggingface/smolagents/pull/797
* Fix CI quality in examples/gradio_ui by @albertvillanova in https://github.com/huggingface/smolagents/pull/822
* Improve dependency loading of Open DeepResearch visual_qa by @albertvillanova in https://github.com/huggingface/smolagents/pull/821
* Improve setup instruction for Open DeepResearch by @albertvillanova in https://github.com/huggingface/smolagents/pull/823
* Support other models than o1 in Open Deep Research by @albertvillanova in https://github.com/huggingface/smolagents/pull/824
* Fix final_answer_pattern matching in remote executors by @albertvillanova in https://github.com/huggingface/smolagents/pull/826
* Fix and refactor tests of Docker executors by @albertvillanova in https://github.com/huggingface/smolagents/pull/827
* Remove unnecessary self argument in GoogleSearchTool super() call by @gael1130 in https://github.com/huggingface/smolagents/pull/828
* Fix call from dict with LocalPythonExecutor by @albertvillanova in https://github.com/huggingface/smolagents/pull/837
* Minor fix of import in VisitWebpageTool by @keetrap in https://github.com/huggingface/smolagents/pull/840
* No need of these Files by @touseefahmed96 in https://github.com/huggingface/smolagents/pull/798
* fix: correcting tool_call role by @zndqs in https://github.com/huggingface/smolagents/pull/779
* Fix translation guide as it points to invalid location by @FanwangM in https://github.com/huggingface/smolagents/pull/794
* Fix load_model in webagent CLI by @albertvillanova in https://github.com/huggingface/smolagents/pull/855
* Fix message for observations without tool_calls by @albertvillanova in https://github.com/huggingface/smolagents/pull/857
* Fix CI test_action_step_to_messages by @albertvillanova in https://github.com/huggingface/smolagents/pull/868
* Fix LiteLLMModel docstring by @albertvillanova in https://github.com/huggingface/smolagents/pull/885
* Fix bug where operations count was not reinitialized at each step by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/866
* Fix CLI webagent by @albertvillanova in https://github.com/huggingface/smolagents/pull/889

## New Contributors
* @JGalego made their first contribution in https://github.com/huggingface/smolagents/pull/605
* @spemed made their first contribution in https://github.com/huggingface/smolagents/pull/667
* @samee99 made their first contribution in https://github.com/huggingface/smolagents/pull/687
* @LorienMan made their first contribution in https://github.com/huggingface/smolagents/pull/660
* @carlsberg03 made their first contribution in https://github.com/huggingface/smolagents/pull/724
* @colesmcintosh made their first contribution in https://github.com/huggingface/smolagents/pull/598
* @asselindebeauville made their first contribution in https://github.com/huggingface/smolagents/pull/788
* @maeste made their first contribution in https://github.com/huggingface/smolagents/pull/771
* @yvrjsharma made their first contribution in https://github.com/huggingface/smolagents/pull/797
* @gael1130 made their first contribution in https://github.com/huggingface/smolagents/pull/828
* @zndqs made their first contribution in https://github.com/huggingface/smolagents/pull/779

**Full Changelog**: https://github.com/huggingface/smolagents/compare/v1.9.2...v1.10.0