Agent开发
Agent 的意义 :在 AI 时代,Agent 可以利用大模型处理复杂任务 。
复杂任务的定义:可以使用非规则化的自然语言描述并执行。
Agent技术选型
低代码/无代码开发:Coze,主要通过拖拽组件,生成Agent。
- 优点:简单易用。
- 缺点:功能有限,收费昂贵,云端执行非自主(必须联网),不可控。不同的低代码平台有差异,不易迁移。插件大多需要独立的Token,平台可用的大模型也比较有限。
框架开发:LangChain
- 优点:功能强大,可以满足复杂需求。代码可以灵活复用。
- 缺点:需要一定的技术门槛。
规则时代
# 规则化的自然语言,一切基于有穷的规则(关键词识别)。
小爱同学,关灯
在传统的场景中,如果不触发指定的关键词,或者关键词不明确,则无法执行。
例如:小爱同学,我要睡觉了。
如果想要提升模型的智能化能力,只能是工程师编写更多更复杂的关键词判断逻辑才能提升智能水平,且提升幅度有限。不能理解复杂的语义。
Agent 1.0
能理解语义,但是不能串联任务。
帮我给张总打电话
在传统的场景下,如果想要执行这个任务,则需要用户明确地告诉小爱同学,我要给张总打电话。并且你的通讯录中的人名需要是张总。不能有丝毫差异。
在通讯录的备注中,如果你的备注是:张三总,另一个人叫张三,则无法识别。或拨打错误,但是在大模型的加持下,可以识别出张三总,并拨打成功。
Agent 2.0
继承1.0时代的所有能力的同时,能够串联起多个任务,并根据任务的依赖关系,自动调整任务的执行顺序并自动执行。
如果你有一个发送邮件的API、一个查询天气的API,你希望执行一个任务:查询明天天气并给某个联系人发邮件,邮件内容为天气预报。
传统场景下,你必须明确的把这个流程编写出来,然后通过关键词触发执行。
在Agent的场景下,你只需要告诉Agent,你的需求,并编写对应的函数。Agent会对零散的函数自动生成一个流程,并执行这个流程。
如果想要提升Agent的复杂任务处理能力,那么需要更多的函数,以及大语言模型更强大的上下文理解能力,属于半规则化。类比智能驾驶只能在特定路段自动驾驶。
例如你希望给钉钉好友发送消息,那么你需要编写一个发送消息的函数,并告诉Agent,你的需求。Agent会自动生成一个流程,并执行这个流程。
可以理解为有大脑和手脚,但是只能用专门提供提供的工具,例如API。
Agent 2.5
继承2.5时代的所有能力的同时,多模态大模型可以基于视觉理解,并执行通用任务。
例如帮我用PS给这个照片调整对比度,如果没有API,传统场景下只能依赖人力完成,但是通过通用视觉理解Agent,可以自动完成这个任务。
例如你是一个生物学家,有一个复杂的识别任务,在国家森林的摄像头中识别多种珍稀动物。
传统场景下,你需要雇佣大量的人力,对动物标注,并且往往一种识别模型只能识别一种动物。识别多种动物,需要多种识别模型。 在 Agent 2.0,也需要先拥有识别多种动物的模型,然后才能识别。
在Agent 2.5 时代,你只需要利用通用视觉理解,可以使用人类的工具,例如浏览器(区别于传统基于规则的自动化测试、自动化爬虫)。
- 相较与职业熟练度顶级的人类,速度依然较慢。
- 对于特定的任务效率相比传统场景的解决方案依然较低。
主要应用方向:重复且简单的工作、复杂的工业化、日常复杂性工作。一个入口,多个工具。一条指令,自动执行。
Langchain
Langchain 的安装与使用可以参考Langchain 官方文档