v1.22.0

charmbracelet/crushv1.22.0Sep 25, 2025by albertvillanova

AI Summary

This release focuses on architectural improvements to the PythonExecutor, enhanced Docker execution stability, and compatibility fixes for various LLM providers and their parameters. It introduces support for MCP structured outputs, new remote execution options via Modal, and significant documentation updates including Korean translations.

Key Highlights

  • Refactored PythonExecutor to inherit from ABC and declare abstract methods for better type safety.
  • Improved DockerExecutor stability with fixes for connection reset errors and support for custom Dockerfiles.
  • Fixed compatibility issues with GPT-5 and Grok models regarding the `stop` parameter and LiteLLM responses.
  • Introduced support for MCP structured output and output schema, along with a new Modal Remote Executor.
  • Updated documentation to clarify instructions appending and added Korean translations for multiple files.

New Features

  • Support for MCP structured output and output schema.
  • Modal Remote Executor support.
  • Support for custom Dockerfiles in DockerExecutor.
  • Direct control over return_full_result in the run method.
  • User-configurable parameter override for model completion parameters.
  • Support for e2b-code-interpreter v2.

Full Release Notes

## What's Changed
* Bump dev version: v1.22.0.dev0 by @albertvillanova in https://github.com/huggingface/smolagents/pull/1657
* refactor(PythonExecutor): inherit from ABC and declare abstract methods by @HairlessVillager in https://github.com/huggingface/smolagents/pull/1654
* Fix error for GPT-5 not supporting the `stop` parameter by @Xmader in https://github.com/huggingface/smolagents/pull/1662
* Enable return_full_result directly in run method by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/1658
* Make RunResult json serializable by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/1659
* Change truncation to remove end rather than middle by @aymeric-roucher in https://github.com/huggingface/smolagents/pull/1665
* Document that model kwargs are forwarded to model completion call by @albertvillanova in https://github.com/huggingface/smolagents/pull/1679
* Fix missing kwargs forward to vLLM model generate call by @albertvillanova in https://github.com/huggingface/smolagents/pull/1680
* Raise RuntimeError with LiteLLM response details if no choices by @albertvillanova in https://github.com/huggingface/smolagents/pull/1683
* Fix AmazonBedrockModel with reasoning/thinking content by @albertvillanova in https://github.com/huggingface/smolagents/pull/1681
* Fix installation command in README by quoting extra by @shahgahmed in https://github.com/huggingface/smolagents/pull/1685
* CI hotfix: Pin openai < 1.100.0 for litellm extra by @albertvillanova in https://github.com/huggingface/smolagents/pull/1693
* Support openai 1.100 for litellm extra by @albertvillanova in https://github.com/huggingface/smolagents/pull/1698
* Pin telemetry extra >=0.1.15 to use new TokenUsage structure by @albertvillanova in https://github.com/huggingface/smolagents/pull/1699
* Add AGENTS.md by @albertvillanova in https://github.com/huggingface/smolagents/pull/1701
* Test telemetry extra by @albertvillanova in https://github.com/huggingface/smolagents/pull/1700
* Replace slim with bullseye base image in Docker executor by @albertvillanova in https://github.com/huggingface/smolagents/pull/1702
* fix: error missing f-string by @njbrake in https://github.com/huggingface/smolagents/pull/1691
* Support custom Dockerfile in DockerExecutor by @albertvillanova in https://github.com/huggingface/smolagents/pull/1705
* Support MCP structured output and output schema by @chahn in https://github.com/huggingface/smolagents/pull/1663
* Improve agent image handling by @aaron-ang in https://github.com/huggingface/smolagents/pull/1601
* 🌐 [i18n-KO] Translated `multiagents.md` to Korean by @pyapyapya in https://github.com/huggingface/smolagents/pull/1644
* Fix CI 403 error for Wikipedia page in test_visit_webpage by @albertvillanova in https://github.com/huggingface/smolagents/pull/1716
* fix typos in the system prompt by @Frame17 in https://github.com/huggingface/smolagents/pull/1710
* Fix pip install commands by quoting extras by @albertvillanova in https://github.com/huggingface/smolagents/pull/1690
* Fix deprecation warning about parameter messages by @albertvillanova in https://github.com/huggingface/smolagents/pull/1718
* Fix warning about parameter max_new_tokens by @albertvillanova in https://github.com/huggingface/smolagents/pull/1721
* Adds Modal Remote Executor by @thomasjpfan in https://github.com/huggingface/smolagents/pull/1722
* Fix formatting of title in translation section of documentation by @albertvillanova in https://github.com/huggingface/smolagents/pull/1727
* Remove untranslated sections from the documentation by @albertvillanova in https://github.com/huggingface/smolagents/pull/1729
* fix: add ipykernel in dockerfile of prebuilt docker executor by @cyyeh in https://github.com/huggingface/smolagents/pull/1731
* Fix E2BExecutor by pinning e2b-code-interpreter to < 2 by @albertvillanova in https://github.com/huggingface/smolagents/pull/1733
* Fix DockerExecutor connection reset error with server readiness check by @benoriol in https://github.com/huggingface/smolagents/pull/1684
* [i18n-KO] Translated building_good_agents.md to Korean by @FacerAin in https://github.com/huggingface/smolagents/pull/1714
* 🌐 [i18n-KO] Translated installation.md to Korean by @FacerAin in https://github.com/huggingface/smolagents/pull/1647
* Support e2b-code-interpreter v2 by @August-murr in https://github.com/huggingface/smolagents/pull/1751
* Fix token count initialization when plan_message.token_usage is None by @satwikkansal in https://github.com/huggingface/smolagents/pull/1752
* Support user-configurable parameter override for model completion parameters by @albertvillanova in https://github.com/huggingface/smolagents/pull/1678
* Fix error for grok-4/grok-3-mini not supporting the stop parameter by @suryabdev in https://github.com/huggingface/smolagents/pull/1766
* Replace DockerExecutor Dockerfile with file object by @albertvillanova in https://github.com/huggingface/smolagents/pull/1738
* Update documentation to clarify `instructions` are appended by @chahn in https://github.com/huggingface/smolagents/pull/1709
* 🌐 [i18n-KO] Translated `react.md` to Korean by @nsbg in https://github.com/huggingface/smolagents/pull/1666
* Pass tools_to_call_from to TransformersModel._prepare_completion_kwargs by @albertvillanova in https://github.com/huggingface/smolagents/pull/1782
* 🌐 [i18n-KO] Translated `models.md` to Korean  by @Kim-Ju-won in https://github.com/huggingface/smolagents/pull/1776
* Fix AttributeError when trying to log a None by @albertvillanova in https://github.com/huggingface/smolagents/pull/1786
* fix(agent): remove unused get_variable_names function by @keli-wen in https://github.com/huggingface/smolagents/pull/1784
* Fix XPath injection in search_item_ctrl_f by @albertvillanova in https://github.com/huggingface/smolagents/pull/1768
* Use context manager for per-operation websocket connection in DockerExecutor by @albertvillanova in https://github.com/huggingface/smolagents/pull/1750

## New Contributors
* @Xmader made their first contribution in https://github.com/huggingface/smolagents/pull/1662
* @shahgahmed made their first contribution in https://github.com/huggingface/smolagents/pull/1685
* @aaron-ang made their first contribution in https://github.com/huggingface/smolagents/pull/1601
* @pyapyapya made their first contribution in https://github.com/huggingface/smolagents/pull/1644
* @Frame17 made their first contribution in https://github.com/huggingface/smolagents/pull/1710
* @cyyeh made their first contribution in https://github.com/huggingface/smolagents/pull/1731
* @satwikkansal made their first contribution in https://github.com/huggingface/smolagents/pull/1752
* @suryabdev made their first contribution in https://github.com/huggingface/smolagents/pull/1766
* @Kim-Ju-won made their first contribution in https://github.com/huggingface/smolagents/pull/1776
* @keli-wen made their first contribution in https://github.com/huggingface/smolagents/pull/1784

**Full Changelog**: https://github.com/huggingface/smolagents/compare/v1.21.3...v1.22.0