v1.13.0

huggingface/smolagentsv1.13.0Apr 2, 2025by aymeric-roucher

AI Summary

Added image logging to Gradio UI, improved import authorization by allowing subpackage imports, and various fixes and improvements.

Key Highlights

  • Gradio UI now logs images observed by agents
  • Re-authorized submodule imports when top-level packages are allowed
  • Various security and stability improvements
  • Enhanced tool and agent functionality
  • Improved documentation and error handling

New Features

  • Image logging in Gradio UI
  • Subpackage import authorization
  • Enhanced tool validation
  • Improved agent interruption feature
  • Better error handling for tool calls

Full Release Notes

## Important changes 🚀 
* Gradio UI now logs images observed by your agent: log observations images by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/1113
* allow users to retrieve original Gradio app by @sysradium in https://github.com/huggingface/smolagents/pull/811
* Re-authorize submodule imports if top was allowed by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/1103
     - We had internal debate about this one: when a user authorizes import of a top level package like `additional_authorized_imports=["numpy"]`, should it:
         - Option 1: by default enable all subpackages like numpy.random, except potentially dangerous ones that we then have to detect through a blocklist?
         - Option 2: not import any subpackage, thus user have to type any subpackage they want to authorize, as in `additional_authorized_imports=["numpy", "numpy.random", "numpy.other_subpackage", ...]`
         Option 2 is safer, but Option 1 is much more practical, so we went with option 1. Daily disclaimer: code execution can never be 100% safe on you system, if you want to increase safety, use one of the remote executors that we propose, E2B or Docker.

## Fixes & Tweaks
* Bump dev version: v1.13.0.dev0 by @albertvillanova in https://github.com/huggingface/smolagents/pull/1035
* Fix telemetry AttributeError: module 'smolagents' has no attribute 'ApiModel' by @IlyaGusev in https://github.com/huggingface/smolagents/pull/1040
* Hotfix CI: pin transformers < 4.50.0 by @albertvillanova in https://github.com/huggingface/smolagents/pull/1044
* Align name of tool __source__ by @albertvillanova in https://github.com/huggingface/smolagents/pull/1042
* Update type hints and docstrings of Agent/Tool .save with Path type by @albertvillanova in https://github.com/huggingface/smolagents/pull/1036
* Fix PythonInterperterTool description of code input with auth imports by @benediktstroebl in https://github.com/huggingface/smolagents/pull/1053
* Fix typos in Code Agent prompt by @andysalerno in https://github.com/huggingface/smolagents/pull/1063
* Validate agent name by @Misakar-0v0 in https://github.com/huggingface/smolagents/pull/768
* fix(`MLXModel`): define var to avoid `UnboundLocalError` by @SauravMaheshkar in https://github.com/huggingface/smolagents/pull/1059
* Minor fix code block rendering in Open DeepResearch README by @keetrap in https://github.com/huggingface/smolagents/pull/1055
* Add WikipediaSearchTool to default tools by @touseefahmed96 in https://github.com/huggingface/smolagents/pull/514
* Improve MLXModel call by @albertvillanova in https://github.com/huggingface/smolagents/pull/1067
* Support transformers 4.50.0 by @albertvillanova in https://github.com/huggingface/smolagents/pull/1070
* Improve Tool.push_to_hub to avoid saving to local filesystem by @albertvillanova in https://github.com/huggingface/smolagents/pull/1051
* Fix Tool.to_dict for nullable input parameter by @albertvillanova in https://github.com/huggingface/smolagents/pull/1038
* Support tool Gradio app with boolean input type by @albertvillanova in https://github.com/huggingface/smolagents/pull/1065
* Support running CI on push to ci-* branch by @albertvillanova in https://github.com/huggingface/smolagents/pull/1047
* Set Agent/Tool requirements as a sorted list by @albertvillanova in https://github.com/huggingface/smolagents/pull/1048
* Support passing raw to ChatMessage.from_dict by @albertvillanova in https://github.com/huggingface/smolagents/pull/1010
* Distinguish between AgentToolCallError and AgentToolExecutionError by @sysradium in https://github.com/huggingface/smolagents/pull/1060
* Add detail on potential threats to system by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/1077
* Refactor Tool.save by @albertvillanova in https://github.com/huggingface/smolagents/pull/1075
* Fixing typos in toolcallingagent prompt by @Y-artios in https://github.com/huggingface/smolagents/pull/1082
* Refactor step yielding during streaming run to log PlanningSteps by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/1083
* Make pandas a test extra dependency only by @albertvillanova in https://github.com/huggingface/smolagents/pull/1081
* Add security disclaimer to MCP docs by @albertvillanova in https://github.com/huggingface/smolagents/pull/1090
* Fix get_json_schema for docstrings with type annotations by @albertvillanova in https://github.com/huggingface/smolagents/pull/1088
* Remove transformers/huggingface-hub to check torch availability by @albertvillanova in https://github.com/huggingface/smolagents/pull/1022
* Improve ApiModel and subclasses instantiation by @albertvillanova in https://github.com/huggingface/smolagents/pull/1095
* Add trust_remote_code to ToolCollection.from_mcp by @albertvillanova in https://github.com/huggingface/smolagents/pull/1091
* Add user message after plan by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/1104
* Add agent interruption by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/1112
* Validate tool name as Python identifier by @albertvillanova in https://github.com/huggingface/smolagents/pull/1041
* Increase request timeout for tests that time out by @albertvillanova in https://github.com/huggingface/smolagents/pull/972
* Update README.md by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/1125
* Change: expanded error exception for incorrect tool parameters by @cgthayer in https://github.com/huggingface/smolagents/pull/1099
* Hotfix CI AttributeError: 'PngImageFile' object has no attribute 'filename' by @albertvillanova in https://github.com/huggingface/smolagents/pull/1128
* Replace AgentGenerationError with AgentParsingError for ToolCallingAgent by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/1131
* Fix planning_interval=1 bug in MultiStepAgent by @RolandJAAI in https://github.com/huggingface/smolagents/pull/1118
* Set main as the no-argument CLI entry point  by @albertvillanova in https://github.com/huggingface/smolagents/pull/1126

## New Contributors
* @benediktstroebl made their first contribution in https://github.com/huggingface/smolagents/pull/1053
* @andysalerno made their first contribution in https://github.com/huggingface/smolagents/pull/1063
* @Misakar-0v0 made their first contribution in https://github.com/huggingface/smolagents/pull/768
* @SauravMaheshkar made their first contribution in https://github.com/huggingface/smolagents/pull/1059
* @Y-artios made their first contribution in https://github.com/huggingface/smolagents/pull/1082
* @cgthayer made their first contribution in https://github.com/huggingface/smolagents/pull/1099

**Full Changelog**: https://github.com/huggingface/smolagents/compare/v1.12.0...v1.13.0