AI--初识智能体
AI–初识智能体
0.前言
在人工智能浪潮席卷全球的今天,智能体(Agent)已成为驱动技术变革与应用创新的核心概念之一,那么智能体是什么?它有哪些主要的类型?它又是如何与我们邻近的世界进行交互的?这就是今天要学习的内容(学习内容主要参考来源:https://github.com/datawhalechina/hello-agents)
1.什么是智能体
智能体(AI Agent)本质上就是人工智能领域的一种高级系统,它能够感知环境,并自主采取行动以实现特定目标。如果说传统的AI只是被动等待指令、执行单一任务的“工具”,那么智能体则是拥有目标、具备逻辑和行动力的“助手”甚至“伙伴”。目前而言, 智能体依赖于LLM大模型作为大脑,智能体的上限取决于LLM模型的能力。
2.智能体应用的协作模式
目前市面上的智能体模式可以分为两种,一种是作为开发者工具的智能体,这种智能体主要是为了深入融合到我们的工作流中,一种是作为自主协作者的智能体,与其他智能体协作完成比较复杂的目标内容
- 协助开发智能体
这种智能体的目的是为了增强开发者,通过自动化处理繁琐、重复的任务,让开发者能够更加专注于创造更核心的工作内容,主要测评有例如:Claude Code、Trae、Cursor:等
- 自主协作智能体
这一类智能体,我们不在是手把手的指导AI完成每一步内容,而是将一个更高层的目标委托给它,将他当做一个员工看待,能够独立地规划、推理。执行和反思,最后交付成果,从助手到协作者的转变,这种智能体也就是现在企业常说的AI agent智能体
3.Workflow vs Agent
一般而言,智能体的构造是任务分解、工具调用、上下文理解和结果合成这四个步骤,workflow即工作流,二者尽管都是为了实现任务自动化,但其底层逻辑、核心特征和适用场景却截然不同。
工作流是一种传统的自动化范式,其核心是对一系列任务或步骤进行预先定义的、结构化的编排。它本质上是一个精确的、静态的流程图,规定了在何种条件下、以何种顺序执行哪些操作。而智能体是一个具备自主性的、以目标为导向的系统。它不仅仅是执行预设指令,而是能够在一定程度上理解环境、进行推理、制定计划,并动态地采取行动以达成最终目标。
通俗的讲,工作流的判断流程是人提前预设好的,,而智能体基于大模型的思考下,会基于实时信息进行动态推理和决策的能力。也就仨我们将思考权交给了大模型,从而完成工作,这就是本质区别
4.智能体的经典范式构建
一个现代的智能体,核心能力在于将大语言模型的推理能力与外部世界联通,使得其能够用自主的理解用户意图,拆解复杂任务,通过调用代码解释器等一系列操作的工具,来获取信息、执行操作,到最终的达成目标,而为了更好的让智能体进行“思考”和“行动”的过程,业界中也出现了一些的比较经典的架构范式,这里我们给出三种最具有代表性的例子
- ReAct (Reasoning and Acting): 一种将“思考”和“行动”紧密结合的范式,让智能体边想边做,动态调整。
- Plan-and-Solve: 一种“三思而后行”的范式,智能体首先生成一个完整的行动计划,然后严格执行。
- Reflection: 一种赋予智能体“反思”能力的范式,通过自我批判和修正来优化结果。
总结来说就是一个边想边做,一个思考后再做,一个做完加入反思进行修正。
5.基础的环境准备与基础工具定义
现在我们将开始构建这些基础的范式,在此之前,需要先搭建好开发环境并定义一些基础的组件。
- 语言选定
之前的章节有说过目前ai框架中适配的语言是python和java,我只用过python,所以使用Python语言,版本是3.11(这里建议是使用3.10及更高版本),至于python的部署网络上都有,这里就不过多讲述了
- 安装依赖库
大语言的交互需要使用openai库,以及python-dotenv库用于更加安全的管理我们的API密钥,所以需要在终端执行:
1 | |
- 配置API密钥
为了让我们的代码更通用,我们将模型服务的相关信息(模型ID、API密钥、服务地址)统一配置在环境变量中。我这里用的是minimax官方的key
- 在你的项目根目录下,创建一个名为
.env的文件。 - 在该文件中,添加以下内容。你可以根据自己的需要,将其指向 OpenAI 官方服务,或任何兼容 OpenAI 接口的本地/第三方服务。(用其他的api也行,不过要注意对应官方的调用文档)
- 在你的项目根目录下,创建一个名为
1 | |
- 封装LLM调用函数
1 | |
这是定义的一个快速排序算法的交互客户端: