标题:实验 10 - 创建具有代码解释能力的代理 权重:100

在这个实验中,我们提供了一个使用 Amazon Bedrock Agents 新的代码解释功能的分析代理的示例。

代码解释器是一个沙箱运行环境,代理可以在其中运行代码。

在这个示例中,我们将创建一个具有以下架构的测试代理:

代码解释

代码解释通过预定义的操作组提供给代理。一旦创建了代理,我们可以通过 CreateAgentActionGroup 请求启用代码解释功能,并将 parentActionGroupSignature 参数设置为 AMAZON.CodeInterpreter

下面的代码显示了如何使用 boto3 SDK 中的 create_agent_action_group 函数配置代码解释功能。我们应该将 parentActionGroupSignature 设置为 AMAZON.CodeInterpreter,并将 actionGroupState 状态设置为 ENABLED。请注意,我们必须将 descriptionapiSchemaactionGroupExecutor 字段留空。

当调用我们的代理时,我们应该提供一个包含查询文本、代理 ID、代理别名和会话 ID 的参数。其他参数允许启用跟踪、存储对话记忆、结束会话和维护会话状态。但是,代码解释不受任何参数的控制;具有 parentActionGroupSignature='AMAZON.CodeInterpreter' 的操作组使其可用于代理,并且在每次调用时,代理都会决定是否使用它。

向代理发送文件

要向代理传递文件,我们必须将它们添加到 sessionState 中。我们可以包括来自 S3 的文件或直接上传它们 - 将 sourceType 设置为 S3BYTE_CONTENT

当发送来自 S3 的文件时,我们指定 S3 位置;当直接上传文件时,包含文件数据并设置 byteContent 中的 mediaType

发送文件时,useCase 指示代理文件是否应由代理直接使用(CHAT)或用于代码解释环境(CODE_INTERPRETER)。有关更多信息,请参见代码解释文档

从代理接收文件

代理在 JSON 响应流的 files 字段中返回文件。这里有一个简单的处理程序示例来保存返回的文件。

响应流包含大量其他信息的跟踪事件,包括代理的推理、模型调用的输入、代理生成并传递到代码解释环境的代码以及代码解释环境中代码执行的结果。请参阅 11-create-agent-with-code-interpreter.ipynb 笔记本以获取更详细的实现示例,包括更复杂的 process_response() 函数。

试一试

在 AWS 活动中

如果我们正在通过 workshop studio 参加研讨会,现在请转到 SageMaker Studio 中的 JupyterLab。

在 JupyterLab UI 中导航到 bedrock-agents-workshop/10-create-agent-with-code-interpreter/10-create-agent-with-code-interpreter.ipynb

自主学习

这里有一个笔记本让我们尝试上述内容:创建具有代码解释器的代理