Claude Code 学习站

CCA-F 练习题库· Prompt Engineering & Structured Output

某开发者需要保证 Claude 的工具调用参数始终严格符合某个工具的 JSON Schema。启用这一点的正确做法是什么?

  1. Atool_choice 对象的内部设置 strict: true,使被强制调用的那个 tool 在生成它的参数的过程中就即时完成 schema 校验
  2. B在工具定义上设置 strict: true,并在其 input_schema 中带上 additionalProperties: false 和一个 required 数组
  3. Coutput_config.format 指向该工具的 input_schema 并设 type: "json_schema",让同一份 schema 同时约束文本与工具参数。
  4. Dmessages.create() 上传入一个顶层字段 "validation": "strict",让它作用于该请求里面的每一个 tool 的定义
  5. E用一个只写了一半的 tool_use 块来预填 assistant 轮次,其中给出该工具的 name 字段,并打开它的 input 对象的起始花括号

正确答案:B

解析

严格工具使用是通过在工具定义本身上把 strict: true 设为顶层字段来启用的(与 name/description/input_schema 并列),并且 input_schema 必须包含 additionalProperties: false 和一个 required 数组;这保证发出的 tool_use.input 符合该 schema(无需 beta header)。

  • B正确,说的正是这一做法。
  • A错误——strict 不放在 tool_choice 内部。
  • C错误——output_config.format 是另一个独立的结构化输出特性,约束的是助手的文本响应,而不是工具输入。
  • D错误——messages.create() 上并不存在顶层参数 "validation": "strict"。
  • E错误——预填一个部分的 tool_use 块既不能保证校验,在当前模型上甚至根本不被允许,因为 assistant 轮次的预填会被拒绝。

延伸阅读

本题为本站自有原创练习题,非任何官方考试内容;解析对照 Anthropic 公开文档撰写, 如与最新文档不符请以官方为准。想在限时环境下检验水平,可参加 模拟考(题目与本页题库不重叠)。