三分钟搞懂AI Agent!

0 前言

  • 无需为不同任务使用单独软件
  • 使用日常语言来命令你的设备
  • “代理”是人工智能的高级形式
  • 未来五年将成为现实
  • 人人都有的私人助理Agent
  • 应用在干行百业之中(医疗、教育、娱乐....)

1 Agents 是什么?

Al Agents是基于LLM的能够自主理解、自主规划决策、执行复杂任务的智能体,Agents不是chatGPT的升级版,它不仅告诉你“如何做”,更会帮你去做,如果各种Copilot是副驾驶,那么Agents就是主驾驶。

Agents = LLM +规划技能+记忆 + 工具使用

本质上Agents是一个LLM的编排与执行系统:

一个精简的Agents决策流程,一个循环一个任务:

2 LangChain 中的 Agents 如何实现

  1. 提出需求/问题
  2. 问题+Prompt组合
  3. ReAct Loop
  4. 查找Memory
  5. 查找可用工具
  6. 执行工具并观察结果

如有必要,重复1~6,

  1. 得到最终结果

3 最简单的 Agents 实现

3.0 需求

  • 会做数学题
  • 不知道答案的时候可以搜索

3.1 安装通义千问

!pip install langchain==0.2.1  # 安装langchain
!pip install langchain-community==0.2.1  # 安装第三方集成
!pip install python-dotenv==1.0.1  # 使用 .env 文件来管理应用程序的配置和环境变量
!pip install dashscope==1.19.2  # 安装灵积模型库

定义.env文件,里面配置你的API-KEY:

import os
from dotenv import find_dotenv, load_dotenv
from langchain_community.llms import Tongyi
from langchain_core.runnables import RunnableSequence
from langchain.prompts import PromptTemplate

load_dotenv(find_dotenv())
DASHSCOPE_API_KEY = os.environ["DASHSCOPE_API_KEY"]
# 定义llm
llm = QwenTurboTongyi(temperature=1)

3.2 搭建工具

# 安装谷歌搜索包
! pip install google-search-results

import os 
os.environ["SERPAPI_API_KEY"] = "XXXX"

SERPAPI_API_KEY值即为你刚才注册的免费 Api Key

from langchain.agents import load_tools
tools = load_tools(["serpapi","llm-math"], llm=llm)

3.3 定义agent

使用小样本增强生成类型

from langchain.agents import initialize_agent
from langchain.agents import AgentType

agent = initialize_agent(
    tools,
    llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,#这里有不同的类型
    verbose=True,#是否打印日志
)
agent.run("请问现任的美国总统是谁?他的年龄的平方是多少?")

关注我,紧跟本系列专栏文章,咱们下篇再续!

作者简介:魔都技术专家,多家大厂后端一线研发经验,在分布式系统设计、数据平台架构和AI应用开发等领域都有丰富实践经验。

各大技术社区头部专家博主。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。

负责:

  • 中央/分销预订系统性能优化
  • 活动&优惠券等营销中台建设
  • 交易平台及数据中台等架构和开发设计
  • 车联网核心平台-物联网连接平台、大数据平台架构设计及优化
  • LLM应用开发

目前主攻降低软件复杂性设计、构建高可用系统方向。

参考:

全部评论

相关推荐

拉哥聊校招:1.大厂看中的是计算机基础,项目的深度和思考,以及你对技术栈应用在你的项目的业务的思考,以及高并发(以Java为例嘛,就是JUC的掌握),数据库缓存这些。上述掌握了 也需要很长时间的,而且大部分人掌握的还是八股,但校招来说也是够了~(当然小厂一般看中你的上手能力,也就是所谓的“技术”嘛,能写接口也可以了),至于项目这块,因为大多数人都是烂大街项目嘛,所以你需要对于你写的项目需要体现你的思考才是,这些才是你的亮点所在。(前提是进入面试) 2.因为面试官几乎就是看三个模块,一个是实习经历(包括科研经历,假如有的话),一个是项目经历,一个是技能;三个模块的排序就看你对哪个掌握比较深,哪个更深,更有自信就将该模块放在前面。 3.专业技能你写的熟悉,是否真的熟悉,所谓的熟悉是你应用场景、原理都要很懂才叫熟悉,不然的话你经不住面试官拷打很减分的;或许可以考虑换一个说法。技能这块最好是罗列一下,清晰地按照模块分层写:语言及基础、框架、中间件、计算机基础等;(不过你分层写的不错) 4.项目这块最好按照STAR法则去写,按照按照四个模块,项目描述,项目使用的技术栈,项目难点亮点(可以适当加粗),项目做完的收获这样子。我们都知道大部分同学的项目都是烂大街的,这其实没所谓,哪有那么多同学做高并发的项目呢哈哈,很多大厂里面的员工也只是负责 toB 业务的他们也不知道高并发呀~所以,重点在于你对你写的项目的深度思考,你在面对什么相对复杂的业务时用了啥技术去解决?这个技术是否经过验证?权衡?以及带来的后果是啥,浓缩成一句话,你要把你的项目当成要还原一个现成的app去写最好。你是否准备对项目的难点亮点的问题呢?项目问题你这边虽然都是技术栈堆砌,但是问题不大了,整天看起来还是可以的(这边可以给你简历的项目提一些面试官或许会问的问题或者拓展问题) 5.学历很优秀,完全有可能去大厂的呀,现在是秋招提前批和日常实习的专场了,可以好好准备一下,然后充提前批吧~做一个简介:假如需要模拟面试,可以来滴滴我哈哈,一般两次到三次模拟面试就可以避免踩坑了(再强的面霸第一次面试的时候都是做炮灰的,很多学历很好的同学的第一面往往是大厂面试,做炮灰的几率更大,因为小厂也不傻,不给机会面试,所以我们可以给你一次模拟面试,让你真正掌握面试的重点的技巧,而不只是单单背八股文而已~以及包括项目的亮点和难点辅导),简历辅导也是如此。 6.最后的最后,加油努力,祝你成功、顺利。
点赞 评论 收藏
分享
1 3 评论
分享
牛客网
牛客企业服务