AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


MAS | 让多智能体干活!做海南旅游官网优化方案,tools爬取网站,Agent分析输出优化方案!
发布日期:2024-08-08 06:12:46 浏览次数: 1722 来源:一意AI增效家


以后MAS系列,部分内容,会在公众号发布,有个独立专栏!

多智能体系统MAS(Multi-Agent System)的0-1学习项目,上线!

至于什么是MAS,同时发出的另外一篇,有介绍!

生产级AI多智能体系统MAS学习指南

这是,长期项目!还没看的,上面看!

雄哥一直都说,做任何实践,必须先得到!

犹如,蜘蛛网,只有技能逐个握在手上,才能织成大网!

我们从一个完整的生成式AI框架中,聚焦多智能体系统,拆开智能体的七大组件:

①感知

②目标推理

③规划

④多Agent对齐

⑤函数调用/实体执行

⑥评估

⑦自进化/迭代

说好0-1,今天,跟着雄哥,做一个简单多智能体协作应用,Crew AI来爬取海南旅游官网,并且分析输出营销优化方案!

--实现--

(Agent根据任务调用tools爬取网站,并深入分析网站内容)

这个系统,可以只运行在系统底层,支撑最终的输出或物理动作,它干了几件核心的事:

#A 分析目标

#B 根据目标调用tools

#C 获取tools执行后的数据(也可是现实世界的实体反馈)

#D 根据数据,结合目标,输出方案

#E 输出反馈及审核

#F 再次优化方案

#G 审核-多Agent同意方案,最终输出


ok!人的专注力只有10分钟,一边跑,一边聊MAS的原理,先得到!

第一部分:CrewAI是什么?

第二部分:代码如何工作?

第三部分:跑起来!边跑边聊代码细节!


第一部分:CrewAI是什么?代码如何工作?


这是一个用于编排角色扮演、自主 AI Agent的尖端框架,让AI成为多个不同角度的Agent,围绕目标去展开方案和工作!

可能你对雄哥之前做的RAG+Tools的方案比较熟悉,之前我们的Agent的入口都是RAG,现在,入口在“Agent”!

RAG能在这个框架下运行!更可作为,外部子系统,调用!

CrewAI就是这样出发的一个Agent框架,但未来,Agent能干的事,还远不止于此!更不会拘泥于某一个开发框架!

在MAS的学习指南中,CrewAI是其中一部分,雄哥认为这,很有价值!

对这个项目感兴趣的朋友,一定要留意我们的系列实践,也可到它的官方仓库,找到资料:

https://github.com/crewAIInc/crewAI

当然啦,除了这个项目,我们还会做一些同样有价值的Agent框架实践,比如AutoGen、SWE-Agent等,甚至还会有雄哥团队做的Agent项目实践部分,属私货内容!


第二部分:代码是如何工作的?


刚刚雄哥,都介绍到啦,他是如何工作的?

通过多Agent协作,解决问题!

我们从自己实际的场景,来设计Agent的任务流,让他围绕我这个真实的目标,去编排,不就行咯!

雄哥刚刚在海南回来,假如你是“海南旅游官网”的产品经理,你应该如何优化这个网站呢?

https://hainanly.cn

那要干这个活,就要有这些Agent,来编排:

①公司研究Agent:帮助你收集有关 “海南旅游” 的商业模式、服务和市场地位的详细见解,以定制营销方案;

②网站分析Agent:帮助评估  “海南旅游”  的网站,以寻找设计、可用性和 SEO 优化的改进;

③内容策略Agent:该Agent帮助你制定与  “海南旅游”  的品牌和目标相一致的内容策略,从而增强其在线形象;

④销售推介Agent:该Agent吸收了所有其他Agent的发现,以创建一个完备的方案,突出 Web 开发专业知识、以前的工作,并提出量身定制的解决方案以满足 “海南旅游”  官方的业务目标;

当然啦,可以自定义,你可以根据自己的任务,设计自己的Agent编排!

稍后,雄哥也会详细介绍,他们之间,是如何工作的!


第三部分:跑起来!边跑边聊代码细节!


刚刚,我们定义了四个Agent,来优化,并输出完备的方案!

3.1 公司研究Agent

定位:

-收集海南旅游的详细信息,包括业务、产品、服务和市场地位;

背景:

-负责收集有关潜在客户的全面数据,为销售宣传提供信息;

工具:

-search_tool:查找有关公司背景、产品和服务的信息;

-scrape_tool:从公司的网站和在线状态收集更多详细信息;

任务:

-将调查结果委托给网站分析Agent,以确保全面理解;


3.2 网站分析代理

定位:

-分析 “海南旅游” 网站需要改进的点,包括设计、性能和用户体验;

背景:

-专注于确定客户网站上的具体问题和改进方案;

工具:

-scrape_tool:从公司网站提取数据进行详细分析;

-search_tool:与最佳实践进行比较并确定改进之处;

任务:

