Releases: huggingface/smolagents
Releases · huggingface/smolagents
v1.11.0
What's Changed
- Bump dev version: v1.11.0.dev0 by @albertvillanova in #890
- Add Chinese translation & fix zh doc build process by @muscaestar in #893
- Fix chained assignment in local executor by @sysradium in #843
- Check dangerous modules instead of dangerous patterns by @albertvillanova in #877
- Fix typo in building good agents tutorial by @whistler in #903
- Add tests and refactor CLI by @albertvillanova in #892
- Bump mcpadapt >= 0.0.15 by @albertvillanova in #895
- Update docs about changing the system prompt by @albertvillanova in #900
- Support transformers 4.49.0 by @albertvillanova in #898
- Fix typo in list of dangerous functions by @albertvillanova in #909
- Improve evaluate_subscript by @albertvillanova in #916
- Enforce security check in all evaluations by @albertvillanova in #906
- Improve performance of test_while infinite loop by @albertvillanova in #907
- Test all dangerous functions and fix check of os.system by @albertvillanova in #911
- Fix Tool docstring, and model init exception by @zhanluxianshen in #927
- Remove default model_id from models by @albertvillanova in #905
- Improve docstring of parse_code_blobs by @albertvillanova in #876
- Test vulnerability for dangerous modules by @albertvillanova in #929
- Fix broken link to benchmarking code in README by @amaarora in #933
- Fix Gradio UI for unnamed agents by @sysradium in #812
- Add mlx-lm to all extra by @albertvillanova in #961
- Fix Gradio UI for None name by @albertvillanova in #956
- Introduce counter class by @Bilokin in #891
- Fix AzureOpenAIServerModel to not call openai.OpenAI by @albertvillanova in #966
- Fix CI usage of uv by @albertvillanova in #970
- Adds VLLMModel by @NathanHB in #337
- Support passing flatten_messages_as_text to OpenAIServerModel and test by @albertvillanova in #959
- Fix tool function implementation by @albertvillanova in #943
- Fix broken example of using MCP Server by @njbrake in #936
- Support passing any kwargs to E2BExecutor Sandbox by @aymeric-roucher in #951
- Fix VLLMModel example in models docs by @zhanluxianshen in #976
- Fix OpenAIServerModel client by @durd07 in #975
- Forbid all modules by default except whitelist authorized_imports by @albertvillanova in #935
- Forbid access to all dunder attributes by default by @albertvillanova in #979
- Raise agent generation errors by @aymeric-roucher in #948
- Update Open Deep Research's README.md by @keetrap in #763
- Make sure to log thoughts if verbosity_level is set to high by @aymeric-roucher in #964
- Get correct source code for functions defined in local executor. by @aymeric-roucher in #973
New Contributors
- @muscaestar made their first contribution in #893
- @whistler made their first contribution in #903
- @zhanluxianshen made their first contribution in #927
- @amaarora made their first contribution in #933
- @NathanHB made their first contribution in #337
- @njbrake made their first contribution in #936
- @durd07 made their first contribution in #975
Full Changelog: v1.10.0...v1.11.0
v1.10.0
New features 🚀🚀
- Add Docker executor by @aymeric-roucher in #733
- This means you can now initialize agents with
executor="docker"
to run code in a Docker sandbox! Docs coming soon.
- This means you can now initialize agents with
- Safer local Python interpreter
- Make local Python interpreter safer by checking if returns builtins by @albertvillanova in #848
- Make local Python interpreter safer by checking if returns dangerous modules by @albertvillanova in #861
- Make local Python interpreter safer by adding builtins to dangerous modules by @albertvillanova in #869
- Add support for serper search by @aymeric-roucher in #698
- Support running a demo of Open DeepResearch by @albertvillanova in #806
- Enable Colab notebook version of each doc page (by renaming doc file extension from .md to .mdx) by @albertvillanova in #691
Fixes and improvements 🔧
- 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
- 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
- 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
- Update README with mention to Docker sandboxed execution by @touseefahmed96 in #803
- 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
- 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
- Fix CI test_action_step_to_messages by @albertvillanova in #868
- 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 https://github.com/huggingface/smolage...
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