AutoGen实战应用

+代码生成、执行和调试

0、前言(自己做的笔记,方便自己理解,可以忽略)

==================================================================
1.什么是Agent?
2.Agent和大模型的关系

1.大模型本质就是一个很大的深度学习模型(理解数据特征)
 模型只具备感知层能力,无逻辑判断能力
 大模型数据非常大,文本过大,训练出现交叠,出现幻觉
 用户提问包含较复杂的逻辑时候,大模型无法给到满意答复,因为无法判断。
 在大模型架构中接入Agent来进行判断,来解决幻觉问题。
 用户提出需求后,交给中间的代理 Agent,Agent分解用户需求,指定需求分解后新的标准,
 将分解的续期交给大模型去执行,大模型给出执行结果交给Agent判断(对结果评分)是否符合逻辑判断
 如果不符合则再次交给大模型执行,如果符合将结果给用户输出。
 
 还不够好、有不实信息、存在偏见歧视、与问题无关
 内容不准确、错误的价值观导向、侵犯他人权益、不我要吐槽
 
 提示词最好给一个案例;
 
 
 
 Agent仅能评判特征的价值,Agent是不需要训练的,因为Agent只是一个算法(贝尔曼方程-即价值最大化)而已 
 所谓的训练Agent,指的是训练Agent背后的模型,即特征提取器 
 Agent不具备数据的理解能力,因为背后是一个模型 
 Agent是用来做决策的。
 
 例如:输入文本--Agent背后的模型(Agent大脑)将文本转化为特征-
 
2.Agent来源于强化学习(AI的分支)
   1.图像
   2.语音
   3.自然语义
   4.强化学习
   1-3解决的是感知层问题(让计算机理解人类社会中的真实数据)
   4 研究的是逻辑问题(人类为啥会产生各种行为)-- 价值问题
   
3.工作流:将工作流程化
 例如:
 甲方:要求帮助开发一款线上小程序(前端页面、后端管理)
 乙方:进行任务拆解(前端开发需求和后端开发需求)
       任务下发:给前端部门和后端部门
       前端部门:部门经理--管理小组1、2、3-小组1、2、3分别完成不同需求部分1、2、3
       后端部门:部门经理--管理小组1、2、3-小组1、2、3分别完成不同需求部分1、2、3
  ===========================================
  |            任务下发                      |
  ==========================================
  |  前端部门         |    后端部门          |
  | 部门经理(管理者) |    部门经理(管理者)  |
  --------------------------------------------
  | 小组1:需求1       |    小组1:需求1       |
  | 小组2:需求2       |    小组2:需求2       |
  | 小组3:需求3       |    小组3:需求3       |
  =========================================== 

   上面改为Agent
   
  ===========================================
  |            Agent                     |
  ==========================================
  |  Agent group1     |   Agent group1     |
  | 部门经理(管理者) |  部门经理(管理者)  |
  --------------------------------------------
  | Agent1:需求1      |    Agent1:需求1    |
  | Agent2:需求2      |    Agent2:需求2    |
  | Agent3:需求3      |    Agent3:需求3    |
  =========================================== 

1、AutoGen简介

       AutoGen Studio是一个开发框架,专注于自动化代码生成及辅助智能应用开发。它旨在通过集成先进的自动化工具和利用AI技术来加速软件开发流程,提高开发效率,并减少人为错误。

2、AutoGen的安装

前提:安装python环境,版本为 python3.11
在python环境下,执行下面代码进行安装,如下图所示

 pip install autogenstudio==0.1.5 -i https://mirrors.aliyun.com/pypi/simple

3、AutoGen的启动

在python环境下,执行下面代码进行启动:

 autogenstudio ui --port 8081

参数说明:

--host <host>  : 指定host地址,默认为 localhost ;
--port <port>  : 指定端口号,默认为8080 ;
--reload : 当代码发生改变时,服务器自动重新加载,默认不自动加载;
--appdir <appdir> : 指定文件存放位置(如产生的用户文件),默认为 ~/.autogenstudio ;
--database-uri <uri> : 指定数据库uri,例如PostgreSQL数据库可设置为 postgresql+psycopg://user:password@localhost/dbname

