huggingface/smolagents(28k+ star)中存在一个困扰众多用户的 bug:在 CodeAgent 中混用 MCP 工具后调用
to_dict()、save() 或 push_to_hub(),会触发难以理解的 ValueError: Tool validation failed for MCPAdaptTool...。原因是框架通过静态 AST 分析重构工具源码,但 MCP 工具是运行时动态生成的,其行为依赖 MCP 服务器会话,无法被源码序列化。修复方式很简单:在Tool.to_dict()原有针对 Spaces、LangChain、Gradio 等运行时包装类的守卫中加入对 MCP 工具的检测,抛出清晰可操作的错误信息——告知用户先移除 MCP 工具再序列化,加载时通过MCPClient或ToolCollection.from_mcp重新创建。同时补充了文档说明和回归测试。
这一修复既保持了库的序列化契约,又让开发者在 hits 问题时立即知道该怎么做。
GitHub
#开发者 #工具 #smolagents #MCP #Python #AI #HuggingFace #BugFix #序列化 #Sentry
@DevToolboxHub

