#
小测验（不计分）

现在该测试您对代码智能体、工具调用智能体和工具章节的理解了。本测验为可选且不计分。

###
Q1: 使用 @tool 装饰器创建工具与创建 Tool 的子类之间的主要区别是什么？

以下哪个陈述最能描述这两种定义工具方法的区别？

使用 `@tool` 装饰器是检索类工具的强制要求，而 `Tool` 的子类仅用于文本生成任务 推荐使用 `@tool` 装饰器创建简单的基于函数的工具，而 `Tool` 的子类能为复杂功能或自定义元数据提供更大灵活性 `@tool` 只能用于多智能体系统，而创建 `Tool` 的子类适用于单智能体场景 用 `@tool` 装饰函数可以替代文档字符串，而子类工具必须不包含文档字符串

###
Q2: CodeAgent 如何使用 ReAct（推理+行动）方法处理多步骤任务？

哪个陈述正确描述了 CodeAgent 执行系列步骤来解决任务的方式？

它将每个步骤传递给多智能体系统中的不同智能体，然后合并结果 它将所有操作存储为 JSON 格式以便解析，然后一次性执行所有操作 它循环执行以下流程：编写内部思考、生成 Python 代码、执行代码并记录结果，直到得出最终答案 它依赖视觉模块验证代码输出后才能继续下一步

###
Q3: 在 Hugging Face Hub 上共享工具的主要优势是什么？

选择开发者可能上传和共享自定义工具的最佳原因。

它会自动将工具与 MultiStepAgent 集成以实现检索增强生成 它允许他人在无需额外设置的情况下发现、重用并将您的工具集成到他们的 smolagents 中 它确保只有 CodeAgent 可以调用该工具，而 ToolCallingAgent 无法调用 它会将您的工具转换为具备完整视觉能力的图像处理函数

###
Q4: ToolCallingAgent 在执行操作方面与 CodeAgent 有何不同？

选择准确描述 ToolCallingAgent 工作方式的选项。

ToolCallingAgent 仅兼容多智能体系统，而 CodeAgent 可以单独运行 ToolCallingAgent 将所有推理委托给单独的检索智能体，然后返回最终答案 ToolCallingAgent 输出指定工具调用和参数的 JSON 指令，这些指令会被解析并执行 ToolCallingAgent 仅适用于单步任务，在调用一个工具后自动停止

###
Q5: smolagents 默认工具箱包含哪些内容？为什么要使用它？

哪个陈述最能体现 smolagents 默认工具箱的目的和内容？

它提供常用工具集（如 DuckDuckGo 搜索、PythonInterpreterTool 和最终答案工具）用于快速原型开发 它默认仅支持基于视觉的任务（如图像分类或 OCR） 它专门为多智能体系统设计，与单 CodeAgent 不兼容 它添加了基于检索的高级功能，支持来自向量存储的大规模问答

恭喜完成测验！🎉 如果有任何问题让您感到困难，请重新访问代码智能体、工具调用智能体或工具章节以加强理解。如果您表现出色，那么您已踏上构建强大 smolagents 应用的道路！

Update on GitHub