CCA-F 练习题库· Prompt Engineering & Structured Output
某开发者需要保证 Claude 的工具调用参数始终严格符合某个工具的 JSON Schema。启用这一点的正确做法是什么?
- A在
tool_choice对象的内部设置strict: true,使被强制调用的那个 tool 在生成它的参数的过程中就即时完成 schema 校验 - B在工具定义上设置
strict: true,并在其input_schema中带上additionalProperties: false和一个required数组 - C把
output_config.format指向该工具的input_schema并设type: "json_schema",让同一份 schema 同时约束文本与工具参数。 - D在
messages.create()上传入一个顶层字段"validation": "strict",让它作用于该请求里面的每一个 tool 的定义 - 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 公开文档撰写, 如与最新文档不符请以官方为准。想在限时环境下检验水平,可参加 模拟考(题目与本页题库不重叠)。