

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

# 使用会话管理功能存储和检索对话历史记录和上下文 APIs
<a name="sessions"></a>

**注意**  
会话管理 APIs 处于预览状态，可能会发生变化。

 会话管理 APIs 使您能够在使用开源框架（例如 LangGraph 和）构建的生成式 AI 应用程序中保存正在进行的对话的检查点 LlamaIndex。您可以使用 APIs 来安全地管理多步生成式 AI 工作流程中的状态和对话上下文。您不必为了实现状态和上下文持久性而构建、维护或扩展自定义后端解决方案。

使用会话管理 APIs，您可以执行以下操作：
+ 迭代测试和工作流程的检查点 human-in-the-loop工作流程阶段。
+  从中断点恢复对话和任务。
+ 查看会话日志来分析工作流阶段和调试故障。

由于会话是 Amazon Bedrock 中的一种资源，因此您可以使用 AWS Identity and Access Management (IAM) 控制对会话的访问权限。默认情况下，Amazon Bedrock 使用 AWS托管密钥进行会话加密，包括会话元数据，您也可以使用自己的 AWS KMS 密钥。有关更多信息，请参阅 [会话加密](sessions-encryption.md)。

 你可以使用 Amazon Bedrock 创建和管理 Amazon Bedrock 会话 APIs，或者。 AWS SDKs对于在此基础上构建的应用程序 LangGraph，您可以使用`langgraph_checkpoint_aws.saver`库中的`BedrockSessionSaver`类。这是的自定义实现 LangGraph CheckpointSaver。有关更多信息，请参阅[LangChain](https://github.com/langchain-ai) GitHub 存储库[langgraph-checkpoint-aws](https://github.com/langchain-ai/langchain-aws/tree/main/libs/langgraph-checkpoint-aws)中的。

**注意**  
您可以使用会话，存储通过开源框架构建的生成式人工智能应用程序的状态和对话历史记录。对于 Amazon Bedrock Agents，该服务会自动管理对话上下文，并将其与您在 API 操作中指定的代理特定的会话 ID 相关联。[InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html)

**Topics**
+ [使用案例示例](#sessions-use-case)
+ [工作流](#sessions-workflow)
+ [注意事项](#sessions-considerations)
+ [会话加密](sessions-encryption.md)
+ [创建会话用于准备存储对话历史记录和上下文](sessions-create.md)
+ [存储会话中的对话历史记录和上下文](sessions-store-coversation.md)
+ [从会话中检索对话历史记录和上下文](sessions-retrieve-coversation.md)
+ [在用户结束对话时结束会话](sessions-end-session.md)
+ [删除会话及其所有数据](sessions-delete-session.md)
+ [使用 BedrockSessionSaver LangGraph 库存储和检索对话历史记录及上下文](sessions-opensource-library.md)

## 使用案例示例
<a name="sessions-use-case"></a>

您可能有一个使用 LangGraph 代理来帮助客户计划旅行行程的应用程序。用户可以启动与该代理的对话，为即将到来的旅行创建行程，添加目的地、偏好的酒店和航班详细信息。

通过会话管理 APIs，代理可以在扩展的多步交互中保存中间状态和持久上下文。添加各个目的地后，代理可以使用 Amazon Bedrock 会话来检查其状态，保留有关客户偏好的详细信息。

如果对话中断或失败，代理可以稍后在上下文（包括文本和图像）保持不变的情况下恢复会话。这使得代理可以继续工作，而无需客户重复提供信息。此外，遇到故障时，您可以调查会话详细信息，对造成问题的原因进行调试。

## 工作流
<a name="sessions-workflow"></a>

使用会话管理的工作流程 APIs 如下。有关使用 BedrockSessionSaver库的信息，请参见[使用 BedrockSessionSaver LangGraph 库管理会话](sessions-opensource-library.md)。
+ **创建会话**-当您的最终用户首次开始对话时，您可以使用 [CreateSession](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_CreateSession.html)API 操作创建会话并为该会话指定一个 ID。在存储和检索对话状态时，您可以使用此 ID。
+ **存储对话和上下文** — 当您的最终用户与您的生成式 AI 助手互动时，请使用 [CreateInvocation](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_CreateInvocation.html)API 在会话中创建一组交互。对于每次调用，使用 [PutInvocationStep](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_PutInvocationStep.html)API 操作为每次交互存储细粒度的状态检查点，包括文本和图像。
+ **检索对话历史记录和上下文**-使用[GetSession[ListInvocations](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_ListInvocations.html)](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GetSession.html)、和 [GetInvocationStep](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GetInvocationStep.html)API 操作检索会话元数据和互动详情。
+ **结束会话**-会话完成后，使用 [EndSession](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_EndSession.html)API 操作结束会话。结束会话后，您仍然可以访问其内容，但不能添加内容。要删除会话及其内容，请使用 [DeleteSession](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_DeleteSession.html)API 操作。

## 注意事项
<a name="sessions-considerations"></a>

在创建和管理会话之前，请注意以下事项：
+ 您可以使用 Amazon Bedrock 创建和管理会话 APIs ，以及。 AWS SDKs您无法使用 AWS 管理控制台来管理会话。
+ 对于在此基础上构建的代理应用程序 LangGraph，您可以使用`langchain-aws`库中的`BedrockSessionSaver`类。这是的自定义实现 LangGraph CheckpointSaver。有关使用 BedrockSessionSaver库的信息，请参见[使用 BedrockSessionSaver LangGraph 库管理会话](sessions-opensource-library.md)。要直接查看代码，请参阅[LangChain](https://github.com/langchain-ai) GitHub 存储库[langgraph-checkpoint-aws](https://github.com/langchain-ai/langchain-aws/tree/main/libs/langgraph-checkpoint-aws)中的。
+ 如果您在创建会话时指定了客户管理的 AWS KMS 密钥，则创建会话的用户或角色必须具有使用该密钥的权限。有关更多信息，请参阅 [会话加密](sessions-encryption.md)。
+ 会话管理 APIs 有以下配额：
  + 一个会话中所有调用的调用步骤数：1000
  + 每个调用步骤的最大大小：50 MB
  + IdleSession 超时-1 小时
  + 保留期：会话数据将在 30 天后自动删除