-将调查结果委托给内容策略Agent,以纳入销售宣传;


3.3 内容策略代理

定位:

-制定内容策略,并确定改进的内容如何推动参与度和转化率;

背景:

-专门为网站上的内容改进创建指定的叙述和策略;

工具:

-search_tool:查找内容策略的示例和最佳实践;

-scrape_tool:分析当前内容并提出改进建议;

任务:

-将内容策略委托给销售推销Agent,以整合到最终推销中;


3.4 推销代理

定位:

-创建一个个性化和有说服力的销售宣传,以说服公司通过“Code With Prince”升级优化网站;

背景:

-将研究、分析和内容策略相结合,打造完美的方案;

工具:

-search_tool:收集推介所需的所有信息;

-scrape_tool:根据其他Agent的见解+补充完善推介;

任务:

-需要保持对销售宣传创建过程的直接控制,确保有凝聚力+有针对性;


ok!以上,就是雄哥的Agent编排的思路!

现在,我们动手,把这个项目,在本地,用代码跑起来!

你可以识别以上二维码,在星球,会员盘中,找到这个代码和环境要求!

末尾联系工程师-小胖,报 “老粉” 获取优惠券+进群喔!

如果你还未搭建,本地环境,马上点击下方,搭建环境!

第四天!0基础微调大模型+知识库,部署在微信!手把手安装AI必备环境!4/45

已经搭建好的,打开conda,直接跟着操作!

你如果习惯使用其他工具的,例如vscode等,怎么顺手怎么来,小白跟着操作!

创建conda环境!

一个项目,对应一个独立环境,养成习惯!名称crewai,指定Python版本3.10!

conda create -n crewai python=3.10


激活刚创建的crewai环境!

conda activate crewai


安装jupyter!

我们所有的代码,都在这个环境操作,如果你是用其他工具的,就不用安装了!

pip install jupyter


cd进入下载的工作目录中!

确保没有中文!cd 代码文件的目录!

cd crewai

pip安装依赖!

pip install -r requirements.txt


进入操作环境!

就是,刚刚我们安装了jupyter!会自动跳转到浏览器!

jupyter-notebook


双击打开这份代码!

看到这,就已经成功进入了!

如何操作,非常简单了,ctrl+回车,就是运行当前代码块!

如果你不太熟jupyter,一定要学,上手极快!


在你这个文件夹中,还有api key,如果你还未申请,需要去申请或买一个!然后填到.env文件中!

OK!

首先,导入.env中的api!

import dotenv%load_ext dotenv%dotenv


获取网站数据!创建tools!

# 创建搜索工具search_tool = DuckDuckGoSearchRun()# 创建网络爬虫工具scrape_tool = ScrapeWebsiteTool()


创建4个Agent,并且给他们分发任务!

这里,雄哥用到了什么提示词工程方法,在星球也分享过,看有没有伙伴记得?

这是第一个Agent,负责研究这个研究这个公司网站的!其他三个同理!

# 定义公司研究agentcompany_research_agent = Agent(role="Company Research Agent",goal="收集目标公司的详细信息,包括其业务、产品、服务和市场地位.",backstory=("负责收集潜在客户的全面数据,以便为销售陈述提供信息."),allow_delegation=True,verbose=True)

# 定义公司研究agent的任务company_research_task = Task(description=("收集的数据包括 {company_name} 网站的 ({company_website}) 和其他的内容. ""包括关于他们的业务、产品、服务以及市场地位的细节."),expected_output=("详细报告关于 {company_name} 业务、产品、服务及市场地位的详细报告."),agent=company_research_agent,tools=[search_tool, scrape_tool])


依次定义好其他三个Agent后,我们要创建MAS中,非常重要的功能:

功能一:记忆功能

让Agent具有记忆,即使是多轮的对话或者输出再次交互,也不会遗忘历史对话!

功能二:共享缓存

Agent①已经调用tools获得的数据,多个Agent工作的时候,其他Agent应该都知道这份数据,不用重复劳动,提升效率!

那我们定义好四个Agent,对应四个任务!

crew = Crew(agents=[company_research_agent, website_analysis_agent,content_strategy_agent,sales_pitch_agent],tasks=[company_research_task, website_analysis_task,content_strategy_task,sales_pitch_task],verbose=2,memory=True,cache=True)

memory是记忆功能,cache是共享缓存功能!True!


然后,爬取网站数据!它会深入网站去做分析,甚至二级菜单!

启动程序,开始干活!

# 执行启动result = crew.kickoff(inputs=inputs)


你会看到Agent集群,开始在各自的角度工作!

你也可以把这个对话保存为.md文件!

当然啦,这还是单个model编排,真实的Agent任务中,还要根据每个任务的要求,安排微调后的Agent专用models来干的,这,也是MAS学习指南的重磅内容!

今天,我们就聊到这,目标,是让家人们,体验Agent作为入口,是如何工作和编排的,还非常初级!后面,我们会有更多的内容上线!



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询