启动后,在浏览器内访问http://localhost:8081/即可开始使用AutoGen Studio。启动页面如下:

4、页面工作内容介绍

在这里我们可以看到5个tab:

Skills:AutoGen的技能,里面默认的有根据用户的查询生成并保存图像根据提供的输入部分生成并保存PDF 。

Models:语言模型都是在这里设置的(设置本地模型或在线模型)

Agents:配置Agent代理,每个代理处理不同的事情

Workflows:工作流的配置,使用过程中哪个代理调用哪个代理的流程配置。

BackGround:用户创建会话,调用工作流。 

5、页面配置应用

5.1 配置Models

简单理解就是配置人的大脑。

然后我们选择OpenAI选项 ,填入模型名称、key值、baseurl(官网或本地模型url)。例如

①例如 填写模型名称, deepseek 有两个模型,一个是 deepseek-coder ,一个是 deepseek-chat,这里选择 deepseek-coder ,二选一或选择其他模型 或选本地模型等。
API Key ,把之前创建好的API Key复制粘贴到这里即可,获取获取deepseek的key值: https://platform.deepseek.com/api_keys
③ 接口地址,直接复制粘贴,不要修改: https://api.deepseek.com/v1
④ 备注,按需填写即可,登记完成后,点击 Test Model 进行测试,校验信息是否准确。有如下提示,说明模型登记成功,点击
保存即可。

如果是使用本地模型则先启动本地模型的服务。例如使用 ollama run deepseek-r1:7b

本地模式案例如下:

5.2 配置Agents 的代理

01 UserProxy 

user_proxy只是前端接待和指令执行者,不需要动脑子。因此不需要配置。

 02 创建 Primary Assistant

 创建第一个 Primary Assistant ,角色是 教师 Teacher

Teacher 选择模型 配置大脑

 创建第二个 Primary Assistant ,角色是 教师 Student

为 Studnet 选择模型

03 创建groupchat_assistant

这个主要是管理  Teacher 和 Student 的Agent

为 groupchat_assistant添加管理的Agent

为 groupchat_assistant 选择模型

5.3 配置Workflows

待续

### 使用 Autogen 开发 Agent 的实战教程 #### 6.1 环境设置 为了开始使用 Autogen 构建多代理会话应用程序,首先需要配置环境。这通常涉及安装 Python 和必要的库文件。具体来说,在 Jupyter Notebook 中运行如下命令可以完成所需依赖项的安装[^1]。 ```bash pip install autogen ``` #### 创建 Multi-Agent 应用程序实例 创建一个多代理系统的流程可以从定义不同类型的代理开始。这些代理能够处理从简单的查询到复杂的编程任务等一系列工作。下面是一个具体的例子,展示了如何利用 Autogen 来实现代码生成、执行、调试以及获取人类反馈的过程。 ```python from autogen import AssistantAgent, UserProxyAgent config_list = [ { 'model': "gpt-4", 'api_key': "<your_api_key>" } ] assistant_agent = AssistantAgent(name="assistant", llm_config=config_list) user_proxy_agent = UserProxyAgent( name="user_proxy", human_input_mode="ALWAYS" ) # 启动对话 response = user_proxy_agent.initiate_chat(assistant_agent, message="编写一段Python脚本计算斐波那契数列前20项") print(response) ``` 这段代码片段说明了两个主要组件:`AssistantAgent` 是负责解决问题的核心部分;而 `UserProxyAgent` 则充当用户接口的角色,允许开发者指定何时需要人工干预(在这个例子中选择了 `"ALWAYS"` 模式)。通过调用 `initiate_chat()` 方法并传递初始消息给助手,就可以启动整个交互过程[^3]。 #### 多种参与模式的选择 当设计一个基于 Autogen应用时,可以根据实际需求选择不同的参与方式。“ALWAYS”,意味着每次操作都需要等待用户的确认或输入;“ON_DEMAND” 表示仅在遇到困难的情况下请求帮助;最后,“NEVER” 则代表全程自动化运作无需任何外部干涉。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值