自测题:代码智能体与工具调用(第 2 单元)

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

问题 1:使用 @tool 装饰器创建工具与创建 Tool 的子类之间的主要区别是什么?

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

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

答案:B。两种方法都适用于任何类型的工具(含检索类与文本生成类),装饰器更适合简单函数式工具,子类化则提供更大灵活性。A 错在“强制要求”;C 错在单/多智能体无限制;D 错在两种方法都需要文档字符串。


问题 2:CodeAgent 如何使用 ReAct(推理+行动)方法处理多步骤任务?

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

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

答案:C。CodeAgent 通过迭代“思考—写代码—执行—记录结果”的 ReAct 循环逐步求解。A 描述的是多智能体分配;B 是 ToolCallingAgent 的 JSON 风格;D 错在视觉能力非默认要求。


问题 3:在 Hugging Face Hub 上共享工具的主要优势是什么?

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

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

答案:B。在 Hub 上共享使工具可被任何人(包括你自己)快速下载与重用。A 错在共享不会自动配置 RAG;C 错在两种智能体都能调用;D 错在共享不会改变工具功能。


问题 4:ToolCallingAgent 在执行操作方面与 CodeAgent 有何不同?

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

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

答案:C。ToolCallingAgent 使用 JSON 方式描述工具调用及参数,由解析器执行。A 错在两种智能体都可单用或成多智能体;B 错在主 LLM 仍负责推理;D 错在它同样支持多步。


问题 5:smolagents 默认工具箱包含哪些内容?为什么要使用它?

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

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

答案:A。默认工具箱提供开箱即用的常用工具,便于快速集成与原型开发。B 错在并非专用于视觉;C 错在兼容任意智能体类型;D 错在默认不提供高级 RAG。


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

小结

  • 定义工具有两种方式:@tool 装饰器适合简单函数式工具,子类化适合复杂或自定义元数据。
  • CodeAgent 以“思考—写代码—执行—记录”的 ReAct 循环处理多步任务;ToolCallingAgent 则用 JSON 描述工具调用。
  • 在 Hugging Face Hub 共享工具可让他人零配置发现、复用并集成到 smolagents。
  • smolagents 默认工具箱(DuckDuckGo 搜索、PythonInterpreterTool、最终答案工具等)利于快速原型开发。

参考与延伸阅读