Skill · Claudexia Blog - Claude Function Calling and Tool Use in 2026
让 Claude 立即输出结构化数据
图片: Kevin Ku 来自 Unsplash
不必再与 JSON 模式较劲,让 Claude 在每次响应中都给出可靠的结构化输出。通过强制使用特定的工具定义,你可以消除模型的不确定性,在数据提取、报告生成和自动化工作流中获得可预测的结果。这一技巧能缩短调试时间,让 Claude 成为需要一致格式的生产系统的可靠之选。
在 Claude 中强制使用 tool_choice 是 2026 年实现可靠结构化输出最简洁的模式之一。与其要求 Claude 生成 JSON 并指望它不会虚构模式,不如定义一个具有你确切输出结构的工具,并将 tool_choice 设置为 ‘any’ 或某个特定工具名称。Claude 被迫请求该工具,而你则直接解析结构化的参数。
具体运作方式如下:首先,在 API 请求中定义你的工具,包括名称、描述,以及与你的确切需求相吻合的 input_schema。例如,如果你要从文档中提取信息,就创建一个名为 ‘extract_document_metadata’ 的工具,其中包含标题、作者、日期和摘要等字段。然后在 API 调用中加入 tool_choice: ‘specific_tool_name’。此时 Claude 必须以一个 tool_use 块作答,其中包含你所定义的精确模式下的结构化数据--无需猜测,无需重新格式化。
一个具体的专业示例:一家律师事务所需要从合同中提取关键条款。与其要求 Claude“返回包含条款名称和日期的 JSON”,不如定义一个 ‘extract_contract_clauses’ 工具,其中包含 clause_name、effective_date、party_obligations 和 penalty_terms 等字段。强制 Claude 使用该工具。每一份合同提取结果都会以完全相同的格式返回,可直接传入你的数据库或合规系统,无需人工清理。这使 Claude 从文本生成器转变为可靠的数据管道组件。
这一技巧还能强制吸引 Claude 的注意力。诸如“只提取明确规定的义务,而非隐含义务”这样的描述,会变成 Claude 在每次调用前都会阅读的提示,而不是它可能遗忘的指令。开发者报告称,与 JSON 模式的方法相比,输出验证和重新提示的时间减少了 50% 至 70%。工具模式既是契约,也是保证。