当前位置: 首页 > news >正文

通过亚马逊云科技Bedrock打造自定义AI智能体Agent(上)

大家对于智能体代理Agent一定已经非常熟悉,自主代理(Autonomous Agents) 目前在AI行业极其热门并具有巨大的潜力,能够显著提升开发者日常的工作效率、自动化日常琐碎、重复性任务,并生成全新的内容。Agent可以理解用户的请求,并通过后端集成的工具来满足用户们这些需求,而无需手动设置具体的执行步骤。

在本篇文章中,小李哥会带大家手把手了解如何使用Amazon Bedrock和其标准化Converse API轻松创建一个自定义AI智能体。下面我将通过利用Streamlit框架开发的应用,在浏览器中与后端代理进行交互分析自媒体文章里的情感倾向。我为代理配备了一个网页检索服务用于获取网页内容和总结网页信息,最后将以上信息总结分析社交媒体帖子的情感倾向。除了本文介绍的场景外,智能体也可以应用于来许多实用的应用场景。

解决方案概览

本次介绍的云端解决方案由几个关键组件组成,我们将通过这些组件搭建代理,关键组件如下:

  • agent.py - 运行代理的核心逻辑
  • tools.py - 定义代理可使用的工具
  • utils.py - 代理辅助函数
  • streamlit_app.py - 与代理交互的前端UI

方案架构图如下:

AI智能体核心运行逻辑解析

我们方案中的agent.py文件包含代理运行的核心逻辑,下面是工作流程图和逐步解析:

1. 用户输入一条消息,该消息会按照Converse API的格式转换为为用户消息(User Message)。

2. 格式化后的用户消息被添加到消息列表(Message List)中。

3. 代理通过Converse API调用Bedrock上的大语言模型(LLM),并传递第二步中包括用户输入的消息列表,以及代理可用的工具类型。

4. Bedrock上的大语言模型会返回助手消息(Assistant Message),其中可能包含文本、工具调用记录以及会话停止标识(stopReason)。

6.代理检查stopReason,它可能是:

tool_use:表示LLM已决定调用某个工具;

end_turn:表示LLM已完成工具调用,并结束当前的用户交互会话;

7. 如果stopReason是tool_use,则会话未结束,代理接下来会继续调用其集成的工具完成任务。

8. 继续执行被调用的工具后返回调用结果(toolResult)。

9. toolResult被封装为用户消息,并追加到消息列表末尾。

10. 代理再次开启新一轮调用Converse API,并重复执行步骤4至9,直到接收到stopReason的值为end_turn。

11. 当stopReason为end_turn时,裁表示该代理需要执行的全部任务已完成,代理的任务周期结束。

12. 最终代理调用AI模型的的响应会作为回复在用户界面返回给用户。用户此时可以继续输入新的消息,该流程将从步骤1重新开始。

使用场景测试展示

下图展示了该Agent在Streamlit框架开发的前端UI界面中的使用案例。我们输入提示词,请求代理对提供的链接进行总结。我们Agent中使用AI模型会自动决策需要使用后端集成工具,并首先调用 RetrieveUrlTool工具来获取网页内容。在该工具检索网页内容后,代理使用html2text工具预处理了提取内容,最后将网页转换为Markdown格式,作为toolResult结果返回给代理。代理处理了 toolResult结果生成最终响应返回给用户,UI中展示响应则为包含网页内容的总结摘要。

以上就是亚马逊云科技上通过自定义智能体抓取网页结果、进行格式转换,并在streamlit框架的用户界面中展示网页提取内容的全部内容,在本系列的下篇中,小李哥将分享构建该自定义智能体的全部代码和实操步骤。欢迎大家关注小李哥和本系列的下篇,不要错过未来更多国际前沿的AWS云开发/云架构方案。 

相关文章:

通过亚马逊云科技Bedrock打造自定义AI智能体Agent(上)

