微信扫码
与创始人交个朋友
我要投稿
以后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,负责研究这个研究这个公司网站的!其他三个同理!
# 定义公司研究agent
company_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+中大型企业
2024-05-30
2024-09-12
2024-06-17
2024-08-06
2024-08-30
2024-04-21
2024-06-26
2024-07-07
2024-06-14
2024-07-21
2024-09-26
2024-09-26
2024-09-01
2024-07-15
2024-07-14
2024-07-10
2024-07-02
2024-06-29