Releases: huggingface/smolagents
Releases · huggingface/smolagents
Release list
v1.26.0
What's Changed
- Bump dev version: v1.26.0.dev0 by @albertvillanova in #2273
- Add new possible error message to test of LiteLLM providers w/o key by @albertvillanova in #2275
- Fix typo cleanups across docs, examples, and tests by @luojiyin1987 in #2208
- fix: correct f-string escaping in ToolSerializer.dumps error message by @Ricardo-M-L in #2134
- Revert fix: correct f-string escaping by @albertvillanova in #2291
- Update docstring of LocalPythonExecutor by @albertvillanova in #2292
- Add Exa as a search engine option in WebSearchTool by @10ishq in #2139
- Remove remote WasmExecutor by @albertvillanova in #2321
New Contributors
- @luojiyin1987 made their first contribution in #2208
- @Ricardo-M-L made their first contribution in #2134
- @10ishq made their first contribution in #2139
Full Changelog: v1.25.0...v1.26.0
v1.25.0
What's Changed
- Bump dev version: v1.25.0.dev0 by @albertvillanova in #1939
- Fix import of TokenUsage by @albertvillanova in #1943
- Add MLflow integration doc by @B-Step62 in #1884
- Refactor agent/model deserialization: Replace importlib with registry pattern by @albertvillanova in #1944
- Update _function_type_hints_utils.py: CohereForAI -> CohereLabs by @Michellehbn in #1946
- Fix High impact vulnerability on remote executors by @nnfrog in #1637
- Fix SafeSerializer.get_deserializer_code by @albertvillanova in #1983
- Fix RemotePythonExecutor._deserialize_final_answer for legacy no-prefix pickle by @albertvillanova in #1984
- Test 'pickle:...' payloads are properly decoded by @albertvillanova in #1985
- Remove support for legacy no-prefix pickle by @albertvillanova in #1986
- Create docs reference page for Python executors by @albertvillanova in #1987
- Isolate WasmExecutor Deno cache to per-instance temp directory by @albertvillanova in #1995
- Switch wildcard bind to loopback-only endpoint in WasmExecutor by @albertvillanova in #2025
- Use token in DockerExecutor by @albertvillanova in #2027
- Remove allow_origin from Docker and Modal executors by @albertvillanova in #2028
- Use token in WasmExecutor by @albertvillanova in #2031
- Fix evaluate_with() calling exit on wrong object by @dubin555 in #2029
- Fix evaluate_with by suppressing exception if truthy exit by @albertvillanova in #2033
- Use requests.Session in WasmExecutor by @albertvillanova in #2032
- Fix Rich MarkupError in AgentLogger.log_task by rendering untrusted text safely by @Barcavin in #1894
- Emphasise sandboxing is required; LocalPythonExecutor is not a security tool by @zsims in #2039
- Fix log_error rendering brackets as Rich markup by @albertvillanova in #2077
- Support huggingface-hub >= 1 by @merveenoyan in #2075
- Remove unused safe_serialization param from _websocket_run_code_raise_errors by @albertvillanova in #2131
- Set allow_pickle default to False in internal calls by @albertvillanova in #2132
- 🔒 Pin GitHub Actions to commit SHAs by @paulinebm in #2149
- chore: bump doc-builder SHA for PR upload workflow by @rtrompier in #2194
- chore: bump doc-builder SHA for main doc build workflow by @rtrompier in #2219
New Contributors
- @B-Step62 made their first contribution in #1884
- @Michellehbn made their first contribution in #1946
- @dubin555 made their first contribution in #2029
- @zsims made their first contribution in #2039
- @paulinebm made their first contribution in #2149
- @rtrompier made their first contribution in #2194
Full Changelog: v1.24.0...v1.25.0
v1.24.0
What's Changed
- Bump version to 1.24 by @aymeric-roucher in #1871
- Fix: Add backward compatibility for deprecated HfApiModel by @MohammadKassas143 in #1863
- Fix typo in secure_code_execution.md by @jonathanagustin in #1892
- Update no-stop-sequence model list to support gpt-5.2* by @aymeric-roucher in #1895
- Fix run_gaia.py token_counts when managed agent is called more than once by @suryabdev in #1878
- 🌐 [i18n-KO] Translated
tools.mdto Korean by @Kim-Ju-won in #1835 - Support passing additional params to apply_chat_template by @albertvillanova in #1902
- fix(gradio_ui): Gradio 6 compatibility by @alejandro-ao in #1903
- Coerce tool calls from APIs into smolagents ChatMessageToolCall format by @aymeric-roucher in #1900
- Add FinalAnswerStep to possible step_callbacks by @suryabdev in #1881
- Upgrade GitHub Actions for Node 24 compatibility by @salmanmkc in #1909
- fix: prevent FinalAnswerException from being caught by except Exception by @majiayu000 in #1914
- Add DeepWiki badge to README by @aymeric-roucher in #1846
- Implement robust timeout mechanism for Python execution by @albertvillanova in #1910
New Contributors
- @MohammadKassas143 made their first contribution in #1863
- @jonathanagustin made their first contribution in #1892
- @alejandro-ao made their first contribution in #1903
- @salmanmkc made their first contribution in #1909
- @majiayu000 made their first contribution in #1914
Full Changelog: v1.23.0...v1.24.0
v1.23.0
Improvements ✨
- Update final answer checks to accept the agent instance by @Zoe14 in #1648
- Dialog mode CLI by @aymeric-roucher in #1540
- Add Blaxel support for remote code execution by @Joffref in #1791
- Proposition: Add exponential backoff with jitter for retries by @suryabdev in #1829
- Cut generation at stop sequence post generation by @aymeric-roucher in #1802
- Move executor type validation to python executor creation by @Lrakotoson in #1800
- Support custom Python code executor in CodeAgent by @albertvillanova in #1707
- Retry on rate limit errors by @aymeric-roucher in #1801
- Change default InferenceClient model to Qwen/Qwen3-Next-80B-A3B-Thinking by @suryabdev in #1813
- Remove 'Server' from model names in doc by @aymeric-roucher in #1812
- Optimize comprehension evaluation with generator-based approach in LocalPythonExecutor by @albertvillanova in #1824
- LocalPythonExecutor: Add support for nested dictcomp and setcomp by @suryabdev in #1823
- Support parsing
anyOffrom MCP tools by @duguyue100 in #1708 - Add Modal as sandbox option to docs front page by @sandcat100 in #1865
- make additional_args nullable for managed agents by @nflo in #1827
- vLLM: Move from guided_options_request to structured_outputs by @suryabdev in #1805
Fixes 🛠️
- Fix agent logs: logging "None" and simplify the logic by @albertvillanova in #1788
- Fix dict(message) bug in AgentMemory.replay for ChatMessage objects by @Flakes342 in #1763
- Fix LocalPythonExecutor support for Enum and other metaclasses by @colesmcintosh in #1797
- Handle
Nonecontent in stop-sequence trimming by @chahn in #1826 - Fix minor benchmark script bugs by @suryabdev in #1822
- Fix YAML scanner error when building documentation by @albertvillanova in #1841
- Pin huggingface-hub <1.0.0 to fix failed to build tokenizers by @albertvillanova in #1844
- Fixed SyntaxError format: keep exception type and message on same line (#835) by @balazsthomay in #1864
- Fix CLI Tool.from_space() call by auto-generating name and description (#1535) by @balazsthomay in #1859
- Add gpt-5.1 support by @suryabdev in #1868
- bug: role not converted back to enum by @njbrake in #1833
- Parallel tool calls lose OpenTelemetry context: tool spans not nested under agent step by @Barcavin in #1840
Documentation 📚
- Bump dev version: v1.23.0.dev0 by @albertvillanova in #1787
- 🌐 [i18n-KO] Translated memory.md to Korean by @HyunZ118 in #1793
- 🌐 [i18n-KO] Translated
using_different_models.mdto Korean by @FacerAin in #1772 - 🌐 [i18n-KO] Translated
guided_tour.mdto Korean by @FacerAin in #1711 - 🌐 [i18n-KO] Translated
async_agent.mdto Korean by @FacerAin in #1749 - 🌐 [i18n-KO] Translated
agents.mdto Korean by @Kim-Ju-won in #1720 - 🌐 [i18n-KO] Translated
rag.mdto Korean by @Kim-Ju-won in #1646 - Documentation: Minor fixes by @suryabdev in #1809
- 🌐 [i18n-KO] Translated
web_browser.mdto Korean by @FacerAin in #1748 - [i18n-es] Translating docs to spanish by @1-echo in #1806
- 🌐 [i18n-KO] Translated
plan_customization.mdto Korean by @FacerAin in #1771 - 🌐 [i18n-KO] Translated
inspect_runs.mdto Korean by @FacerAin in #1747 - Build PR documentation for all languages by @albertvillanova in #1842
Full Changelog: v1.22.0...v1.23.0
v1.22.0
What's Changed
- Bump dev version: v1.22.0.dev0 by @albertvillanova in #1657
- refactor(PythonExecutor): inherit from ABC and declare abstract methods by @HairlessVillager in #1654
- Fix error for GPT-5 not supporting the
stopparameter by @Xmader in #1662 - Enable return_full_result directly in run method by @aymeric-roucher in #1658
- Make RunResult json serializable by @aymeric-roucher in #1659
- Change truncation to remove end rather than middle by @aymeric-roucher in #1665
- Document that model kwargs are forwarded to model completion call by @albertvillanova in #1679
- Fix missing kwargs forward to vLLM model generate call by @albertvillanova in #1680
- Raise RuntimeError with LiteLLM response details if no choices by @albertvillanova in #1683
- Fix AmazonBedrockModel with reasoning/thinking content by @albertvillanova in #1681
- Fix installation command in README by quoting extra by @shahgahmed in #1685
- CI hotfix: Pin openai < 1.100.0 for litellm extra by @albertvillanova in #1693
- Support openai 1.100 for litellm extra by @albertvillanova in #1698
- Pin telemetry extra >=0.1.15 to use new TokenUsage structure by @albertvillanova in #1699
- Add AGENTS.md by @albertvillanova in #1701
- Test telemetry extra by @albertvillanova in #1700
- Replace slim with bullseye base image in Docker executor by @albertvillanova in #1702
- fix: error missing f-string by @njbrake in #1691
- Support custom Dockerfile in DockerExecutor by @albertvillanova in #1705
- Support MCP structured output and output schema by @chahn in #1663
- Improve agent image handling by @aaron-ang in #1601
- 🌐 [i18n-KO] Translated
multiagents.mdto Korean by @pyapyapya in #1644 - Fix CI 403 error for Wikipedia page in test_visit_webpage by @albertvillanova in #1716
- fix typos in the system prompt by @Frame17 in #1710
- Fix pip install commands by quoting extras by @albertvillanova in #1690
- Fix deprecation warning about parameter messages by @albertvillanova in #1718
- Fix warning about parameter max_new_tokens by @albertvillanova in #1721
- Adds Modal Remote Executor by @thomasjpfan in #1722
- Fix formatting of title in translation section of documentation by @albertvillanova in #1727
- Remove untranslated sections from the documentation by @albertvillanova in #1729
- fix: add ipykernel in dockerfile of prebuilt docker executor by @cyyeh in #1731
- Fix E2BExecutor by pinning e2b-code-interpreter to < 2 by @albertvillanova in #1733
- Fix DockerExecutor connection reset error with server readiness check by @benoriol in #1684
- [i18n-KO] Translated building_good_agents.md to Korean by @FacerAin in #1714
- 🌐 [i18n-KO] Translated installation.md to Korean by @FacerAin in #1647
- Support e2b-code-interpreter v2 by @August-murr in #1751
- Fix token count initialization when plan_message.token_usage is None by @satwikkansal in #1752
- Support user-configurable parameter override for model completion parameters by @albertvillanova in #1678
- Fix error for grok-4/grok-3-mini not supporting the stop parameter by @suryabdev in #1766
- Replace DockerExecutor Dockerfile with file object by @albertvillanova in #1738
- Update documentation to clarify
instructionsare appended by @chahn in #1709 - 🌐 [i18n-KO] Translated
react.mdto Korean by @NSBG in #1666 - Pass tools_to_call_from to TransformersModel._prepare_completion_kwargs by @albertvillanova in #1782
- 🌐 [i18n-KO] Translated
models.mdto Korean by @Kim-Ju-won in #1776 - Fix AttributeError when trying to log a None by @albertvillanova in #1786
- fix(agent): remove unused get_variable_names function by @keli-wen in #1784
- Fix XPath injection in search_item_ctrl_f by @albertvillanova in #1768
- Use context manager for per-operation websocket connection in DockerExecutor by @albertvillanova in #1750
New Contributors
- @Xmader made their first contribution in #1662
- @shahgahmed made their first contribution in #1685
- @aaron-ang made their first contribution in #1601
- @pyapyapya made their first contribution in #1644
- @Frame17 made their first contribution in #1710
- @cyyeh made their first contribution in #1731
- @satwikkansal made their first contribution in #1752
- @suryabdev made their first contribution in #1766
- @Kim-Ju-won made their first contribution in #1776
- @keli-wen made their first contribution in #1784
Full Changelog: v1.21.3...v1.22.0
v1.21.3
Bug Fixes 🐛
- Fix E2BExecutor by pinning e2b-code-interpreter to < 2 by @albertvillanova in #1733
Full Changelog: v1.21.2...v1.21.3
v1.21.2
Bug Fixes 🐛
- Pin telemetry extra >=0.1.15 to use new TokenUsage structure by @albertvillanova in #1699
Full Changelog: v1.21.1...v1.21.2
v1.21.1
Bug Fixes 🐛
Full Changelog: v1.21.0...v1.21.1
v1.21.0
Enhancements ✨
-
Tool & Model Improvements
- Add Tool to_code_prompt and to_tool_calling_prompt by @albertvillanova in #1599
- Improve function body extraction in tools by @HairlessVillager in #1627
- Support passing model_kwargs to TransformersModel by @albertvillanova in #1608
- Support dict messages as direct input to models by @albertvillanova in #1570
-
Executor Improvements
- Enhance
LocalPythonExecutorsecurity by blocking dunder calls by @nnfrog in #1551 - Fix
continuesemantics ofLocalPythonExecutorby @adaminsky in #1645 - Fix
GeneratorExpinLocalPythonExecutorto returnGeneratorinstead oflistby @albertvillanova in #1650
- Enhance
-
Gradio & UI
- Reset agent memory on GradioUI clear button by @albertvillanova in #1611
- Use
gr.Numberfor mapping integer and number type components inlaunch_gradio_demoby @karenwky in #1320
Bug Fixes 🐛
- Fix: Prevent empty additional_args from being added to agent prompt by @jokokojote in #1566
- Fix SyntaxError in generated Gradio app due to 'class' attribute by @albertvillanova in #1615
- Fix serialization inconsistency in MultiStepAgent.to_dict/from_dict for managed_agents by @hazrmard in #1577
- Fix a kwargs error in LocalPythonExecutor by @aymeric-roucher in #1583
- Fix structured outputs by @MicrosoftJames in #1642
- Fix bug where
AmazonBedrockServerModelcrashes in thinking mode by @benoriol in #1632 - Fix: Remove duplicate line in
tool_calling_agentprompt by @yusuf-eren in #1636 - Fix:
RemotePythonExecutorshould not send variables if none exist by @thomasjpfan in #1605 - Disable parallel tool calls for final answer by @aymeric-roucher in #1539
Documentation 📚
- Improve Installation docs with uv option by @albertvillanova in #1550
- Fix and improve MCP server security warnings in docs by @albertvillanova in #1549
- DOC: Fix image link for docs (secure_code_execution.md) by @FacerAin in #1582
- Update title of page "What are agents" by @aymeric-roucher in #1546
- Enable multilingual docs by @albertvillanova in #1633
- 🌐 [i18n-KO] Translated
index.mdto Korean by @FacerAin in #1581 - 🌐 [i18n-KO] Translated
text_to_sql.mdto Korean by @NSBG in #1603
CI / Dependency Updates 🧪
- Pin mcpadapt to support image/audio content by @albertvillanova in #1558
- Temporarily skip wrongly implemented tests by @albertvillanova in #1571
- CI hotfix: Pin mlx < 0.26.5 by @albertvillanova in #1586
- Support mlx-0.26.5 by @albertvillanova in #1589
- CI hotfix: Pin transformers < 4.54.0 by @albertvillanova in #1620
- Support transformers 4.54.0 by @albertvillanova in #1625
- Fix CI PytestUnknownMarkWarning: Unknown pytest.mark.timeout by @albertvillanova in #1630
- Fix CI quality: remove trailing whitespace by @albertvillanova in #1617
Deprecations & Cleanups 🧹
- Replace deprecated ast.Num and ast.Str with ast.Constant in tool validation by @WilliamRabuel in #1594
- Remove deprecated
grammarparameter by @albertvillanova in #1651 - Remove deprecated token count attributes by @albertvillanova in #1652
- Remove deprecated agent
logsattribute by @albertvillanova in #1653 - Remove mention of deprecated
ManagedAgentfrom docs by @albertvillanova in #1655 - Remove deprecated default
ssetransport by @albertvillanova in #1656 - Replace duckduckgo_search with ddgs to address package rename warning by @WilliamRabuel in #1593
- Remove unused is_same_item function by @albertvillanova in #1631
- Remove unnecessary import by @rahul-1729 in #1639
- Simplify _is_package_available by @albertvillanova in #1641
Miscellaneous 🔧
- Add support for Amazon Bedrock API Keys by @colesmcintosh in #1612
- Factorize create_agent_gradio_app_template function by @albertvillanova in #1616
- Fix: Allow passing integers for floats by @aymeric-roucher in #1623
- Fix Tool.forward to raise NotImplementedError instead of returning by @HairlessVillager in #1628
- Make validate_tool_arguments raise instead of returning error string by @albertvillanova in #1634
- Remove mention of python in additional args by @aymeric-roucher in #1584
- ToolCallingAgent: remove unnecessary addition to
model_outputby @aymeric-roucher in #1622 - Minor fix in toolCallingAgentPrompt by @rahul-1729 in #1574
Maintenance 🏗️
- Bump dev version: v1.21.0.dev0 by @albertvillanova in #1544
- Remove empty issue template by @albertvillanova in #1562
- Improve issue templates by @albertvillanova in #1563
- Add issue template for documentation improvements by @albertvillanova in #1564
- Add uv option to CONTRIBUTING by @albertvillanova in #1561
New Contributors
- @jokokojote made their first contribution in #1566
- @rahul-1729 made their first contribution in #1574
- @WilliamRabuel made their first contribution in #1594
- @FacerAin made their first contribution in #1582
- @thomasjpfan made their first contribution in #1605
- @hazrmard made their first contribution in #1577
- @HairlessVillager made their first contribution in #1628
- @benoriol made their first contribution in #1632
- @yusuf-eren made their first contribution in #1636
- @nnfrog made their first contribution in #1551
- @NSBG made their first contribution in #1603
- @karenwky made their first contribution in #1320
- @MicrosoftJames made their first contribution in #1642
- @adaminsky made their first contribution in #1645
Full Changelog: v1.20.0...v1.21.0
v1.20.0
New Features ✨
-
Remote Execution:
- Implement remote Python WasmExecutor by @albertvillanova in #1261
-
Callbacks:
- Support callbacks after planning step by @albertvillanova in #1445
- Support multiple callbacks per step type in step_callbacks dict by @albertvillanova in #1517
Enhancements 🛠️
-
Models:
- Implement rate limiting in all API models by @albertvillanova in #1516
-
Tools:
- Implement exception mechanism for final answer in remote executors by @tobiasofsn in #1429
- Set default api_key_name in ApiWebSearchTool by @albertvillanova in #1507
- Implement rate limit mechanism in ApiWebSearchTool by @albertvillanova in #1508
- Implement rate limit mechanism in DuckDuckGoSearchTool by @albertvillanova in #1515
- Enable image output for Tool.from_space by @aymeric-roucher in #1510
- Add adapter_kwargs parameter to MCPClient by @LucasDltg in #1528
-
Validation of Tool Arguments:
- Support multiple types in tool arguments validation by @duguyue100 in #1505
- Fix input type validation when input schema has multiple types by @duguyue100 in #1530
- Fix optional args toolcalling by @aymeric-roucher in #1538
-
Agent Output Formatting:
- Implement CodeOutput as analog to ToolOutput by @albertvillanova in #1496
- Allow markdown or custom formatting for code blocks by @aymeric-roucher in #1493
-
Other:
Bug Fixes 🐛
- Fix
KeyErrorwhen agent reaches max steps with image input by @robin-ede in #1525 - Fix when
response.usageisNonefor some OpenRouter models by @sentienthouseplant in #1402 - Fix incorrect token counting in streaming TransformersModel by @albertvillanova in #1503
- Minor fix nested quotes that prevent execution by @vinoo-ganesh-keru in #1497
- Fix ChatMessage attribute access after replacing dict with dataclass by @albertvillanova in #1534
- Fix access of
contentfield inChatMessageby @mdr223 in #1533 - Fix parallel final answers handling by @aymeric-roucher in #1482
Documentation Improvements 📚
-
Examples & Tutorials:
- Add complete Plan Customization example by @albertvillanova in #1506
- Add Async App with Agent example by @albertvillanova in #1509
- Improve Plan Customization example with Human-in-the-Loop by @albertvillanova in #1513
-
API References:
- Fix docstring of WikipediaSearchTool by @albertvillanova in #1521
- Explain rate_limit in tools docstrings by @albertvillanova in #1519
- Fix Examples in AmazonBedrockServerModel docstring by @albertvillanova in #1522
- Split Built-in Tools from Tools in Reference docs by @albertvillanova in #1520
-
Other:
- Update Langfuse tracing documentation to SDK v3 by @jannikmaierhoefer in #1447
- Fix use of context manager agent in docs by @albertvillanova in #1502
Maintenance 🏗️
- Fix CI LiteLLM test_call_different_providers_without_key by @albertvillanova in #1527
- Fix test_send_tools_with_default_wikipedia_search_tool by @albertvillanova in #1494
- Fix DockerExecutor tests with final_answer by calling send_tools by @albertvillanova in #1495
- Bump dev version: v1.20.0.dev0 by @albertvillanova in #1477
New Contributors
- @sentienthouseplant made their first contribution in #1402
- @daavoo made their first contribution in #1479
- @duguyue100 made their first contribution in #1505
- @vinoo-ganesh-keru made their first contribution in #1497
- @robin-ede made their first contribution in #1525
- @LucasDltg made their first contribution in #1528
- @mdr223 made their first contribution in #1533
Full Changelog: v1.19.0...v1.20.0