大家对于智能体代理Agent一定已经非常熟悉,自主代理(Autonomous Agents) 目前在AI行业极其热门并具有巨大的潜力,能够显著提升开发者日常的工作效率、自动化日常琐碎、重复性任务,并生成全新的内容。Agent可以理解用户…...

【Nacos】负载均衡

目录 前言 一、服务下线二、权重配置三、同一个集群优先访问四、环境隔离 前言 我们的生产环境相对是比较恶劣的,我们需要对服务的流量进行更加精细的控制.Nacos支持多种负载均衡策略,包括配置权重,同机房,同地域,同环…...

小智 AI 聊天机器人

小智 AI 聊天机器人 (XiaoZhi AI Chatbot) 👉参考源项目复现 👉 ESP32SenseVoiceQwen72B打造你的AI聊天伴侣!【bilibili】 👉 手工打造你的 AI 女友,新手入门教程【bilibili】 项目目的 本…...

HTML一般标签和自闭合标签介绍

在HTML中,标签用于定义网页内容的结构和样式。标签通常分为两类:一般标签(也称为成对标签或开放闭合标签)和自闭合标签(也称为空标签或自结束标签)。 以下是这两类标签的详细说明: 一、一般标…...

怎么用u盘怎么重装系统_用u盘重装系统详细图文教程【新手教程】

怎么用u盘怎么重装系统?如果需要重装操作系统的话,以往采用光盘使用的比较多,随着技术的进步,用u盘制作一个启动盘安装系统比较方便,只需要用u盘制作好pe启动盘就可以帮助别人安装系统了,那么用u盘怎么重装…...

记录一次k8s起不来的排查过程

