CCA-F 练习题库· Tool Design & MCP Integration
关于编写自定义工具定义以便 Claude 正确选择并调用它们,下列哪项陈述最符合 Anthropic 的指导?
- A把每个工具的 description 只写成工具名,让工具块的 token 开销尽量小;Claude 会仅凭名称推断出它的行为、各参数的含义以及该在什么时候调用它
- B给每个参数起 arg1/arg2 这样的通用名称,并省略属性描述和 enum 取值以保持 input_schema 紧凑,因为 Claude 能从示例推断出可接受的取值
- C把所有关于何时使用的指引都放进 system prompt,并让每个工具的 description 留空,这样所有工具的路由规则集中在一处,随着工具增加也便于修改,而且每个 tool block 都小到可以当作稳定前缀来缓存
- D用 strict: true 来代替写描述,因为 strict 模式会用你的 input_schema 校验每一次调用,从而保证 Claude 每次请求都选对工具
- E写一段详尽、规定性强的描述,说明何时调用该工具(而不只是它做什么),对取值固定的参数使用 enum,为每个属性添加描述,并且只把真正必需的参数标记在 required 中
正确答案:E
解析
- E正确:Anthropic 的「Define tools」文档指出,工具的 description 是「对工具表现而言迄今为止最重要的因素」,必须详尽且具规定性,不仅要说明该工具做什么,还要说明它什么时候应该(以及不应该)被使用、每个参数是什么含义,以及有哪些注意事项。规范的 schema 示例对取值固定的参数使用 enum(例如 unit: ["celsius","fahrenheit"]),为每个属性都给出各自的 description,并且只在 required 中列出真正必需的字段(把 location 标为必需,而让 unit 保持可选)。
- ACB都与「极其详尽的描述 / 逐属性描述」这一指引相抵触;
- D错误,因为 strict: true 只保证工具输入符合你的 JSON schema(与 tool_choice: "any" 搭配时还可以强制必须调用某个工具)——它并不能保证 Claude 选中正确的工具,也不能替代一段好的描述。
延伸阅读
本题为本站自有原创练习题,非任何官方考试内容;解析对照 Anthropic 公开文档撰写, 如与最新文档不符请以官方为准。想在限时环境下检验水平,可参加 模拟考(题目与本页题库不重叠)。