前言
越来越多的企业或者开发者需要搭建自己的ai应用和ai智能体,微软的autogen是近期热门的开源agent平台之一,相较于其他框架,autogen的源代码更简洁,分层的设计也方便扩展,官方也在不断迭代该框架,同时使用的是宽松的MIT协议,非常适合基于该框架开发自己的ai产品。
但是无论是官方文档,还是百度、谷歌,都没有很好的文章介绍如何配置autogen二次开发环境,如何debug前后端代码,因此有了本文。本文尽量让对python和autogen不熟悉的开发者,也可以用很短的时候配置好本地开发环境。
项目基本信息
autogen主要由这几个包组成:
- autogen-core最底层,包含了框架运行的底层代码,以及模型、工具、记忆等模块
- autogen-agent包含了agent、team、condition等模块
- autogen-studio是基于上面两个模块构建的可视化界面项目,前端使用的是react+typescript+ant design。autogen-studio只是有了最简单的界面,功能还不算很成熟,用户注册登录等功能都要开发者自己实现。
- autogen-ext是扩展模块,比如用户自己开发的工具、模型客户端,都可以放到ext包。
一般情况下,我们不需要对core和agent包做任何修改,只要修改studio或者ext包就可以,或者创建自己的包。
1、使用uv安装依赖
如果进入项目的某个“python”包(比如/python/packages/autogen-agentchat),然后运行pip install -e .,会(将pyproject.toml里)依赖的autogen-core安装到python环境中,用的不是源码。所以,一定一定要按下面的方式安装依赖:
在项目的python文件夹下的readme文件里有提到三个命令:
uv sync --all-extras
source .venv/bin/activate
poe check
linux/mac系统运行上面的三个命令即可(下载nvidia和torch等包比较慢),如果没有uv、poe,自行安装即可。
如果在windows上安装环境:
source .venv/bin/activate换成 .\.venv\Scripts\activate
2、设置pycharm的python interpreter
打开settings > project:autogen > python interpreter,
然后add python interpreter,选择select existing,python path选择:
/你的项目目录/autogen/python/.venv/bin/python
3、core包的debug
(core包这个源码更复杂一些,可以忽略,直接看下一章节)
进入core_async_human_in_the_loop文件夹。
需要先创建model_config.yml文件,填入以下内容:
provider: autogen_ext.models.openai.OpenAIChatCompletionClient
config:
model: gpt-4o-mini
api_key: "你的apikey"
base_url: "你的接口地址,比如https://xxxxx/v1"
然后debug main.py.
4、agentchat的debug
在python/packages/autogen-agentchat/tests文件夹下创建test.py,把上面这个quickstart里的代码粘贴进去,修改OpenAIChatCompletionClient的api_key,增加base_url,即可debug运行。
比如输入提示词:whats the weather in hangzhou(就会使用工具进行回答)
创作不易,请动动小手,点赞或者收藏一下吧!!
5、studio的debug
官方的命令是在python/packages/autogen-studio目录下执行autogenstudio ui --port 8081 --reload
但是这样只能运行,不能debug。
5.1后端debug
右键cli.py,debug,会提示missing command,编辑运行配置,在Script parameters里填写:ui --port 8081 --reload,保存,重新debug即可。
5.2前端debug
安装依赖:yarn install
复制.env.default为.env
执行启动命令:npm run start
5.3autogen-studio的缺点
1、功能还不完善,注册登录、接口鉴权等都需要用户自己实现
2、安全问题:配置的工作流,是一个json文件,是前端要用的,也就意味着这个文件内容都是不安全的。比如里面可能包含了model client的api key等敏感信息,前端完全可以明文看到api key。
其他
如果需要了解team配置格式,可以看这里:python/packages/autogen-studio/notebooks/team.json
创作不易,请动动小手,点赞或者收藏一下吧!!
欢迎评论或者私信交流,互相学习!