

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用工具完成 Amazon Bedrock 模型响应
<a name="tool-use"></a>

您可以使用 Amazon Bedrock API 向模型授予访问一些工具的权限，这些工具可以帮助模型针对您发送给模型的消息生成响应。例如，您可能有一个聊天应用程序，支持用户查询某个电台播放的最受欢迎的歌曲。要回答关于最受欢迎的歌曲的请求，模型需要使用一个可以查询并返回歌曲信息的工具。

**注意**  
现在，您可以使用工具使用结构化输出。有关更多信息，请参阅[从模型中获取经过验证的 JSON 结果](structured-output.md)。

在 Amazon Bedrock 中，模型不会直接调用工具。发送消息时，您还会提供一个或多个工具的定义，这些工具可以帮助模型生成响应。模型决定何时需要工具；您的应用程序代码（或服务器端模式下的 Amazon Bedrock 本身）执行该工具，并返回结果供模型纳入其最终响应中。

Amazon Bedrock 支持三种工具使用模式，具体取决于您调用的 API 和使用的型号系列：


| **Mode (模式)** | **谁在运行这个工具** | **何时使用** | 
| --- | --- | --- | 
| [Client-side 工具的使用](tool-use-client-side.md) | 您的应用程序代码，在模型返回工具调用请求之后。 | 大多数用例。通过 “回复”、“聊天完成”、“对话” 和 InvokeModel API 提供。 | 
| [Server-side 工具的使用](tool-use-server-side.md) | 亚马逊 Bedrock 本身。您注册了 Lambda 函数或 AgentCore 网关，然后 Amazon Bedrock 代表模型调用该工具。 | 无需管理应用程序中的编排，即可集中安全地执行工具。目前可在响应 API 上使用。 | 
| [Anthropic Claude 工具的使用](model-parameters-anthropic-claude-messages-tool-use.md) | 您的应用程序代码，使用Anthropic定义的工具类型（computer\_\*、、bash\_\*text\_editor\_\*、memory\_\*）和Anthropic消息 API 请求格式。 | 计算机使用、代码执行、文件编辑、永久内存，或者Claude模型开启或的精细工具流。bedrock-runtime bedrock-mantle | 