

# 使用 Amazon Nova 构建人工智能代理
<a name="agents"></a>

**注意**  
本文档适用于 Amazon Nova 版本 1。有关如何使用 Amazon Nova 2 构建人工智能代理的信息，请访问[构建人工智能代理](https://docs.aws.amazon.com/nova/latest/nova2-userguide/building-ai-agents.html)。

人工智能代理可以帮助终端用户根据组织数据和用户输入完成操作。代理可以编排基础模型（FM）、数据来源、软件应用程序和用户对话之间的交互。此外，代理还可以自动调用 API 来执行操作，并调用知识库来补充这些操作所需的信息。开发人员可以通过集成代理来加快生成式人工智能应用程序的交付，从而节省数周的开发时间。

借助代理，您可以为客户自动执行任务并回答他们的问题。例如，您可以创建一个代理来帮助客户处理保险索赔，或者创建一个代理来帮助客户进行旅行预订。您无需预调配容量、管理基础设施或编写自定义代码。Amazon Nova 可管理提示工程、记忆、监控、加密、用户权限和 API 调用。

有关在 Amazon Bedrock 中构建人工智能代理的信息，请参阅 [Bedrock Agents](https://docs.aws.amazon.com/bedrock/latest/userguide/agents.html)。

代理可以执行以下任务：
+ 扩展基础模型来了解用户请求，并将代理必须执行的任务分解为更小的步骤。
+ 通过自然对话从用户那里收集其他信息。
+ 通过对公司系统进行 API 调用，采取操作来满足客户的请求。
+ 通过查询数据来源来提高性能和准确性。

**Topics**
+ [将 Amazon Nova 用作人工智能代理中的基础模型](agents-use-nova.md)
+ [搭配 AgentCore 使用 Amazon Nova](#agents-agentcore)
+ [搭配 Strands 使用 Amazon Nova](#agents-strands)
+ [其他资源](#agents-resources)

# 将 Amazon Nova 用作人工智能代理中的基础模型
<a name="agents-use-nova"></a>

要将 Amazon Nova 模型用作人工智能代理中的基础模型，您可以使用 [Amazon Bedrock 代理](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-how.html)，也可以[使用 Converse API 来调用工具](https://docs.aws.amazon.com/bedrock/latest/userguide/tool-use-inference-call.html)或者使用 InvokeModel API 来调用工具。Amazon Bedrock代理是一项完全托管的服务，您可用来在应用程序中构建和配置自主代理。您还可以使用 Converse API 和 InvokeModel API 连接到其他现成的代理框架，也可以构建自己的代理框架。

您可以在代理提示模板中使用占位符变量。调用提示模板时，变量将由预先存在的配置填充。有关这些占位符变量的信息，请参阅 [Use placeholder variables in Amazon Bedrock agent prompt templates](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-placeholders.html)。

**Topics**
+ [搭配 Amazon Bedrock 代理使用 Amazon Nova](#agents-bedrock)
+ [将 Amazon Nova 与 Invoke API 和 Converse API 配合使用](#agents-converse)

## 搭配 Amazon Bedrock 代理使用 Amazon Nova
<a name="agents-bedrock"></a>

Amazon Nova 模型已在 [Bedrock 代理](https://docs.aws.amazon.com/bedrock/latest/userguide/agents.html)中启用，且遵循 Amazon Bedrock 代理的用户说明。Amazon Bedrock代理已预先配置关键功能和提示，以便有效地与 Amazon Nova 模型配合使用。这些配置让用户能够轻松地利用 Amazon Bedrock 代理的关键功能：
+ **自主代理**：Amazon Bedrock 代理支持创建自主代理，这样的代理可以根据用户输入和组织数据执行任务，无需进行大量的自定义编码工作。这可以为您节省大量时间和精力。
+ **内置 API 调用**：Amazon Bedrock 代理会自动处理 API 调用来满足用户请求，这简化了外部服务和数据来源的集成。
+ **记忆和上下文管理**：代理可以在多轮交互中维护上下文、对话和记忆，能够随着时间的推移进行更加个性化和连贯的对话。
+ **知识库集成**：您可以将知识库与代理关联来提高其性能和准确性，使其能够根据存储的信息提供相关性更高的回复。
+ **提示工程和自定义**：Amazon Bedrock 代理支持高级提示工程，允许开发人员自定义代理的行为和回复，从而更好地适应特定应用场景。
+ **代码解释器**：代码解释可让代理在安全的测试环境中生成和运行应用程序代码并对其进行故障排除。
+ **多代理协作：**构建、部署和管理多个 AI 代理，共同处理需要专业技能的复杂多步骤任务。

## 将 Amazon Nova 与 Invoke API 和 Converse API 配合使用
<a name="agents-converse"></a>

也可以借助 Invoke API 和 Converse API 来利用 [Amazon Nova 的“工具使用”（函数调用）](tool-use.md)，从而将 Amazon Nova 模型与开源集成，或者构建自定义人工智能代理框架。这提供了极大的灵活性，但要注意的是，直接使用 API 意味着某些方面要由您来实现或库来处理：

1. **存储对话/用户数据**：Converse API 不保留任何用户输入或生成的内容，这意味着您的代理无法记住过去的交互信息。每次调用模型时，您都需要传递之前的所有消息。

1. **自动工具调用**：身为开发人员的您负责根据模型的请求实现工具。这意味着您需要执行或编写代码来执行工具功能并处理模型提供的输入参数。执行该工具后，您必须以结构化的格式将结果发送回模型。

1. **内置记忆**：API 缺少内置记忆功能，这意味着您的代理无法随着时间的推移记住用户偏好或过去的交互信息，对个性化体验形成限制。

## 搭配 AgentCore 使用 Amazon Nova
<a name="agents-agentcore"></a>

所有 Bedrock AgentCore 服务都可以使用 Amazon Nova 模型，这样您就可以安全、大规模地部署和操作高效代理。关键服务包括运行时、身份、内存、网关和可观测性。有关更多详细信息，请参阅 Amazon Bedrock AgentCore，示例代码请参阅 \$1placeholder\$1。

下面是在 AgentCore 中使用 Amazon Nova 的示例：

```
import boto3
from strands.models import BedrockModel

# Create a Bedrock model with the custom session
bedrock_model = BedrockModel(
model_id="model_id",
boto_session=session
)
```

## 搭配 Strands 使用 Amazon Nova
<a name="agents-strands"></a>

 Strands 原生支持 Amazon Bedrock，可使您在代理中使用这些 Nova 模型，而且配置工作量很小。有关详细信息，请参阅 Strands Amazon Bedrock。

以下代码示例演示了如何将 Amazon Nova 与 Strands 结合使用：

```
from strands import Agent
from strands.models import BedrockModel

# Create a Bedrock model instance
bedrock_model = BedrockModel(
    model_id="us.amazon.nova-premier-v1:0",
    temperature=0.3,
    top_p=0.8,
)

# Create an agent using the BedrockModel instance
agent = Agent(model=bedrock_model)

# Use the agent
response = agent("Tell me about Amazon Bedrock.")
```

## 其他资源
<a name="agents-resources"></a>

1. [使用代理自动执行应用程序中的任务](https://docs.aws.amazon.com/bedrock/latest/userguide/agents.html)

1. [Amazon Nova 的“工具使用”（函数调用）](tool-use.md)

1. [文本理解提示最佳实践](prompting-text-understanding.md)