[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-huggingface--smolagents":3,"tool-huggingface--smolagents":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":80,"owner_twitter":76,"owner_website":81,"owner_url":82,"languages":83,"stars":92,"forks":93,"last_commit_at":94,"license":95,"difficulty_score":23,"env_os":96,"env_gpu":97,"env_ram":97,"env_deps":98,"category_tags":112,"github_topics":80,"view_count":113,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":114,"updated_at":115,"faqs":116,"releases":145},1983,"huggingface\u002Fsmolagents","smolagents","🤗 smolagents: a barebones library for agents that think in code.","smolagents 是一个轻量级开源库，专为构建“用代码思考”的智能代理而设计。它让开发者能用几十行代码快速搭建能自主执行代码任务的代理，而不是仅仅让代理生成代码。传统代理常依赖复杂框架，而 smolagents 保持极简——核心逻辑仅约千行代码，直接在原始代码层构建，避免过度抽象。\n\n它解决了智能代理在执行时安全性和灵活性难以兼顾的问题：通过集成 Blaxel、E2B、Modal、Docker 或 Pyodide 等沙箱环境，代理能在隔离环境中安全运行生成的代码，防止恶意或意外操作。同时，它不绑定特定模型或工具，支持任意 LLM（如本地模型、OpenAI、Anthropic 等）和多种工具来源（LangChain、MCP 服务器、Hugging Face Space），让开发者自由组合生态组件。\n\nsmolagents 特别适合熟悉 Python 的开发者和研究人员，用于快速原型验证、自动化任务或探索代码驱动型 AI 行为。它也适合希望在安全前提下测试代理自主执行能力的教育者。独特亮点在于其“代理自己写代码并执行”的设计哲学，以及对多模态输入（文本、图像、视频、音频）和跨平台工具的","smolagents 是一个轻量级开源库，专为构建“用代码思考”的智能代理而设计。它让开发者能用几十行代码快速搭建能自主执行代码任务的代理，而不是仅仅让代理生成代码。传统代理常依赖复杂框架，而 smolagents 保持极简——核心逻辑仅约千行代码，直接在原始代码层构建，避免过度抽象。\n\n它解决了智能代理在执行时安全性和灵活性难以兼顾的问题：通过集成 Blaxel、E2B、Modal、Docker 或 Pyodide 等沙箱环境，代理能在隔离环境中安全运行生成的代码，防止恶意或意外操作。同时，它不绑定特定模型或工具，支持任意 LLM（如本地模型、OpenAI、Anthropic 等）和多种工具来源（LangChain、MCP 服务器、Hugging Face Space），让开发者自由组合生态组件。\n\nsmolagents 特别适合熟悉 Python 的开发者和研究人员，用于快速原型验证、自动化任务或探索代码驱动型 AI 行为。它也适合希望在安全前提下测试代理自主执行能力的教育者。独特亮点在于其“代理自己写代码并执行”的设计哲学，以及对多模态输入（文本、图像、视频、音频）和跨平台工具的原生支持，真正实现“轻量但强大”。","\u003C!---\nCopyright 2024 The HuggingFace Team. All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n\u003Cp align=\"center\">\n    \u003C!-- Uncomment when CircleCI is set up\n    \u003Ca href=\"https:\u002F\u002Fcircleci.com\u002Fgh\u002Fhuggingface\u002Faccelerate\">\u003Cimg alt=\"Build\" src=\"https:\u002F\u002Fimg.shields.io\u002Fcircleci\u002Fbuild\u002Fgithub\u002Fhuggingface\u002Ftransformers\u002Fmaster\">\u003C\u002Fa>\n    -->\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fblob\u002Fmain\u002FLICENSE\">\u003Cimg alt=\"License\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fhuggingface\u002Fsmolagents.svg?color=blue\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\">\u003Cimg alt=\"Documentation\" src=\"https:\u002F\u002Fimg.shields.io\u002Fwebsite\u002Fhttp\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Findex.html.svg?down_color=red&down_message=offline&up_message=online\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Freleases\">\u003Cimg alt=\"GitHub release\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Frelease\u002Fhuggingface\u002Fsmolagents.svg\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fblob\u002Fmain\u002FCODE_OF_CONDUCT.md\">\u003Cimg alt=\"Contributor Covenant\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FContributor%20Covenant-v2.0%20adopted-ff69b4.svg\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fdeepwiki.com\u002Fhuggingface\u002Fsmolagents\">\u003Cimg src=\"https:\u002F\u002Fdeepwiki.com\u002Fbadge.svg\" alt=\"Ask DeepWiki\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Ch3 align=\"center\">\n  \u003Cdiv style=\"display:flex;flex-direction:row;\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhuggingface_smolagents_readme_33f35e50a4f2.png\" alt=\"Hugging Face mascot as James Bond\" width=400px>\n    \u003Cp>Agents that think in code!\u003C\u002Fp>\n  \u003C\u002Fdiv>\n\u003C\u002Fh3>\n\n`smolagents` is a library that enables you to run powerful agents in a few lines of code. It offers:\n\n✨ **Simplicity**: the logic for agents fits in ~1,000 lines of code (see [agents.py](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fblob\u002Fmain\u002Fsrc\u002Fsmolagents\u002Fagents.py)). We kept abstractions to their minimal shape above raw code!\n\n🧑‍💻 **First-class support for Code Agents**. Our [`CodeAgent`](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Freference\u002Fagents#smolagents.CodeAgent) writes its actions in code (as opposed to \"agents being used to write code\"). To make it secure, we support executing in sandboxed environments via [Blaxel](https:\u002F\u002Fblaxel.ai), [E2B](https:\u002F\u002Fe2b.dev\u002F), [Modal](https:\u002F\u002Fmodal.com\u002F), Docker, or Pyodide+Deno WebAssembly sandbox.\n\n🤗 **Hub integrations**: you can [share\u002Fpull tools or agents to\u002Ffrom the Hub](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Freference\u002Ftools#smolagents.Tool.from_hub) for instant sharing of the most efficient agents!\n\n🌐 **Model-agnostic**: smolagents supports any LLM. It can be a local `transformers` or `ollama` model, one of [many providers on the Hub](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Finference-providers), or any model from OpenAI, Anthropic and many others via our [LiteLLM](https:\u002F\u002Fwww.litellm.ai\u002F) integration.\n\n👁️ **Modality-agnostic**: Agents support text, vision, video, even audio inputs! Cf [this tutorial](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Fexamples\u002Fweb_browser) for vision.\n\n🛠️ **Tool-agnostic**: you can use tools from any [MCP server](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Freference\u002Ftools#smolagents.ToolCollection.from_mcp), from [LangChain](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Freference\u002Ftools#smolagents.Tool.from_langchain), you can even use a [Hub Space](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Freference\u002Ftools#smolagents.Tool.from_space) as a tool.\n\nFull documentation can be found [here](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Findex).\n\n> [!NOTE]\n> Check the our [launch blog post](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Fsmolagents) to learn more about `smolagents`!\n\n## Quick demo\n\nFirst install the package with a default set of tools:\n```bash\npip install \"smolagents[toolkit]\"\n```\nThen define your agent, give it the tools it needs and run it!\n```py\nfrom smolagents import CodeAgent, WebSearchTool, InferenceClientModel\n\nmodel = InferenceClientModel()\nagent = CodeAgent(tools=[WebSearchTool()], model=model, stream_outputs=True)\n\nagent.run(\"How many seconds would it take for a leopard at full speed to run through Pont des Arts?\")\n```\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F84b149b4-246c-40c9-a48d-ba013b08e600\n\nYou can even share your agent to the Hub, as a Space repository:\n```py\nagent.push_to_hub(\"m-ric\u002Fmy_agent\")\n\n# agent.from_hub(\"m-ric\u002Fmy_agent\") to load an agent from Hub\n```\n\nOur library is LLM-agnostic: you could switch the example above to any inference provider.\n\n\u003Cdetails>\n\u003Csummary> \u003Cb>InferenceClientModel, gateway for all \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Finference-providers\u002Findex\">inference providers\u003C\u002Fa> supported on HF\u003C\u002Fb>\u003C\u002Fsummary>\n\n```py\nfrom smolagents import InferenceClientModel\n\nmodel = InferenceClientModel(\n    model_id=\"deepseek-ai\u002FDeepSeek-R1\",\n    provider=\"together\",\n)\n```\n\u003C\u002Fdetails>\n\u003Cdetails>\n\u003Csummary> \u003Cb>LiteLLM to access 100+ LLMs\u003C\u002Fb>\u003C\u002Fsummary>\n\n```py\nfrom smolagents import LiteLLMModel\n\nmodel = LiteLLMModel(\n    model_id=\"anthropic\u002Fclaude-4-sonnet-latest\",\n    temperature=0.2,\n    api_key=os.environ[\"ANTHROPIC_API_KEY\"]\n)\n```\n\u003C\u002Fdetails>\n\u003Cdetails>\n\u003Csummary> \u003Cb>OpenAI-compatible servers: Together AI\u003C\u002Fb>\u003C\u002Fsummary>\n\n```py\nimport os\nfrom smolagents import OpenAIModel\n\nmodel = OpenAIModel(\n    model_id=\"deepseek-ai\u002FDeepSeek-R1\",\n    api_base=\"https:\u002F\u002Fapi.together.xyz\u002Fv1\u002F\", # Leave this blank to query OpenAI servers.\n    api_key=os.environ[\"TOGETHER_API_KEY\"], # Switch to the API key for the server you're targeting.\n)\n```\n\u003C\u002Fdetails>\n\u003Cdetails>\n\u003Csummary> \u003Cb>OpenAI-compatible servers: OpenRouter\u003C\u002Fb>\u003C\u002Fsummary>\n\n```py\nimport os\nfrom smolagents import OpenAIModel\n\nmodel = OpenAIModel(\n    model_id=\"openai\u002Fgpt-4o\",\n    api_base=\"https:\u002F\u002Fopenrouter.ai\u002Fapi\u002Fv1\", # Leave this blank to query OpenAI servers.\n    api_key=os.environ[\"OPENROUTER_API_KEY\"], # Switch to the API key for the server you're targeting.\n)\n```\n\n\u003C\u002Fdetails>\n\u003Cdetails>\n\u003Csummary> \u003Cb>Local `transformers` model\u003C\u002Fb>\u003C\u002Fsummary>\n\n```py\nfrom smolagents import TransformersModel\n\nmodel = TransformersModel(\n    model_id=\"Qwen\u002FQwen3-Next-80B-A3B-Thinking\",\n    max_new_tokens=4096,\n    device_map=\"auto\"\n)\n```\n\u003C\u002Fdetails>\n\u003Cdetails>\n\u003Csummary> \u003Cb>Azure models\u003C\u002Fb>\u003C\u002Fsummary>\n\n```py\nimport os\nfrom smolagents import AzureOpenAIModel\n\nmodel = AzureOpenAIModel(\n    model_id = os.environ.get(\"AZURE_OPENAI_MODEL\"),\n    azure_endpoint=os.environ.get(\"AZURE_OPENAI_ENDPOINT\"),\n    api_key=os.environ.get(\"AZURE_OPENAI_API_KEY\"),\n    api_version=os.environ.get(\"OPENAI_API_VERSION\")    \n)\n```\n\u003C\u002Fdetails>\n\u003Cdetails>\n\u003Csummary> \u003Cb>Amazon Bedrock models\u003C\u002Fb>\u003C\u002Fsummary>\n\n```py\nimport os\nfrom smolagents import AmazonBedrockModel\n\nmodel = AmazonBedrockModel(\n    model_id = os.environ.get(\"AMAZON_BEDROCK_MODEL_ID\") \n)\n```\n\u003C\u002Fdetails>\n\n## CLI\n\nYou can run agents from CLI using two commands: `smolagent` and `webagent`.\n\n`smolagent` is a generalist command to run a multi-step `CodeAgent` that can be equipped with various tools.\n\n```bash\n# Run with direct prompt and options\nsmolagent \"Plan a trip to Tokyo, Kyoto and Osaka between Mar 28 and Apr 7.\"  --model-type \"InferenceClientModel\" --model-id \"Qwen\u002FQwen3-Next-80B-A3B-Thinking\" --imports pandas numpy --tools web_search\n\n# Run in interactive mode (launches setup wizard when no prompt provided)\nsmolagent\n```\n\nInteractive mode guides you through:\n- Agent type selection (CodeAgent vs ToolCallingAgent)  \n- Tool selection from available toolbox\n- Model configuration (type, ID, API settings)\n- Advanced options like additional imports\n- Task prompt input\n\nMeanwhile `webagent` is a specific web-browsing agent using [helium](https:\u002F\u002Fgithub.com\u002Fmherrmann\u002Fhelium) (read more [here](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fblob\u002Fmain\u002Fsrc\u002Fsmolagents\u002Fvision_web_browser.py)).\n\nFor instance:\n```bash\nwebagent \"go to xyz.com\u002Fmen, get to sale section, click the first clothing item you see. Get the product details, and the price, return them. note that I'm shopping from France\" --model-type \"LiteLLMModel\" --model-id \"gpt-5\"\n```\n\n## How do Code agents work?\n\nOur [`CodeAgent`](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Freference\u002Fagents#smolagents.CodeAgent) works mostly like classical ReAct agents - the exception being that the LLM engine writes its actions as Python code snippets.\n\n```mermaid\nflowchart TB\n    Task[User Task]\n    Memory[agent.memory]\n    Generate[Generate from agent.model]\n    Execute[Execute Code action - Tool calls are written as functions]\n    Answer[Return the argument given to 'final_answer']\n\n    Task -->|Add task to agent.memory| Memory\n\n    subgraph ReAct[ReAct loop]\n        Memory -->|Memory as chat messages| Generate\n        Generate -->|Parse output to extract code action| Execute\n        Execute -->|No call to 'final_answer' tool => Store execution logs in memory and keep running| Memory\n    end\n    \n    Execute -->|Call to 'final_answer' tool| Answer\n\n    %% Styling\n    classDef default fill:#d4b702,stroke:#8b7701,color:#ffffff\n    classDef io fill:#4a5568,stroke:#2d3748,color:#ffffff\n    \n    class Task,Answer io\n```\n\nActions are now Python code snippets. Hence, tool calls will be performed as Python function calls. For instance, here is how the agent can perform web search over several websites in one single action:\n```py\nrequests_to_search = [\"gulf of mexico america\", \"greenland denmark\", \"tariffs\"]\nfor request in requests_to_search:\n    print(f\"Here are the search results for {request}:\", web_search(request))\n```\n\nWriting actions as code snippets is demonstrated to work better than the current industry practice of letting the LLM output a dictionary of the tools it wants to call: [uses 30% fewer steps](https:\u002F\u002Fhuggingface.co\u002Fpapers\u002F2402.01030) (thus 30% fewer LLM calls) and [reaches higher performance on difficult benchmarks](https:\u002F\u002Fhuggingface.co\u002Fpapers\u002F2411.01747). Head to [our high-level intro to agents](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Fconceptual_guides\u002Fintro_agents) to learn more on that.\n\nSince code execution can be a serious security concern (arbitrary code execution!), **you should run agent code in a sandbox**. We support several options:\n  - [E2B](https:\u002F\u002Fe2b.dev\u002F), [Blaxel](https:\u002F\u002Fblaxel.ai), [Modal](https:\u002F\u002Fmodal.com\u002F) — managed cloud sandboxes, simplest to set up\n  - [Docker](https:\u002F\u002Fwww.docker.com\u002F) — self-hosted container isolation\n  - Pyodide+Deno WebAssembly — lightweight sandbox for browser or edge environments\n\nThe built-in `LocalPythonExecutor` is **not a security sandbox**. It applies some restrictions but can be bypassed and must not be used as a security boundary.\n\nAlongside [`CodeAgent`](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Freference\u002Fagents#smolagents.CodeAgent), we also provide the standard [`ToolCallingAgent`](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Freference\u002Fagents#smolagents.ToolCallingAgent) which writes actions as JSON\u002Ftext blobs. You can pick whichever style best suits your use case.\n\n## How smol is this library?\n\nWe strived to keep abstractions to a strict minimum: the main code in `agents.py` has \u003C1,000 lines of code.\nStill, we implement several types of agents: `CodeAgent` writes its actions as Python code snippets, and the more classic `ToolCallingAgent` leverages built-in tool calling methods. We also have multi-agent hierarchies, import from tool collections, remote code execution, vision models...\n\nBy the way, why use a framework at all? Well, because a big part of this stuff is non-trivial. For instance, the code agent has to keep a consistent format for code throughout its system prompt, its parser, the execution. So our framework handles this complexity for you. But of course we still encourage you to hack into the source code and use only the bits that you need, to the exclusion of everything else!\n\n## How strong are open models for agentic workflows?\n\nWe've created [`CodeAgent`](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Freference\u002Fagents#smolagents.CodeAgent) instances with some leading models, and compared them on [this benchmark](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fm-ric\u002Fagents_medium_benchmark_2) that gathers questions from a few different benchmarks to propose a varied blend of challenges.\n\n[Find the benchmarking code here](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fblob\u002Fmain\u002Fexamples\u002Fsmolagents_benchmark\u002Frun.py) for more detail on the agentic setup used, and see a comparison of using LLMs code agents compared to vanilla (spoilers: code agents works better).\n\n\u003Cp align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhuggingface_smolagents_readme_33f212780b3c.jpeg\" alt=\"benchmark of different models on agentic workflows. Open model DeepSeek-R1 beats closed-source models.\" width=60% max-width=500px>\n\u003C\u002Fp>\n\nThis comparison shows that open-source models can now take on the best closed models!\n\n## Security\n\nSecurity is a critical consideration when working with code-executing agents. Ensure you are using one of the sandboxed execution options that provide isolation from untrusted code.\n\n**Warning:** `LocalPythonExecutor` provides best-effort mitigations only and is **not a security boundary**. Do not use it to run untrusted code.\n\nFor security policies, vulnerability reporting, and more information on secure agent execution, please see our [Security Policy](SECURITY.md).\n\n## Contribute\n\nEveryone is welcome to contribute, get started with our [contribution guide](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fblob\u002Fmain\u002FCONTRIBUTING.md).\n\n## Cite smolagents\n\nIf you use `smolagents` in your publication, please cite it by using the following BibTeX entry.\n\n```bibtex\n@Misc{smolagents,\n  title =        {`smolagents`: a smol library to build great agentic systems.},\n  author =       {Aymeric Roucher and Albert Villanova del Moral and Thomas Wolf and Leandro von Werra and Erik Kaunismäki},\n  howpublished = {\\url{https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents}},\n  year =         {2025}\n}\n```\n","\u003C!---\n版权所有 2024 HuggingFace团队。保留所有权利。\n\n根据 Apache 许可协议第 2.0 版（“许可”）授权；\n除遵守许可外，您不得使用本文件。\n您可从以下网址获取许可副本：\n\n    http:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0\n\n除非适用法律要求或书面同意，否则软件\n按“原样”分发，不提供任何明示或暗示的保证，\n包括适销性或特定用途适用性的保证。\n许可的具体条款和限制请参阅许可文件。\n-->\n\u003Cp align=\"center\">\n    \u003C!-- 当CircleCI设置完成后取消注释 -->\n    \u003C!-- \u003Ca href=\"https:\u002F\u002Fcircleci.com\u002Fgh\u002Fhuggingface\u002Faccelerate\">\u003Cimg alt=\"构建\" src=\"https:\u002F\u002Fimg.shields.io\u002Fcircleci\u002Fbuild\u002Fgithub\u002Fhuggingface\u002Ftransformers\u002Fmaster\">\u003C\u002Fa> -->\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fblob\u002Fmain\u002FLICENSE\">\u003Cimg alt=\"许可\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fhuggingface\u002Fsmolagents.svg?color=blue\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\">\u003Cimg alt=\"文档\" src=\"https:\u002F\u002Fimg.shields.io\u002Fwebsite\u002Fhttp\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Findex.html.svg?down_color=red&down_message=offline&up_message=online\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Freleases\">\u003Cimg alt=\"GitHub发布\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Frelease\u002Fhuggingface\u002Fsmolagents.svg\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fblob\u002Fmain\u002FCODE_OF_CONDUCT.md\">\u003Cimg alt=\"贡献者公约\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FContributor%20Covenant-v2.0%20adopted-ff69b4.svg\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fdeepwiki.com\u002Fhuggingface\u002Fsmolagents\">\u003Cimg src=\"https:\u002F\u002Fdeepwiki.com\u002Fbadge.svg\" alt=\"问DeepWiki\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Ch3 align=\"center\">\n  \u003Cdiv style=\"display:flex;flex-direction:row;\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhuggingface_smolagents_readme_33f35e50a4f2.png\" alt=\"Hugging Face吉祥物詹姆斯·邦德形象\" width=400px>\n    \u003Cp>用代码思考的智能体！\u003C\u002Fp>\n  \u003C\u002Fdiv>\n\u003C\u002Fh3>\n\n`smolagents` 是一个库，让您只需几行代码就能运行强大的智能体。它提供：\n\n✨ **简单性**：智能体的逻辑仅约1,000行代码（参见[agents.py](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fblob\u002Fmain\u002Fsrc\u002Fsmolagents\u002Fagents.py)）。我们尽可能将抽象层简化到原始代码之上！\n\n🧑‍💻 **对代码智能体的一流支持**。我们的[`CodeAgent`](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Freference\u002Fagents#smolagents.CodeAgent)以代码形式编写其行动（而非“智能体用于编写代码”）。为确保安全，我们支持通过[Blaxel](https:\u002F\u002Fblaxel.ai)、[E2B](https:\u002F\u002Fe2b.dev\u002F)、[Modal](https:\u002F\u002Fmodal.com\u002F)、Docker或Pyodide+Deno WebAssembly沙箱环境执行。\n\n🤗 **Hub集成**：您可以[从Hub分享\u002F拉取工具或智能体](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Freference\u002Ftools#smolagents.Tool.from_hub)，即时共享最高效的智能体！\n\n🌐 **与模型无关**：smolagents支持任何大语言模型。它可以是本地的`transformers`或`ollama`模型，也可以是Hub上[众多提供商之一](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Finference-providers)，或者通过我们的[LiteLLM](https:\u002F\u002Fwww.litellm.ai\u002F)集成，支持OpenAI、Anthropic及其他众多模型。\n\n👁️ **与模态无关**：智能体支持文本、视觉、视频，甚至音频输入！参见[此教程](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Fexamples\u002Fweb_browser)了解视觉输入。\n\n🛠️ **与工具无关**：您可以使用来自任何[MCP服务器](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Freference\u002Ftools#smolagents.ToolCollection.from_mcp)的工具，也可以从[LangChain](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Freference\u002Ftools#smolagents.Tool.from_langchain)获取工具，甚至可以将[Hub Space](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Freference\u002Ftools#smolagents.Tool.from_space)作为工具使用。\n\n完整文档请访问[这里](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Findex)。\n\n> [!NOTE]\n> 请查看我们的[发布博客文章](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Fsmolagents)，了解更多关于`smolagents`的信息！\n\n## 快速演示\n\n首先安装包含默认工具集的包：\n```bash\npip install \"smolagents[toolkit]\"\n```\n然后定义您的智能体，为其配备所需工具并运行！\n```py\nfrom smolagents import CodeAgent, WebSearchTool, InferenceClientModel\n\nmodel = InferenceClientModel()\nagent = CodeAgent(tools=[WebSearchTool()], model=model, stream_outputs=True)\n\nagent.run(\"一只全速奔跑的豹子穿过艺术桥需要多少秒？\")\n```\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F84b149b4-246c-40c9-a48d-ba013b08e600\n\n您甚至可以将您的智能体分享到Hub，作为一个Space仓库：\n```py\nagent.push_to_hub(\"m-ric\u002Fmy_agent\")\n\n# 使用 agent.from_hub(\"m-ric\u002Fmy_agent\") 从 Hub 加载智能体\n\n```\n\n我们的库与大语言模型无关：您可以将上述示例切换为任何推理服务提供商。\n\n\u003Cdetails>\n\u003Csummary> \u003Cb>InferenceClientModel，所有在 HF 上支持的\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Finference-providers\u002Findex\">推理服务提供商\u003C\u002Fa>的网关\u003C\u002Fb>\u003C\u002Fsummary>\n\n```py\nfrom smolagents import InferenceClientModel\n\nmodel = InferenceClientModel(\n    model_id=\"deepseek-ai\u002FDeepSeek-R1\",\n    provider=\"together\",\n)\n```\n\u003C\u002Fdetails>\n\u003Cdetails>\n\u003Csummary> \u003Cb>LiteLLM 用于访问 100 多种大语言模型\u003C\u002Fb>\u003C\u002Fsummary>\n\n```py\nfrom smolagents import LiteLLMModel\n\nmodel = LiteLLMModel(\n    model_id=\"anthropic\u002Fclaude-4-sonnet-latest\",\n    temperature=0.2,\n    api_key=os.environ[\"ANTHROPIC_API_KEY\"]\n)\n```\n\u003C\u002Fdetails>\n\u003Cdetails>\n\u003Csummary> \u003Cb>兼容 OpenAI 的服务器：Together AI\u003C\u002Fb>\u003C\u002Fsummary>\n\n```py\nimport os\nfrom smolagents import OpenAIModel\n\nmodel = OpenAIModel(\n    model_id=\"deepseek-ai\u002FDeepSeek-R1\",\n    api_base=\"https:\u002F\u002Fapi.together.xyz\u002Fv1\u002F\", # 留空以查询 OpenAI 服务器。\n    api_key=os.environ[\"TOGETHER_API_KEY\"], # 切换到您所针对的服务器的 API 密钥。\n)\n```\n\u003C\u002Fdetails>\n\u003Cdetails>\n\u003Csummary> \u003Cb>兼容 OpenAI 的服务器：OpenRouter\u003C\u002Fb>\u003C\u002Fsummary>\n\n```py\nimport os\nfrom smolagents import OpenAIModel\n\nmodel = OpenAIModel(\n    model_id=\"openai\u002Fgpt-4o\",\n    api_base=\"https:\u002F\u002Fopenrouter.ai\u002Fapi\u002Fv1\", # 留空以查询 OpenAI 服务器。\n    api_key=os.environ[\"OPENROUTER_API_KEY\"], # 切换到您所针对的服务器的 API 密钥。\n)\n\n\u003C\u002Fdetails>\n\u003Cdetails>\n\u003Csummary> \u003Cb>本地 transformers 模型\u003C\u002Fb>\u003C\u002Fsummary>\n\n```py\nfrom smolagents import TransformersModel\n\nmodel = TransformersModel(\n    model_id=\"Qwen\u002FQwen3-Next-80B-A3B-Thinking\",\n    max_new_tokens=4096,\n    device_map=\"auto\"\n)\n```\n\u003C\u002Fdetails>\n\u003Cdetails>\n\u003Csummary> \u003Cb>Azure 模型\u003C\u002Fb>\u003C\u002Fsummary>\n\n```py\nimport os\nfrom smolagents import AzureOpenAIModel\n\nmodel = AzureOpenAIModel(\n    model_id = os.environ.get(\"AZURE_OPENAI_MODEL\"),\n    azure_endpoint=os.environ.get(\"AZURE_OPENAI_ENDPOINT\"),\n    api_key=os.environ.get(\"AZURE_OPENAI_API_KEY\"),\n    api_version=os.environ.get(\"OPENAI_API_VERSION\")    \n)\n```\n\u003C\u002Fdetails>\n\u003Cdetails>\n\u003Csummary> \u003Cb>Amazon Bedrock 模型\u003C\u002Fb>\u003C\u002Fsummary>\n\n```py\nimport os\nfrom smolagents import AmazonBedrockModel\n\nmodel = AmazonBedrockModel(\n    model_id = os.environ.get(\"AMAZON_BEDROCK_MODEL_ID\") \n)\n```\n\u003C\u002Fdetails>\n\n## CLI\n\n您可以使用两个命令通过 CLI 运行智能体：`smolagent` 和 `webagent`。\n\n`smolagent` 是一个通用命令，用于运行可配备各种工具的多步骤 `CodeAgent`。\n\n```bash\n# 带直接提示和选项运行\nsmolagent \"计划 3 月 28 日至 4 月 7 日前往东京、京都和大阪的旅行。\"  --model-type \"InferenceClientModel\" --model-id \"Qwen\u002FQwen3-Next-80B-A3B-Thinking\" --imports pandas numpy --tools web_search\n\n# 在交互模式下运行（未提供提示时启动设置向导）\nsmolagent\n```\n\n交互模式会引导您完成以下步骤：\n- 智能体类型选择（CodeAgent vs ToolCallingAgent）\n- 从可用工具箱中选择工具\n- 模型配置（类型、ID、API 设置）\n- 高级选项，如额外导入\n- 任务提示输入\n\n与此同时，`webagent` 是一种专门的网页浏览智能体，使用 [helium](https:\u002F\u002Fgithub.com\u002Fmherrmann\u002Fhelium)（更多信息请参阅[这里](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fblob\u002Fmain\u002Fsrc\u002Fsmolagents\u002Fvision_web_browser.py))。\n\n例如：\n```bash\nwebagent \"前往 xyz.com\u002Fmen，进入促销专区，点击您看到的第一个服装商品。获取产品详情和价格，并返回。请注意，我是在法国购物\" --model-type \"LiteLLMModel\" --model-id \"gpt-5\"\n```\n\n## Code 智能体如何工作？\n\n我们的 [`CodeAgent`](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Freference\u002Fagents#smolagents.CodeAgent) 的工作方式与经典的 ReAct 智能体基本相同——唯一的例外是，大语言模型引擎会将其动作写成 Python 代码片段。\n\n```mermaid\nflowchart TB\n    Task[用户任务]\n    Memory[智能体记忆]\n    Generate[由智能体模型生成]\n    Execute[执行代码动作——工具调用被写成函数]\n    Answer[返回传递给 'final_answer' 的参数]\n\n    Task -->|添加任务到智能体记忆| Memory\n\n    subgraph ReAct[ReAct 循环]\n        Memory -->|记忆作为聊天消息| Generate\n        Generate -->|解析输出以提取代码动作| Execute\n        Execute -->|未调用 'final_answer' 工具 => 将执行日志存储在记忆中并继续运行| Memory\n    end\n    \n    Execute -->|调用 'final_answer' 工具| Answer\n\n    %% 样式\n    classDef default fill:#d4b702,stroke:#8b7701,color:#ffffff\n    classDef io fill:#4a5568,stroke:#2d3748,color:#ffffff\n    \n    class Task,Answer io\n```\n\n现在，动作都是 Python 代码片段。因此，工具调用将以 Python 函数调用的方式执行。例如，以下是智能体如何在一个动作中对多个网站进行网络搜索：\n```py\nrequests_to_search = [\"墨西哥湾美国\", \"格陵兰丹麦\", \"关税\"]\nfor request in requests_to_search:\n    print(f\"以下是 {request} 的搜索结果：\", web_search(request))\n```\n\n将动作写成代码片段已被证明比当前业界让大语言模型输出它想要调用的工具字典的做法更有效：[减少了 30% 的步骤](https:\u002F\u002Fhuggingface.co\u002Fpapers\u002F2402.01030)（从而减少了 30% 的大语言模型调用次数）并且[在困难基准测试中达到了更高的性能](https:\u002F\u002Fhuggingface.co\u002Fpapers\u002F2411.01747)。更多相关信息，请参阅[我们关于智能体的高级介绍](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Fconceptual_guides\u002Fintro_agents)。\n\n由于代码执行可能带来严重的安全问题（任意代码执行！），**您应在沙箱中运行智能体代码**。我们支持多种选项：\n  - [E2B](https:\u002F\u002Fe2b.dev\u002F)、[Blaxel](https:\u002F\u002Fblaxel.ai)、[Modal](https:\u002F\u002Fmodal.com\u002F) — 托管云沙箱，设置最简单\n  - [Docker](https:\u002F\u002Fwww.docker.com\u002F) — 自托管容器隔离\n  - Pyodide+Deno WebAssembly — 轻量级沙箱，适用于浏览器或边缘环境\n\n内置的 `LocalPythonExecutor` **不是安全沙箱**。它应用了一些限制，但可以被绕过，因此不能用作安全边界。\n\n除了 [`CodeAgent`](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Freference\u002Fagents#smolagents.CodeAgent)，我们还提供了标准的 [`ToolCallingAgent`](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Freference\u002Fagents#smolagents.ToolCallingAgent)，它将动作写成 JSON\u002F文本块。您可以根据自己的用例选择最适合的风格。\n\n## 这个库有多小巧？\n\n我们力求将抽象程度控制在最低限度：`agents.py` 中的主代码行数不到1000行。\n\n尽管如此，我们仍实现了多种类型的智能体：`CodeAgent` 会将其行动以 Python 代码片段的形式写出，而更经典的 `ToolCallingAgent` 则利用内置的工具调用方法。此外，我们还支持多智能体层级结构、从工具集合中导入功能、远程代码执行以及视觉模型……\n\n顺便一提，为什么还要使用框架呢？嗯，因为这些功能中有很大一部分并不简单。例如，代码智能体必须在整个系统提示、解析器和执行过程中保持代码格式的一致性。因此，我们的框架帮你处理了这些复杂问题。当然，我们依然鼓励你深入研究源代码，只使用你需要的部分，而忽略其他一切！\n\n## 开放模型在智能体工作流中的表现如何？\n\n我们用一些前沿模型创建了 [`CodeAgent`](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fsmolagents\u002Freference\u002Fagents#smolagents.CodeAgent) 实例，并在 [这个基准测试](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fm-ric\u002Fagents_medium_benchmark_2) 上进行了对比。该基准测试汇集了来自多个不同基准的各类问题，旨在提供多样化的挑战。\n\n[基准测试代码请见这里](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fblob\u002Fmain\u002Fexamples\u002Fsmolagents_benchmark\u002Frun.py)，了解更多关于所用智能体设置的细节；同时，我们还对比了使用大语言模型代码智能体与普通模型的表现——（剧透：代码智能体的效果更好！）\n\n\u003Cp align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhuggingface_smolagents_readme_33f212780b3c.jpeg\" alt=\"不同模型在智能体工作流上的基准测试。开源模型 DeepSeek-R1 的表现优于闭源模型。\" width=60% max-width=500px>\n\u003C\u002Fp>\n\n这一对比表明，如今开源模型已经能够媲美甚至超越最好的闭源模型！\n\n## 安全性\n\n在使用执行代码的智能体时，安全性是一个至关重要的考量因素。请务必选用那些提供沙箱隔离功能的执行选项，以确保与不受信任的代码隔离开来。\n\n**警告：** `LocalPythonExecutor` 只提供尽力而为的缓解措施，**并非安全边界**。切勿用它来运行不受信任的代码。\n\n有关安全策略、漏洞报告以及更多关于安全智能体执行的信息，请参阅我们的 [安全政策](SECURITY.md)。\n\n## 欢迎贡献\n\n我们欢迎所有人参与贡献，可从我们的 [贡献指南](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fblob\u002Fmain\u002FCONTRIBUTING.md) 开始。\n\n## 引用 smolagents\n\n如果你在论文中使用了 `smolagents`，请通过以下 BibTeX 条目进行引用。\n\n```bibtex\n@Misc{smolagents,\n  title =        {`smolagents`: 一个轻量级库，用于构建出色的智能体系统。},\n  author =       {阿耶梅里克·鲁歇尔、阿尔贝特·比利亚诺瓦·德尔莫拉尔、托马斯·沃尔夫、莱安德罗·冯·韦拉、埃里克·考尼斯马基},\n  howpublished = {\\url{https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents}},\n  year =         {2025}\n}\n```","# smolagents 快速上手指南\n\n## 环境准备\n\n- **系统要求**：Python 3.8+\n- **前置依赖**：无强制依赖，推荐安装 `pip` 和 `git`\n- **网络建议**：为加速下载，可配置 pip 使用国内镜像源（如清华源）：\n  ```bash\n  pip config set global.index-url https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n  ```\n\n## 安装步骤\n\n安装包含默认工具集的版本：\n```bash\npip install \"smolagents[toolkit]\"\n```\n\n如需使用特定模型后端（如 OpenAI、Anthropic、本地模型），请根据需求额外安装对应依赖（如 `litellm`、`transformers` 等）。\n\n## 基本使用\n\n最简示例：创建一个能进行网页搜索的代码代理并运行任务：\n\n```python\nfrom smolagents import CodeAgent, WebSearchTool, InferenceClientModel\n\nmodel = InferenceClientModel()\nagent = CodeAgent(tools=[WebSearchTool()], model=model, stream_outputs=True)\n\nagent.run(\"How many seconds would it take for a leopard at full speed to run through Pont des Arts?\")\n```\n\n> ✅ 默认使用 Hugging Face 推理服务，无需额外 API 密钥。  \n> 🔁 支持一键分享到 Hugging Face Hub：  \n> ```python\n> agent.push_to_hub(\"your-username\u002Fyour-agent\")\n> ```\n\n支持切换模型后端（示例：使用 LiteLLM 调用 Anthropic）：\n```python\nfrom smolagents import LiteLLMModel\nimport os\n\nmodel = LiteLLMModel(\n    model_id=\"anthropic\u002Fclaude-4-sonnet-latest\",\n    temperature=0.2,\n    api_key=os.environ[\"ANTHROPIC_API_KEY\"]\n)\n```\n\nCLI 快速启动（交互式配置）：\n```bash\nsmolagent\n```\n\nCLI 直接运行任务：\n```bash\nsmolagent \"Plan a trip to Tokyo, Kyoto and Osaka between Mar 28 and Apr 7.\" --model-type \"InferenceClientModel\" --model-id \"Qwen\u002FQwen3-Next-80B-A3B-Thinking\" --tools web_search\n```","数据分析师李明每天需要从公司内部多个API获取销售数据，清洗后生成可视化报告，并自动邮件发送给管理层。过去他靠手动编写Python脚本，每次调整逻辑都要重写整个流程。\n\n### 没有 smolagents 时\n- 每次新增数据源或修改报告格式，都需要重新调试整个脚本，耗时2–3小时\n- 为保证安全，必须在独立虚拟机中运行代码，部署和环境配置复杂\n- 无法复用历史分析逻辑，每次都是从零开始写清洗和绘图代码\n- 邮件发送和错误通知依赖外部调度工具（如Airflow），集成成本高\n- 团队成员无法共享或复用彼此的分析代理，重复造轮子\n\n### 使用 smolagents 后\n- 只需用几行代码定义一个 `CodeAgent`，自动解析自然语言指令（如“生成上月华东区销售额趋势图并邮件发送”），动态生成并执行代码\n- 代码在E2B沙箱中安全运行，无需手动配置Docker或虚拟机，启动时间从15分钟缩短到30秒\n- 已完成的分析逻辑作为工具上传至Hugging Face Hub，团队可一键调用，复用率提升80%\n- 内置工具链可直接连接公司API、邮件服务和可视化库，无需额外封装\n- 支持多模态输入，李明甚至可以用语音指令“对比Q1和Q2的退货率”，Agent自动调用视频会议记录分析并生成对比图表\n\nsmolagents 让数据分析从“写代码”变成“说需求”，真正实现了让AI思考并执行任务，而非仅仅辅助编码。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhuggingface_smolagents_33f35e50.png","huggingface","Hugging Face","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fhuggingface_90da21a4.png","The AI community building the future.",null,"https:\u002F\u002Fhuggingface.co\u002F","https:\u002F\u002Fgithub.com\u002Fhuggingface",[84,88],{"name":85,"color":86,"percentage":87},"Python","#3572A5",100,{"name":89,"color":90,"percentage":91},"Makefile","#427819",0,26452,2441,"2026-04-05T22:04:01","Apache-2.0","Linux, macOS, Windows","未说明",{"notes":99,"python":100,"dependencies":101},"建议使用沙盒环境（如 E2B、Docker 或 Modal）执行代码以确保安全；本地运行需注意模型下载体积较大；WebAssembly 模式支持浏览器端运行；LocalPythonExecutor 不安全，禁止用于生产环境。","3.8+",[102,103,104,105,106,107,108,109,110,111],"torch","transformers","accelerate","litellm","docker","pyodide","deno","huggingface-hub","requests","beautifulsoup4",[15,26,13],11,"2026-03-27T02:49:30.150509","2026-04-06T09:46:11.162386",[117,122,127,132,136,141],{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},8948,"如何运行 open_deep_research 示例？","需要在 smolagents\u002Fexamples\u002Fopen_deep_research\u002Fscripts\u002Ftext_web_browser.py 文件的 SimpleTextBrowser 类的 __init__ 方法中硬编码 serpapi_key，例如：self.serpapi_key = \"your_api_key\"。同时，确保 LLM 的 API 密钥（如 OpenAI API Key）已设置为系统环境变量，若无效也需在代码中硬编码。参考：https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fissues\u002F501","https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fissues\u002F501",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},8949,"为什么使用 MCP 工具时会出现 'It is not permitted to evaluate other functions...' 错误？","该错误通常由 MCP 工具名称包含连字符 '-' 引起。请将工具名称中的 '-' 替换为下划线 '_'，例如将 'markdownify-mcp' 改为 'markdownify_mcp'。工具和代理名称必须是合法的 Python 标识符。参考：https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fissues\u002F640","https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fissues\u002F640",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},8950,"安装 smolagents 时出现 torch 依赖冲突怎么办？","尝试使用 pip install --upgrade smolagents 安装最新版本，或创建独立虚拟环境避免与其他包冲突。若仍失败，可尝试先安装 torch：pip install torch --extra-index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu118，再安装 smolagents。参考：https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fissues\u002F133","https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fissues\u002F133",{"id":133,"question_zh":134,"answer_zh":135,"source_url":131},8951,"如何解决 pydantic V2 中 'fields' 已移除的警告？","该警告是 Pydantic V2 的兼容性提示，不影响功能，可安全忽略。如需隐藏警告，可在代码开头添加：import warnings; warnings.filterwarnings('ignore', category=UserWarning, module='pydantic')。参考：https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fissues\u002F133",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},8952,"是否必须使用 with ToolCollection.from_mcp() 上下文管理器？","不需要。可以直接通过 MCPServer 实例获取工具：mcp_server = MCPServer(StdioServerParameters(...)); mcp_server.start(); tools = mcp_server.tools；然后直接传入 CodeAgent，无需 with 语句。记得最后调用 mcp_server.stop() 关闭服务。参考：https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fissues\u002F1179","https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fissues\u002F1179",{"id":142,"question_zh":143,"answer_zh":144,"source_url":126},8953,"如何让 CodeAgent 正确导入 pandas 等库？","在创建 CodeAgent 时，通过 additional_authorized_imports 参数显式声明允许导入的库，例如：additional_authorized_imports=[\"pandas\", \"matplotlib\", \"seaborn\"]。确保该参数同时在主代理和管理代理中设置，避免因代理层级导致导入被限制。参考：https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fissues\u002F640",[146,151,156,161,166,171,176,181,186,191,196,201,206,211,216,221,226,231,236,241],{"id":147,"version":148,"summary_zh":149,"released_at":150},116082,"v1.24.0","## What's Changed\r\n* Bump version to 1.24 by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1871\r\n* Fix: Add backward compatibility for deprecated HfApiModel by @MohammadKassas143 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1863\r\n* Fix typo in secure_code_execution.md by @jonathanagustin in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1892\r\n* Update no-stop-sequence model list to support gpt-5.2* by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1895\r\n* Fix run_gaia.py token_counts when managed agent is called more than once by @suryabdev in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1878\r\n* 🌐 [i18n-KO] Translated `tools.md` to Korean by @Kim-Ju-won in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1835\r\n* Support passing additional params to apply_chat_template by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1902\r\n* fix(gradio_ui): Gradio 6 compatibility by @alejandro-ao in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1903\r\n* Coerce tool calls from APIs into smolagents ChatMessageToolCall format by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1900\r\n* Add FinalAnswerStep to possible step_callbacks by @suryabdev in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1881\r\n* Upgrade GitHub Actions for Node 24 compatibility by @salmanmkc in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1909\r\n* fix: prevent FinalAnswerException from being caught by except Exception by @majiayu000 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1914\r\n* Add DeepWiki badge to README by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1846\r\n* Implement robust timeout mechanism for Python execution by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1910\r\n\r\n## New Contributors\r\n* @MohammadKassas143 made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1863\r\n* @jonathanagustin made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1892\r\n* @alejandro-ao made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1903\r\n* @salmanmkc made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1909\r\n* @majiayu000 made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1914\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fcompare\u002Fv1.23.0...v1.24.0","2026-01-16T05:38:28",{"id":152,"version":153,"summary_zh":154,"released_at":155},116083,"v1.23.0","## Improvements ✨\r\n* Update final answer checks to accept the agent instance by @Zoe14 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1648\r\n* Dialog mode CLI by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1540\r\n* Add Blaxel support for remote code execution by @Joffref in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1791\r\n* Proposition: Add exponential backoff with jitter for retries by @suryabdev in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1829\r\n* Cut generation at stop sequence post generation by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1802\r\n* Move executor type validation to python executor creation by @Lrakotoson in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1800\r\n* Support custom Python code executor in CodeAgent by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1707\r\n* Retry on rate limit errors by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1801\r\n* Change default InferenceClient model to Qwen\u002FQwen3-Next-80B-A3B-Thinking by @suryabdev in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1813\r\n* Remove 'Server' from model names in doc by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1812\r\n* Optimize comprehension evaluation with generator-based approach in LocalPythonExecutor by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1824\r\n* LocalPythonExecutor: Add support for nested dictcomp and setcomp by @suryabdev in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1823\r\n* Support parsing `anyOf` from MCP tools by @duguyue100 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1708\r\n* Add Modal as sandbox option to docs front page by @sandcat100 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1865\r\n* make additional_args nullable for managed agents by @nflo in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1827\r\n* vLLM: Move from guided_options_request to structured_outputs by @suryabdev in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1805\r\n\r\n## Fixes 🛠️\r\n* Fix agent logs: logging \"None\" and simplify the logic by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1788\r\n* Fix dict(message) bug in AgentMemory.replay for ChatMessage objects by @Flakes342 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1763\r\n* Fix LocalPythonExecutor support for Enum and other metaclasses by @colesmcintosh in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1797\r\n* Handle `None` content in stop-sequence trimming by @chahn in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1826\r\n* Fix minor benchmark script bugs by @suryabdev in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1822\r\n* Fix YAML scanner error when building documentation by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1841\r\n* Pin huggingface-hub \u003C1.0.0 to fix failed to build tokenizers by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1844\r\n* Fixed SyntaxError format: keep exception type and message on same line (#835) by @balazsthomay in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1864\r\n* Fix CLI Tool.from_space() call by auto-generating name and description (#1535) by @balazsthomay in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1859\r\n* Add gpt-5.1 support by @suryabdev in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1868\r\n* bug: role not converted back to enum by @njbrake in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1833\r\n* Parallel tool calls lose OpenTelemetry context: tool spans not nested under agent step by @Barcavin in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1840\r\n\r\n## Documentation 📚\r\n* Bump dev version: v1.23.0.dev0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1787\r\n* 🌐 [i18n-KO] Translated memory.md to Korean by @HyunZ118 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1793\r\n* 🌐 [i18n-KO] Translated `using_different_models.md` to Korean by @FacerAin in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1772\r\n* 🌐 [i18n-KO] Translated `guided_tour.md` to Korean by @FacerAin in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1711\r\n* 🌐 [i18n-KO] Translated `async_agent.md` to Korean by @FacerAin in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1749\r\n* 🌐 [i18n-KO] Translated `agents.md` to Korean by @Kim-Ju-won in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1720\r\n* 🌐 [i18n-KO] Translated `rag.md` to Korean by @Kim-Ju-won in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1646\r\n* Documentation: Minor fixes by @suryabdev in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1809\r\n* 🌐 [i18n-KO] Translated `web_browser.md` to Korean by @FacerAin in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1748\r\n* [i18n-es] Translating docs to spanish by @1-echo in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1806\r\n* 🌐 [i18n-KO] Translated `plan_customization.md` to Korean by @FacerAin in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1771\r\n* 🌐 [i18n-KO] Translated `inspect_runs.md` to Korean by @FacerAin in https:\u002F\u002Fgithub.com\u002Fhugging","2025-11-17T14:35:02",{"id":157,"version":158,"summary_zh":159,"released_at":160},116084,"v1.22.0","## What's Changed\r\n* Bump dev version: v1.22.0.dev0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1657\r\n* refactor(PythonExecutor): inherit from ABC and declare abstract methods by @HairlessVillager in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1654\r\n* Fix error for GPT-5 not supporting the `stop` parameter by @Xmader in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1662\r\n* Enable return_full_result directly in run method by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1658\r\n* Make RunResult json serializable by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1659\r\n* Change truncation to remove end rather than middle by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1665\r\n* Document that model kwargs are forwarded to model completion call by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1679\r\n* Fix missing kwargs forward to vLLM model generate call by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1680\r\n* Raise RuntimeError with LiteLLM response details if no choices by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1683\r\n* Fix AmazonBedrockModel with reasoning\u002Fthinking content by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1681\r\n* Fix installation command in README by quoting extra by @shahgahmed in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1685\r\n* CI hotfix: Pin openai \u003C 1.100.0 for litellm extra by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1693\r\n* Support openai 1.100 for litellm extra by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1698\r\n* Pin telemetry extra >=0.1.15 to use new TokenUsage structure by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1699\r\n* Add AGENTS.md by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1701\r\n* Test telemetry extra by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1700\r\n* Replace slim with bullseye base image in Docker executor by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1702\r\n* fix: error missing f-string by @njbrake in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1691\r\n* Support custom Dockerfile in DockerExecutor by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1705\r\n* Support MCP structured output and output schema by @chahn in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1663\r\n* Improve agent image handling by @aaron-ang in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1601\r\n* 🌐 [i18n-KO] Translated `multiagents.md` to Korean by @pyapyapya in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1644\r\n* Fix CI 403 error for Wikipedia page in test_visit_webpage by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1716\r\n* fix typos in the system prompt by @Frame17 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1710\r\n* Fix pip install commands by quoting extras by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1690\r\n* Fix deprecation warning about parameter messages by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1718\r\n* Fix warning about parameter max_new_tokens by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1721\r\n* Adds Modal Remote Executor by @thomasjpfan in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1722\r\n* Fix formatting of title in translation section of documentation by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1727\r\n* Remove untranslated sections from the documentation by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1729\r\n* fix: add ipykernel in dockerfile of prebuilt docker executor by @cyyeh in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1731\r\n* Fix E2BExecutor by pinning e2b-code-interpreter to \u003C 2 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1733\r\n* Fix DockerExecutor connection reset error with server readiness check by @benoriol in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1684\r\n* [i18n-KO] Translated building_good_agents.md to Korean by @FacerAin in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1714\r\n* 🌐 [i18n-KO] Translated installation.md to Korean by @FacerAin in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1647\r\n* Support e2b-code-interpreter v2 by @August-murr in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1751\r\n* Fix token count initialization when plan_message.token_usage is None by @satwikkansal in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1752\r\n* Support user-configurable parameter override for model completion parameters by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1678\r\n* Fix error for grok-4\u002Fgrok-3-mini not supporting the stop parameter by @suryabdev in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1766\r\n* Replace DockerExecutor Dockerfile with file object by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmola","2025-09-25T08:47:27",{"id":162,"version":163,"summary_zh":164,"released_at":165},116085,"v1.21.3","## Bug Fixes 🐛 \r\n\r\n* Fix E2BExecutor by pinning e2b-code-interpreter to \u003C 2 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1733\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fcompare\u002Fv1.21.2...v1.21.3","2025-09-01T14:35:16",{"id":167,"version":168,"summary_zh":169,"released_at":170},116086,"v1.21.2","## Bug Fixes 🐛 \r\n\r\n* Pin telemetry extra >=0.1.15 to use new TokenUsage structure by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1699\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fcompare\u002Fv1.21.1...v1.21.2","2025-08-20T05:15:23",{"id":172,"version":173,"summary_zh":174,"released_at":175},116087,"v1.21.1","## Bug Fixes 🐛 \r\n\r\n* Fix error for GPT-5 not supporting the `stop` parameter by @Xmader in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1662\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fcompare\u002Fv1.21.0...v1.21.1","2025-08-11T10:52:43",{"id":177,"version":178,"summary_zh":179,"released_at":180},116088,"v1.21.0","## Enhancements ✨\r\n\r\n* **Tool & Model Improvements**\r\n\r\n  * Add Tool to_code_prompt and to_tool_calling_prompt by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1599\r\n  * Improve function body extraction in tools by @HairlessVillager in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1627\r\n  * Support passing model_kwargs to TransformersModel by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1608\r\n  * Support dict messages as direct input to models by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1570\r\n\r\n* **Executor Improvements**\r\n\r\n  * Enhance `LocalPythonExecutor` security by blocking dunder calls by @nnfrog in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1551\r\n  * Fix `continue` semantics of `LocalPythonExecutor`by @adaminsky in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1645\r\n  * Fix `GeneratorExp` in `LocalPythonExecutor` to return `Generator` instead of `list` by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1650\r\n\r\n* **Gradio & UI**\r\n\r\n  * Reset agent memory on GradioUI clear button by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1611\r\n  * Use `gr.Number` for mapping integer and number type components in `launch_gradio_demo` by @karenwky in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1320\r\n\r\n## Bug Fixes 🐛\r\n\r\n* Fix: Prevent empty additional_args from being added to agent prompt by @jokokojote in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1566\r\n* Fix SyntaxError in generated Gradio app due to 'class' attribute by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1615\r\n* Fix serialization inconsistency in MultiStepAgent.to_dict\u002Ffrom_dict for managed_agents by @hazrmard in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1577\r\n* Fix a kwargs error in LocalPythonExecutor by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1583\r\n* Fix structured outputs by @MicrosoftJames in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1642\r\n* Fix bug where `AmazonBedrockServerModel` crashes in thinking mode by @benoriol in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1632\r\n* Fix: Remove duplicate line in `tool_calling_agent` prompt by @yusuf-eren in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1636\r\n* Fix: `RemotePythonExecutor` should not send variables if none exist by @thomasjpfan in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1605\r\n* Disable parallel tool calls for final answer by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1539\r\n\r\n\r\n## Documentation 📚\r\n\r\n* Improve Installation docs with uv option by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1550\r\n* Fix and improve MCP server security warnings in docs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1549\r\n* DOC: Fix image link for docs (secure_code_execution.md) by @FacerAin in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1582\r\n* Update title of page \"What are agents\" by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1546\r\n* Enable multilingual docs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1633\r\n* 🌐 [i18n-KO] Translated `index.md` to Korean by @FacerAin in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1581\r\n* 🌐 [i18n-KO] Translated `text_to_sql.md` to Korean by @nsbg in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1603\r\n\r\n## CI \u002F Dependency Updates 🧪\r\n\r\n* Pin mcpadapt to support image\u002Faudio content by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1558\r\n* Temporarily skip wrongly implemented tests by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1571\r\n* CI hotfix: Pin mlx \u003C 0.26.5 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1586\r\n* Support mlx-0.26.5 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1589\r\n* CI hotfix: Pin transformers \u003C 4.54.0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1620\r\n* Support transformers 4.54.0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1625\r\n* Fix CI PytestUnknownMarkWarning: Unknown pytest.mark.timeout by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1630\r\n* Fix CI quality: remove trailing whitespace by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1617\r\n\r\n## Deprecations & Cleanups 🧹\r\n\r\n* Replace deprecated ast.Num and ast.Str with ast.Constant in tool validation by @WilliamRabuel in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1594\r\n* Remove deprecated `grammar` parameter by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1651\r\n* Remove deprecated token count attributes by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1652\r\n* Remove deprecated agent `logs` attribute by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1653\r\n* Remove mention of deprecated `ManagedAgent` from docs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fh","2025-08-07T10:48:49",{"id":182,"version":183,"summary_zh":184,"released_at":185},116089,"v1.20.0","## New Features ✨\r\n\r\n* **Remote Execution**:\r\n  * Implement remote Python WasmExecutor by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1261\r\n\r\n* **Callbacks**:\r\n  * Support callbacks after planning step by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1445\r\n  * Support multiple callbacks per step type in step_callbacks dict by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1517\r\n\r\n## Enhancements 🛠️\r\n\r\n* **Models**:\r\n  * Implement rate limiting in all API models by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1516\r\n\r\n* **Tools**:\r\n  * Implement exception mechanism for final answer in remote executors by @tobiasofsn in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1429\r\n  * Set default api_key_name in ApiWebSearchTool by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1507\r\n  * Implement rate limit mechanism in ApiWebSearchTool by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1508\r\n  * Implement rate limit mechanism in DuckDuckGoSearchTool by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1515\r\n  * Enable image output for Tool.from_space by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1510\r\n  * Add adapter_kwargs parameter to MCPClient by @LucasDltg in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1528\r\n\r\n* **Validation of Tool Arguments**:\r\n  * Support multiple types in tool arguments validation by @duguyue100 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1505\r\n  * Fix input type validation when input schema has multiple types by @duguyue100 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1530\r\n  * Fix optional args toolcalling by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1538\r\n\r\n* **Agent Output Formatting**:\r\n  * Implement CodeOutput as analog to ToolOutput by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1496\r\n  * Allow markdown or custom formatting for code blocks by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1493\r\n\r\n* **Other**:\r\n  * Add ApiWebSearchTool to __all__ list by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1492\r\n  * Enforced type annotations in `ChatMessage` via `MessageRole` enum by @daavoo in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1479\r\n  * Check authorized imports in LocalPythonExecutor constructor by @jank in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F265\r\n\r\n## Bug Fixes 🐛\r\n* Fix `KeyError` when agent reaches max steps with image input by @robin-ede in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1525\r\n* Fix when `response.usage` is `None` for some OpenRouter models by @sentienthouseplant in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1402\r\n* Fix incorrect token counting in streaming TransformersModel by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1503\r\n* Minor fix nested quotes that prevent execution by @vinoo-ganesh-keru in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1497\r\n* Fix ChatMessage attribute access after replacing dict with dataclass by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1534\r\n* Fix access of `content` field in `ChatMessage` by @mdr223 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1533\r\n* Fix parallel final answers handling by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1482\r\n\r\n## Documentation Improvements 📚\r\n\r\n* **Examples & Tutorials**:\r\n  * Add complete Plan Customization example by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1506\r\n  * Add Async App with Agent example by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1509\r\n  * Improve Plan Customization example with Human-in-the-Loop by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1513\r\n\r\n* **API References**:\r\n  * Fix docstring of WikipediaSearchTool by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1521\r\n  * Explain rate_limit in tools docstrings by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1519\r\n  * Fix Examples in AmazonBedrockServerModel docstring by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1522\r\n  * Split Built-in Tools from Tools in Reference docs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1520\r\n\r\n* **Other**:\r\n  * Update Langfuse tracing documentation to SDK v3 by @jannikmaierhoefer in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1447\r\n  * Fix use of context manager agent in docs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1502\r\n\r\n## Maintenance 🏗️\r\n* Fix CI LiteLLM test_call_different_providers_without_key by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1527\r\n* Fix test_send_tools_with_default_wikipedia_search_tool by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1494\r\n* Fix DockerExecutor tests with final_answer by callin","2025-07-10T16:22:39",{"id":187,"version":188,"summary_zh":189,"released_at":190},116090,"v1.19.0","## Enhancements 🛠️\r\n\r\n* **Agent Upgrades**:\r\n  * Support managed agents in ToolCallingAgent by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1456\r\n  * Support context managers for agent cleanup by @tobiasofsn in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1422\r\n  * Change code tags to xml by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1442\r\n\r\n* **UI Improvements**:\r\n  * Support reset_agent_memory in GradioUI by @JakeBx in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1420\r\n\r\n* **Streaming Refactor**:\r\n  * Transfer aggregation of streaming events off the Model class by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1449\r\n\r\n* **Agent Output Tracking**:\r\n  * Store CodeAgent code outputs in ActionStep by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1463\r\n\r\n## Bug Fixes 🐛\r\n* Fix Agent update planning logic by @Zoe14 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1417\r\n* Remove plural from named argument return_full_results in examples by @vladlen32230 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1434\r\n* Fix and refactor final answer checks by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1448\r\n* Fix logging of Docker build logs by @tobiasofsn in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1421\r\n* Add a mention of additional_args in the manager agent's prompt by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1441\r\n* Fix missing mentions of additional_args in manager agent prompts by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1459\r\n* Fix: `__new__` method only accepts class object, remove **args and **kw… by @abdulhakkeempa in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1462\r\n* Do not wrap types in safer_func by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1475\r\n* Match multiline final answers in remote executors by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1444\r\n* Revert removal of the last message from memory_messages during planning by @Zoe14 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1454\r\n\r\n## Documentation Improvements 📚\r\n\r\n* **Quickstart Enhancements**:\r\n  * Add simple tool usage in doc quickstart by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1470\r\n  * Add open-colab link to Quickstart docs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1472\r\n\r\n* **Reference Docs**:\r\n  * Add AgentMemory to Reference docs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1473\r\n  * Add docstrings to GradioUI by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1451\r\n\r\n* **Fixes & Formatting**:\r\n  * Correct broken link in documentation homepage by @johntony366 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1468 \r\n  * Rename docs files from .mdx to .md by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1471\r\n\r\n## Maintenance 🏗️\r\n* Bump dev version: v1.19.0.dev0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1427\r\n\r\n\r\n## New Contributors\r\n* @Zoe14 made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1417\r\n* @vladlen32230 made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1434\r\n* @JakeBx made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1420\r\n* @abdulhakkeempa made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1462\r\n* @johntony366 made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1468\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fcompare\u002Fv1.18.0...v1.19.0","2025-06-24T08:43:14",{"id":192,"version":193,"summary_zh":194,"released_at":195},116091,"v1.18.0","## New Features ✨\r\n* **Multiple Parallel Tool Calls**: ToolCallingAgent can now handle multiple tool calls in parallel, significantly enhancing performance for complex tasks.\r\n  * Support multiple tool calls in parallel in ToolCallingAgent by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1412\r\n* **Streaming Output for ToolCallingAgent**: ToolCallingAgent now supports streaming outputs, improving responsiveness and user experience during multi-step tool interactions\r\n  * Streaming outputs for ToolCallingAgent 🚀 by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1409\r\n* **API Web Search Tool**: Introduced a new ApiWebSearchTool, enabling structured web search capabilities via API.\r\n  * Create API web search tool by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1400\r\n\r\n## Enhancements 🛠️\r\n* Update prompts to avoid confusion: search -> web_search and wiki -> wiki_search by @SrzStephen in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1403\r\n* Make Agent.system_prompt read only by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1399\r\n* Support configurable tool_choice in prepare_completion_kwargs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1392\r\n* Support passing additional params to MLXModel load and tokenizer.apply_chat_template by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1406\r\n* Support custom headers\u002Fparams for ApiWebSearchTool by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1411\r\n\r\n## Bug Fixes 🐛\r\n* Fix: Support custom inputs execution for custom Final Answer Tool by @Lrakotoson in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1383\r\n* Fix @tool decorator for remote Python executor by @tobiasofsn in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1334\r\n* Always pass add_generation_prompt=True to apply_chat_template by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1416\r\n\r\n## Documentation Improvements 📚\r\n* Make docs neutral about agent types by @julien-c in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1376\r\n* Add MCP tools doc section by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1394\r\n* Update ToolCollection.from_mcp docstring examples by @neonwatty in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1398\r\n* Document better final_answer_checks by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1407\r\n* Fix typo in secure code execution documentation by @chahn in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1414\r\n* Add chat server demo to examples by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1415\r\n* Fix VLM model in web_browser example docs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1424\r\n* Fix ValueError on Guided Tour docs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1425\r\n* Explain agent types better in Guided tour docs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1426\r\n* Add Quickstart page to docs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1413\r\n\r\n## Maintenance 🏗️\r\n* Bump dev version: v1.18.0.dev0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1390\r\n\r\n## New Contributors\r\n* @Lrakotoson made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1383\r\n* @neonwatty made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1398\r\n* @SrzStephen made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1403\r\n* @chahn made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1414\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fcompare\u002Fv1.17.0...v1.18.0","2025-06-10T14:15:08",{"id":197,"version":198,"summary_zh":199,"released_at":200},116092,"v1.17.0","## New Features ✨\r\n* **Structured Generation in CodeAgent**: Add optional support for structured outputs in `CodeAgent`, enabling more reliable and consistent generation patterns\r\n  * Adding optional structured generation to CodeAgent by @akseljoonas in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1346\r\n* **Support for Streamable HTTP MCP Servers**: Expand compatibility with new server types to support streamable HTTP MCP implementations\r\n  * Support Streamable HTTP MCP servers by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1384\r\n* **Run Results from `Agent.run()`**: The `Agent.run()` method can now return a `RunResult` object, providing richer metadata on agent execution\r\n  * Agent.run() can return RunResult object by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1337\r\n\r\n## Security Enhancements 🔒\r\n* **Safer LocalPythonExecutor**: Prevent indirect submodule access via attribute resolution, mitigating potential security risks in user-defined code\r\n  * Prevent submodules through indirect attribute access in LocalPythonExecutor by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1375\r\n\r\n## Enhancements 🛠️\r\n* **LocalPythonExecutor Enhancements**:\r\n  * Support annotated assignments within class definition in LocalPythonExecutor by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1355\r\n  * Fix evaluate_class_def for Assign Attribute target in LocalPythonExecutor by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1357\r\n  * Support 'pass' statement in class definition in LocalPythonExecutor by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1358\r\n  * Refactor tests of LocalPythonExecutor by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1356\r\n* Improve LaTeX rendering in GradioUI with extended delimiter support by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1387\r\n\r\n## Bug Fixes 🐛\r\n* **Streaming fixes**\r\n  * Fix live streaming when generating planning steps by @FlorianVal in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1348\r\n  * Stop streaming if LiteLLM provide a finish_reason by @FlorianVal in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1350\r\n  * add api_base and api_keys to preparation of kwargs for generate stream by @FlorianVal in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1344\r\n* Fix WebSearchTool validation error by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1367\r\n* Fix smolagents benchmark by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1377\r\n\r\n## Documentation Improvements 📚\r\n* Add example docs about using OpenRouter models by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1364\r\n* Fix Llama model name in docs example by @SaiDunoyer in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1379\r\n* fix typo  in docstring in mcp_client.py by @grll in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1380\r\n* Document use_structured_outputs_internally with version added by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1388\r\n* Fix rendering of version added in docs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1389\r\n* Fix broken link in agentic RAG examples page by @vksx in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1363\r\n\r\n## Maintenance 🏗️\r\n* Bump dev version: v1.17.0.dev0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1336\r\n* Remove deprecated from_hf_api methods by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1351\r\n\r\n## New Contributors\r\n* @FlorianVal made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1344\r\n* @vksx made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1363\r\n* @akseljoonas made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1346\r\n* @SaiDunoyer made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1379\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fcompare\u002Fv1.16.1...v1.17.0","2025-05-27T11:26:12",{"id":202,"version":203,"summary_zh":204,"released_at":205},116093,"v1.16.1","## Bug Fixes 🐛 \r\n\r\n* Revert \"Add timeout mechanism for code execution\" by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1340\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fcompare\u002Fv1.16.0...v1.16.1","2025-05-16T15:06:21",{"id":207,"version":208,"summary_zh":209,"released_at":210},116094,"v1.16.0","## New features 🚀\r\n* **Tools**\r\n  * Add Bing search engine to WebSearchTool by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1313\r\n* **Local Python executor improvements**\r\n  * Support passing custom functions to local Python executor by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1302\r\n  * Support executor_kwargs in LocalPythonExecutor for initialization customization by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1314\r\n  * Add timeout mechanism for code execution by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1318\r\n* **CLI improvements**\r\n* Enable local web agents via api_base and api_key by @zbloss in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1333\r\n\r\n## Important changes ⚠️\r\n* **Default provider for InferenceClientModel is now \"auto\"**\r\n  The default value of the `provider` argument in `InferenceClientModel` has changed from `\"hf-inference\"` to `\"auto\"`.\r\n  With `\"auto\"`, the client will automatically select the first available provider for the model, following the user's configured priority at https:\u002F\u002Fhf.co\u002Fsettings\u002Finference-providers\r\n  * Pin minimum version of huggingface-hub to use InferenceClient auto provider by @julien-c in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1322\r\n\r\n## Bug Fixes 🐛\r\n* **Streaming GradioUI fixes**\r\n  * Fix thought yield in GradioUI for streaming and non-streaming by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1311\r\n  * Fix duplicate error message in GradioUI, test, and refactor by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1312\r\n  * Fix duplicate plan display in GradioUI when streaming by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1317\r\n\r\n## Documentation 📚\r\n* Improve docs about Agentic RAG by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1319\r\n* Update Readme video with streaming example by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1306\r\n\r\n## Misc 🛠️\r\n* Bump dev version: v1.16.0.dev0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1304\r\n* Update minimum supported Gradio version to 5.14.0 to fix Sidebar-related AttributeError by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1309\r\n* Fix deprecation of HfApiModel by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1315\r\n* Fix CI DuckDuckGoSearchTool tests raising 202 Ratelimit by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1324\r\n* Remove utils dir from Makefile check_dirs by @tobiasofsn in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1335\r\n\r\n\r\n## New Contributors\r\n* @tobiasofsn made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1335\r\n* @zbloss made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1333\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fcompare\u002Fv1.15.0...v1.16.0","2025-05-16T05:59:44",{"id":212,"version":213,"summary_zh":214,"released_at":215},116095,"v1.15.0","## New features 🚀\r\n\r\n* **Streaming support**\r\n  * Streaming model outputs by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1236\r\n  * Working streaming Gradio chatbot outputs by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1246\r\n  * Simplify validation of stream by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1242\r\n  * Fix return type hint for generate_stream and rename CompletionDelta to ChatMessageStreamDelta by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1247\r\n  * Remove dead code related to non-CompletionDelta streaming results by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1248\r\n\r\n* **New models**\r\n  * Add LiteLLM Router model by @NishantBaheti in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1096\r\n\r\n* **New tools**\r\n  * Implement WebSearchTool by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1300\r\n  * Replace DuckDuckGoSearchTool with WebSearchTool in docs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1303\r\n\r\n## New documentation 📚\r\n* Add Installation docs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1293\r\n* Add docs about Using different models: Gemini models by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1297\r\n\r\n## Fixes and improvements 🔧\r\n* Fix typo in pydoc by @darxriggs in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1222\r\n* Change language from semantic to lexical for BM25 by @HeardACat in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1230\r\n* Move MCPClient to root-level lib and manage optional dependencies by @njbrake in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1238\r\n* Update README.md by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1233\r\n* Set \\_\\_name__ to \"\\_\\_main__\" in local Python interpreter by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1234\r\n* Remove unused argument from the MultiStepAgent documentation by @damnever in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1250\r\n* Add billing for inference providers model by @merveenoyan in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1260\r\n* Fix Loading GAIA dataset by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1266\r\n* Fix remote executor send_tools to skip pip install on empty package list by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1273\r\n* Remove smolagents installation from remote executors by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1274\r\n* Allow VisitWebpageTool to run on remote executors without installing smolagents by @keetrap in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1288\r\n* Refactor RemotePythonExecutor.send_tools to call install_packages by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1281\r\n* Remove unnecessary dependencies from DockerExecutor image by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1272\r\n* Support tools with union type return by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1294\r\n* Fix WikipediaSearchTool in remote executors by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1283\r\n* docs: fix typo by @luisegarduno in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1253\r\n* Fix Custom Final Answer Tool for ToolCallingAgent by @HeardACat in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1255\r\n\r\n## Maintenance 🏗️\r\n* Bump dev version: v1.15.0.dev0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1221\r\n* CI: Simplify testing by running all tests in a single command by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1218\r\n* Fix deprecated typing by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1249\r\n* Update Open DeepResearch requirements by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1265\r\n* Lower Pillow dependency minimum version to 10.0.1 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1270\r\n* Hotfix CI: pin mcp \u003C 1.7.0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1285\r\n* Remove duckduckgo-search as required dependency by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1271\r\n* Unpin mcp \u003C 1.7.0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1289\r\n* Remove markdownify as required dependency by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1275\r\n\r\n## New Contributors\r\n* @darxriggs made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1222\r\n* @HeardACat made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1230\r\n* @NishantBaheti made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1096\r\n* @damnever made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1250\r\n* @luisegarduno made their first contribution in https","2025-05-07T15:25:24",{"id":217,"version":218,"summary_zh":219,"released_at":220},116096,"v1.14.0","## New features 🚀\r\n* SmolAgents MCP Client by @grll in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1200\r\n  * Introduce a new `MCPClient` class that allows users to manage connections to one or more MCP servers, making integration with SmolAgents more flexible and scalable.\r\n* Amazon Bedrock Native API Support by @leandrodamascena in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1115\r\n  * Add native support for Amazon Bedrock in the `models` module, enabling seamless interaction with Bedrock-hosted models.\r\n\r\n## Important changes 💥\r\n* Rename `HfApiModel` to `InferenceClientModel` by @julien-c in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1198\r\n  * Align the naming with its broader usage beyond the Hugging Face Hub, clarifying its purpose and usage.\r\n* Star-pattern-based import authorization by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1180\r\n  * Enhance import security by introducing a star-pattern-based authorization mechanism, allowing fine-grained control over which modules can be imported.\r\n\r\n## Fixes and improvements 🔧\r\n* Unpin pillow \u003C 11.2.0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1140\r\n* Pass vLLM (VLLMModel) model client params as `client_kwargs` by @sergiopaniego in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1137\r\n* Docs: Add Code Agents in agency table by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1144\r\n* Replace ChatMessage.from_hf_api with from_dict with asdict by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1076\r\n* Make to_messages methods compatible with qwen vl by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1148\r\n* Fix get_json_schema for keyword in description by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1146\r\n* Support images in stream_to_gradio by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1154\r\n* Fix: adjust PlanningStep user message to avoid azure's content filter by @bpoppinga in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1151\r\n* Refactor code agent system prompt by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1153\r\n* Fix bug authors by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1163\r\n* Fix memory step model output in ToolCallingAgent by @keetrap in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1156\r\n* Parsing model outputs: allow whitespaces after the header of code blobs by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1172\r\n* Fix: Add default value to optional argument by @rca-umb in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1155\r\n* Add more detail to code execution documentation  by @maeste in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F983\r\n* Make TextInspectorTool serializable by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1176\r\n* Clarify tool usage in agent step tutorial by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1175\r\n* Provide ability to override Agent logger by @sysradium in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1166\r\n* Pin mcpadapt >= 0.0.19 to include security fix by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1178\r\n* Fix tool validation with multiple assignments by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1177\r\n* Fix typo in the memory.mdx by @alpsencer in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1187\r\n* feat: add custom Docker image support and enhanced configuration for DockerExecutor by @kingdomad in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1057\r\n* Add api_key argument in HfApiModel by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F947\r\n* Implement Tool.from_dict by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1006\r\n* Implement Agent.from_dict by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1007\r\n* Call recursively Agent.to_dict for managed agents by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1008\r\n* Support `Literal` type annotations in `@tool` for defining enums by @stephanlensky in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1195\r\n* Support class docstrings in LocalPythonExecutor by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1192\r\n* Reference Inference Providers more clearly by @julien-c in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1197\r\n* Support annotated assignment in LocalPythonExecutor by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1193\r\n* Fix evaluate_boolop for non-boolean return type by @ZeusFSX in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1191\r\n* Make MultiStepAgent and abstract class by @sysradium in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1204\r\n* fix: creating tool should not affect function that is being wrapped by @njbrake in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1203\r\n* Remove header comments from MDX docs for proper","2025-04-18T09:59:12",{"id":222,"version":223,"summary_zh":224,"released_at":225},116097,"v1.13.0","## Important changes 🚀 \r\n* Gradio UI now logs images observed by your agent: log observations images by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1113\r\n* allow users to retrieve original Gradio app by @sysradium in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F811\r\n* Re-authorize submodule imports if top was allowed by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1103\r\n     - We had internal debate about this one: when a user authorizes import of a top level package like `additional_authorized_imports=[\"numpy\"]`, should it:\r\n         - Option 1: by default enable all subpackages like numpy.random, except potentially dangerous ones that we then have to detect through a blocklist?\r\n         - 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\", ...]`\r\n         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.\r\n\r\n## Fixes & Tweaks\r\n* Bump dev version: v1.13.0.dev0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1035\r\n* Fix telemetry AttributeError: module 'smolagents' has no attribute 'ApiModel' by @IlyaGusev in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1040\r\n* Hotfix CI: pin transformers \u003C 4.50.0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1044\r\n* Align name of tool __source__ by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1042\r\n* Update type hints and docstrings of Agent\u002FTool .save with Path type by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1036\r\n* Fix PythonInterperterTool description of code input with auth imports by @benediktstroebl in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1053\r\n* Fix typos in Code Agent prompt by @andysalerno in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1063\r\n* Validate agent name by @Misakar-0v0 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F768\r\n* fix(`MLXModel`): define var to avoid `UnboundLocalError` by @SauravMaheshkar in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1059\r\n* Minor fix code block rendering in Open DeepResearch README by @keetrap in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1055\r\n* Add WikipediaSearchTool to default tools by @touseefahmed96 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F514\r\n* Improve MLXModel call by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1067\r\n* Support transformers 4.50.0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1070\r\n* Improve Tool.push_to_hub to avoid saving to local filesystem by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1051\r\n* Fix Tool.to_dict for nullable input parameter by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1038\r\n* Support tool Gradio app with boolean input type by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1065\r\n* Support running CI on push to ci-* branch by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1047\r\n* Set Agent\u002FTool requirements as a sorted list by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1048\r\n* Support passing raw to ChatMessage.from_dict by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1010\r\n* Distinguish between AgentToolCallError and AgentToolExecutionError by @sysradium in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1060\r\n* Add detail on potential threats to system by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1077\r\n* Refactor Tool.save by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1075\r\n* Fixing typos in toolcallingagent prompt by @Y-artios in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1082\r\n* Refactor step yielding during streaming run to log PlanningSteps by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1083\r\n* Make pandas a test extra dependency only by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1081\r\n* Add security disclaimer to MCP docs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1090\r\n* Fix get_json_schema for docstrings with type annotations by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1088\r\n* Remove transformers\u002Fhuggingface-hub to check torch availability by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1022\r\n* Improve ApiModel and subclasses instantiation by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1095\r\n* Add trust_remote_code to ToolCollection.from_mcp by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1091\r\n* Add user message after plan by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolag","2025-04-02T15:10:31",{"id":227,"version":228,"summary_zh":229,"released_at":230},116098,"v1.12.0","## What's Changed\r\n* Bump dev version: v1.12.0.dev0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F982\r\n* Fix json parsing by @sysradium in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F987\r\n* Fix Agent.from_hub for older smolagents exports by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F989\r\n* Regression fix: ChatMessageToolCall id must be a string by @sysradium in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F990\r\n* Always parse tool calls from APIs by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F991\r\n* Sort additional authorized imports by @keetrap in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F998\r\n* Fix custom prompt templates in Agent.from_hub by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1001\r\n* Always parse arguments from API tool calls by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1000\r\n* Fix TransformersModel: torch_dtype and trust_remote_code not passed to VLM by @Louis-Gv in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1012\r\n* Fix double space in toolcalling_agent.yaml by @louisbrulenaudet in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1021\r\n* Update images type and docstring by @keetrap in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1018\r\n* Support JSON string arguments in tool calls by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1003\r\n* Pass trust_remote_code to transformers tokenizer\u002Fprocessor by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1013\r\n* Fix code using pillow required dependency by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1019\r\n* Fix tests of Agent.save and Tool.save by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1029\r\n* Remove dependency on transformers get_tests_dir by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1026\r\n* Reduce model calls in planning_step from 2 to 1 by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F985\r\n* Bugfix: adding \u003Cend_code> to prevent imaginary tool calls in CodeAgent by @IlyaGusev in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F918\r\n* Use pytest-datadir for shared data files by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1031\r\n* Refactor Agent.to_dict by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1004\r\n* Add support for MCP SSE servers by @grll in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F931\r\n\r\n## New Contributors\r\n* @Louis-Gv made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1012\r\n* @louisbrulenaudet made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F1021\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fcompare\u002Fv1.11.0...v1.12.0","2025-03-20T09:37:38",{"id":232,"version":233,"summary_zh":234,"released_at":235},116099,"v1.11.0","## What's Changed\r\n* Bump dev version: v1.11.0.dev0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F890\r\n* Add Chinese translation & fix zh doc build process by @muscaestar in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F893\r\n* Fix chained assignment in local executor by @sysradium in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F843\r\n* Check dangerous modules instead of dangerous patterns by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F877\r\n* Fix typo in building good agents tutorial by @whistler in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F903\r\n* Add tests and refactor CLI by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F892\r\n* Bump mcpadapt >= 0.0.15 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F895\r\n* Update docs about changing the system prompt by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F900\r\n* Support transformers 4.49.0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F898\r\n* Fix typo in list of dangerous functions by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F909\r\n* Improve evaluate_subscript by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F916\r\n* Enforce security check in all evaluations by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F906\r\n* Improve performance of test_while infinite loop by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F907\r\n* Test all dangerous functions and fix check of os.system by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F911\r\n* Fix Tool docstring, and model init exception by @zhanluxianshen in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F927\r\n* Remove default model_id from models by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F905\r\n* Improve docstring of parse_code_blobs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F876\r\n* Test vulnerability for dangerous modules by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F929\r\n* Fix broken link to benchmarking code in README by @amaarora in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F933\r\n* Fix Gradio UI for unnamed agents by @sysradium in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F812\r\n* Add mlx-lm to all extra by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F961\r\n* Fix Gradio UI for None name by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F956\r\n* Introduce counter class by @Bilokin in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F891\r\n* Fix AzureOpenAIServerModel to not call openai.OpenAI by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F966\r\n* Fix CI usage of uv by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F970\r\n* Adds VLLMModel by @NathanHB in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F337\r\n* Support passing flatten_messages_as_text to OpenAIServerModel and test by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F959\r\n* Fix tool function implementation by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F943\r\n* Fix broken example of using MCP Server by @njbrake in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F936\r\n* Support passing any kwargs to E2BExecutor Sandbox by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F951\r\n* Fix VLLMModel example in models docs by @zhanluxianshen in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F976\r\n* Fix OpenAIServerModel client by @durd07 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F975\r\n* Forbid all modules by default except whitelist authorized_imports by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F935\r\n* Forbid access to all dunder attributes by default by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F979\r\n* Raise agent generation errors by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F948\r\n* Update Open Deep Research's README.md by @keetrap in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F763\r\n* Make sure to log thoughts if verbosity_level is set to high by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F964\r\n* Get correct source code for functions defined in local executor. by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F973\r\n\r\n## New Contributors\r\n* @muscaestar made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F893\r\n* @whistler made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F903\r\n* @zhanluxianshen made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F927\r\n* @amaarora made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F933\r\n* @NathanHB made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F337\r\n* @njbrake made their first contribution in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents","2025-03-14T19:55:16",{"id":237,"version":238,"summary_zh":239,"released_at":240},116100,"v1.10.0","## New features 🚀🚀\r\n* Add Docker executor by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F733\r\n    - This means you can now initialize agents with `executor=\"docker\"` to run code in a Docker sandbox! Docs coming soon.\r\n* Safer local Python interpreter\r\n  * Make local Python interpreter safer by checking if returns builtins by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F848\r\n  * Make local Python interpreter safer by checking if returns dangerous modules by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F861\r\n  * Make local Python interpreter safer by adding builtins to dangerous modules by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F869\r\n* Add support for serper search by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F698\r\n* Support running a demo of Open DeepResearch by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F806\r\n* Enable Colab notebook version of each doc page (by renaming doc file extension from .md to .mdx) by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F691\r\n\r\n## Fixes and improvements 🔧\r\n* Bump dev version: v1.10.0.dev0 by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F649\r\n* Improve missing toolcall exception by @GrahamTheCoder in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F614\r\n* refactor: simplify file type checking from MIME to extension by @kingdomad in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F342\r\n* Bugfix: Groq via LiteLLM 🚅 by @JGalego in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F605\r\n* Add docstring args for MultiStepAgent.from_folder by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F654\r\n* Remove non-existent subfolder arg in MultiStepAgent.from_hub by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F653\r\n* Minor fix save agents by @keetrap in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F645\r\n* Align step numbers in monitoring logging by @spemed in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F667\r\n* Remove deprecated resume_download arg in from_hub by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F670\r\n* Pass notebook_folder to build notebook docs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F671\r\n* Update the prompts for delegating subtasks to agents in prompt files by @spemed in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F678\r\n* Documentation: manage agent's memory by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F675\r\n* Move contributing details into contributing file by @GrahamTheCoder in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F651\r\n* Fix typo in error message by @samee99 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F687\r\n* Refactor evaluate ast to improve readability by @CalOmnie in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F625\r\n* Update docs in zh\u002Fexamples\u002Fmultiagents.md by @spemed in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F688\r\n* Make dangerous_patterns a module variable by @CalOmnie in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F505\r\n* Pin transformers \u003C 4.49.0 to fix TypeError: LlavaProcessor: got multiple values for keyword argument 'images' by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F693\r\n* Respect formatting in ast.FormattedValue for local_python_executor by @LorienMan in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F660\r\n* Simplify instrumentation for phoenix by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F697\r\n* Test validate_tool_attributes by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F696\r\n* Remove translation tool from README by @keetrap in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F705\r\n* Fix test docs by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F701\r\n* Fix SpeechToTextTool by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F706\r\n* Fixed typo in Telemetry docs by @sergiopaniego in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F710\r\n* Fix validate_tool_attributes for non-literal defaults by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F711\r\n* Ignore parameter types in tool docstrings by @carlsberg03 in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F724\r\n* Refactor MultiStepAgent and improve some tests by @colesmcintosh in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F598\r\n* Fix duplicate managed agent name and its tool name by @keetrap in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F721\r\n* Update docs on how to change prompts by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F725\r\n* Remove transformers tasks from load_tool docstring by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F726\r\n* Remove article section from launch_gradio_demo Interface by @albertvillanova in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F728\r\n* Update logo in Readme by @aymeric-roucher in https:\u002F\u002Fgit","2025-03-05T18:04:08",{"id":242,"version":243,"summary_zh":244,"released_at":245},116101,"v1.9.2","## Bug Fixes 🐛 \r\n* Fix litellm flatten_messages_as_text detection by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fcommit\u002Fef6031542c1f71b758e3167b9c21888a726f92d8\r\n* Fix litellm flatten_messages_as_text detection by @aymeric-roucher in https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fpull\u002F659\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsmolagents\u002Fcompare\u002Fv1.9.1...v1.9.2","2025-02-17T10:43:13"]