我在k8s集群,重启了一个node宿主机,竟然发现kubelet起不来了!报错如下 这个报错很模糊,怎么排查呢。这样,开两个界面,一个重启kubelet,一个看系统日志(/var/log/message:centos,/va…...

代码练习2

求数组中的第二大值 #include <stdio.h> #include <stdlib.h> int main() {int arr[10]{1,9,2,8,7,3,4,6,5,10};int first, second,i;if (arr[0] > arr[1]) {first arr[0];second arr[1];} else {first arr[1];second arr[0];}for(i 2; i < 10; i) {if…...

2.1.3 第一个工程,点灯!

新建工程 点击菜单栏左上角&#xff0c;新建工程或者选择“文件”-“新建工程”&#xff0c;选择工程类型“标准工程”选择设备类型和编程语言&#xff0c;并指定工程文件名及保存路径&#xff0c;如下图所示&#xff1a; 选择工程类型为“标准工程” 选择主模块机型&#x…...

Qt Designer and Python: Build Your GUI

1.install pyside6 2.pyside6-designer.exe 发送到桌面快捷方式 在Python安装的所在 Scripts 文件夹下找到此文件。如C:\Program Files\Python312\Scripts 3. 打开pyside6-designer 设计UI 4.保存为simple.ui 文件&#xff0c;再转成py文件 用代码执行 pyside6-uic.exe simpl…...

蓝桥杯LQ1044 求完数

题目描述 因子&#xff1a;因子也叫因数&#xff0c;例如3515&#xff0c;那么3和5是15的因子。 同时15115&#xff0c;那么1和15也是15的因子。 1&#xff0c;3&#xff0c;5&#xff0c;15 这四个因子是15的所有因子。 完数&#xff1a;如果一个数等于不含它本身的其他因子之…...

消息队列篇--通信协议篇--TCP和UDP(3次握手和4次挥手,与Socket和webSocket的概念区别等)

1、TCP和UDP概述 TCP&#xff08;传输控制协议&#xff0c;Transmission Control Protocol&#xff09;和UDP&#xff08;用户数据报协议&#xff0c;User Datagram Protocol&#xff09;都算是最底层的通信协议&#xff0c;它们位于OSI模型的传输层。*传输层的主要职责是确保…...

YOLOv9改进,YOLOv9检测头融合ASFF(自适应空间特征融合),全网首发

摘要 一种新颖的数据驱动的金字塔特征融合策略,称为自适应空间特征融合 (ASFF)。它学习了在空间上过滤冲突信息以抑制不一致的方法,从而提高了特征的尺度不变性,并引入了几乎免费的推理开销。 # 理论介绍 目标检测在处理不同尺度的目标时,常采用特征金字塔结构。然而,…...

Elastic Agent 对 Kafka 的新输出:数据收集和流式传输的无限可能性

作者&#xff1a;来 Elastic Valerio Arvizzigno, Geetha Anne 及 Jeremy Hogan 介绍 Elastic Agent 的新功能&#xff1a;原生输出到 Kafka。借助这一最新功能&#xff0c;Elastic 用户现在可以轻松地将数据路由到 Kafka 集群&#xff0c;从而实现数据流和处理中无与伦比的可扩…...

论文速读|Is Cosine-Similarity of Embeddings Really About Similarity?WWW24

论文地址&#xff1a; https://arxiv.org/abs/2403.05440 https://dl.acm.org/doi/abs/10.1145/3589335.3651526 bib引用&#xff1a; inproceedings{Steck_2024, series{WWW ’24},title{Is Cosine-Similarity of Embeddings Really About Similarity?},url{http://dx.doi.o…...

Midjourney中的强变化、弱变化、局部重绘的本质区别以及其有多逆天的功能

开篇 Midjourney中有3个图片“微调”&#xff0c;它们分别为&#xff1a; 强变化&#xff1b;弱变化&#xff1b;局部重绘&#xff1b; 在Discord里分别都是用命令唤出的&#xff0c;但如今随着AI技术的发达在类似AI可人一类的纯图形化界面中&#xff0c;我们发觉这样的逆天…...

基于 Node.js 的天气查询系统实现(附源码)

项目概述 这是一个基于 Node.js 的全栈应用,前端使用原生 JavaScript 和 CSS,后端使用 Express 框架,通过调用第三方天气 API 实现天气数据的获取和展示。 主要功能 默认显示多个主要城市的天气信息 支持城市天气搜索 响应式布局设计 深色主题界面 优雅的加载动画 技术栈 …...

时序数据库的使用场景

文章目录 前言一、特点二、工作原理三、常见的时序数据库四、使用场景优势总结 前言 时序数据库&#xff08;Time Series Database, TSDB&#xff09; 是一种专门设计用于存储和处理时序数据的数据库。时序数据是指按照时间顺序排列的数据&#xff0c;其中每个数据点通常包含时…...

计算机的错误计算(二百二十二)

摘要 利用大模型化简计算 实验表明&#xff0c;虽然结果正确&#xff0c;但是&#xff0c;大模型既绕了弯路&#xff0c;又有数值计算错误。 与前面相同&#xff0c;再利用同一个算式看看另外一个大模型的化简与计算能力。 例1. 化简计算摘要中算式。 下面是与一个大模型的…...

ThinkPHP 8模型与数据的插入、更新、删除

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…...

c语言函数(详解)

目录 前言 一、函数的基本概念和作用 二、函数的声明和定义 三、函数参数的传递方式 四、函数的递归 五、函数指针 总结 前言 本文主要讲解了c语言函数方面的内容 函数的定义和调用函数的返回值和参数函数的作用域和生命周期 函数的声明和定义 函数声明和函数定义的区别函数声…...

Pylint魔法方法验证:10个技巧确保特殊方法符合Python规范的终极指南

Pylint魔法方法验证&#xff1a;10个技巧确保特殊方法符合Python规范的终极指南 【免费下载链接】pylint Its not just a linter that annoys you! 项目地址: https://gitcode.com/gh_mirrors/pyl/pylint Python开发者们&#xff0c;你是否曾为魔法方法&#xff08;dund…...

微信小程序数据绑定与渲染全解析:从入门到精通

微信小程序数据绑定与渲染实战指南&#xff1a;解锁高效开发密码 微信小程序开发中&#xff0c;数据绑定与渲染机制是构建动态界面的核心。不同于传统网页开发&#xff0c;小程序采用独特的双线程架构&#xff0c;数据通信需要特殊处理。本文将深入剖析数据绑定的底层原理&…...

Graph Node高级配置:环境变量与配置文件详解

Graph Node高级配置&#xff1a;环境变量与配置文件详解 【免费下载链接】graph-node Graph Node indexes data from blockchains such as Ethereum and serves it over GraphQL 项目地址: https://gitcode.com/gh_mirrors/gr/graph-node Graph Node 作为区块链数据索引…...

嵌入式开发五大常见Bug解析与解决方案

1. 嵌入式开发中的五大常见Bug根源解析在嵌入式系统开发领域&#xff0c;代码质量直接关系到产品的可靠性和稳定性。作为一名经历过多个嵌入式项目的开发者&#xff0c;我深刻体会到某些类型的bug特别顽固且难以排查。这些bug往往在实验室测试中难以复现&#xff0c;却在现场运…...

GESP三级语法知识(六、string 入门与基础操作)

&#x1f31f; 第一课&#xff1a;《string 入门与基础操作》&#x1f3f0; 第一章&#xff1a;string 是什么&#xff1f;&#xff08;升级版小火车&#xff09;1、&#x1f3af; 故事以前我们用的是&#xff1a;&#x1f449; char数组 小火车 &#x1f682;&#xff08;要自…...

从网吧到企业网:静态路由在小型网络中的3种典型应用场景

从网吧到企业网&#xff1a;静态路由在小型网络中的3种典型应用场景 在当今数字化商业环境中&#xff0c;网络连通性已成为各类企业运营的基础需求。对于中小型商业场所如连锁网吧、零售分店或小微企业分支机构而言&#xff0c;如何在有限预算下构建稳定可靠的网络架构&#xf…...

T/SCSIA0018-2025《四川省信息技术应用创新项目费用测算标准》标准解读

此前四川省存量信息系统信创适配改造项目长期面临费用测算无统一标准、议价争议多、成本虚高、重复计费等行业痛点&#xff0c;给项目估算、审计、结算带来诸多困扰。2025年12月29日发布的T/SCSIA0018-2025《四川省信息技术应用创新项目费用测算标准》&#xff0c;作为省内首个…...

JIT 与 AOT 编译区别

注&#xff1a;本文为 “JIT 与 AOT ” 相关合辑。 英文引文&#xff0c;机翻未校。 中文引文&#xff0c;未整理去重。 图片清晰度受引文原图所限。 如有内容异常&#xff0c;请看原文。 JIT 与 AOT 区别 1 基本概念与典型实例 JIT (Just-In-Time)&#xff1a;即时编译&#…...

ArcGIS Pro像素编辑器实战:5种高效影像处理技巧(附真实案例)

ArcGIS Pro像素编辑器实战&#xff1a;5种高效影像处理技巧&#xff08;附真实案例&#xff09; 遥感影像处理是GIS工程师日常工作中的重要环节&#xff0c;而ArcGIS Pro的像素编辑器就像一把精准的手术刀&#xff0c;能帮助我们对影像数据进行精细化处理。不同于传统的批量处理…...

UniAD高版本环境实战:CUDA11.6+PyTorch1.12避坑全记录(附完整依赖清单)

UniAD高版本环境实战&#xff1a;CUDA11.6PyTorch1.12避坑全记录&#xff08;附完整依赖清单&#xff09; 当计算机视觉工程师尝试复现前沿论文时&#xff0c;环境配置往往成为第一道门槛。UniAD作为自动驾驶领域的统一大模型&#xff0c;其官方文档推荐的环境配置&#xff08;…...