1 引言

在产品级开发时,开发人员必须为这些系统配置大量参数。这些参数包括定义代理(如:要使用的模型、提示、代理可用的工具或技能、代理可以采取的行动步骤数、任务终止条件等)以及通信和编排机制(即代理在协作完成任务时的行为顺序)。

相较于 Coze 和 Dify,AutoGen 仍处于实验阶段,功能相对简单且不够完善。其主要展示的是自动生成程序和执行程序的过程。

2 相关论文

1
2
3
4
5
6
7
8
英文名称: AUTOGEN STUDIO: A No-Code Developer Tool for Building and Debugging Multi-Agent Systems
中文名称: AUTOGEN STUDIO:一个用于构建和调试多代理系统的无代码开发者工具
链接: http://arxiv.org/abs/2408.15247v1
代码: https://github.com/microsoft/autogen/tree/autogenstudio/samples/apps/autogen-studio
帮助文档:https://microsoft.github.io/autogen/docs/autogen-studio/getting-started/
作者: Victor Dibia, Jingya Chen, Gagan Bansal, Suff Syed, Adam Fourney, Erkang Zhu, Chi Wang, Saleema Amershi
机构: 微软研究院, 雷德蒙, 美国
日期: 2024-08-09

  • 多代理:随着任务变得更加复杂,需要冗长的上下文和独立适应动态问题空间的能力

3 相关概念

  • Skills/Tools:用于处理特定任务的代码或 API。
  • Model:驱动核心代理行为的生成式 AI 模型。
  • Agent:将模型、技能、记忆组件和行为结合在一起的配置。
  • Workflow:配置代理如何互动以处理任务(例如,代理行动的顺序、任务规划、终止条件等)。
  • Memory:用于保存和回忆信息的短期(如列表)或长期(如向量数据库)记忆。
  • Task:一般用于设置 agent 的 message 参数。当有多个任务时,message 除了上个 task 的输出,还可以从这里定义。

4 使用

4.1 安装方法

1
2
3
4
$ cd autogen/samples/apps/autogen-studio
$ cp frontend/.env.default frontend/.env
$ docker build --no-cache -t autogenstudio .
$ docker run --rm -v /exports:/exports -e OPENAI_API_KEY="xx" -e AUTOGENSTUDIO_APPDIR="xx/autogen/samples/apps/autogen-studio/" -u root -p 8081:8081 -it autogenstudio gunicorn -w 10 --timeout 12600 -k uvicorn.workers.UvicornWorker autogenstudio.web.app:app --bind "0.0.0.0:8081"

后端使用 FastAPI 实现,前端使用 TypeScript 实现。

4.2 问题与解决

4.2.1 报错缺库

  • 问题:运行过程中报错缺库 sklearn 和 xgboost
  • 解决方法:进入 Docker 安装
1
$ pip install scikit-learn xgboost

4.2.2 端口能连但不显示界面

  • 问题:浏览器端口能连接,但显示界面不正常
1
{"detail":"Not Found"}
  • 分析:后端似乎正常启动,但前端不正常,可能是权限问题导致的。
  • 解决方法:我将宿主机上的 autogenstudio 目录设置为 AUTOGENSTUDIO_APPDIR,然后进入 docker 后,删除 /home/user/ 下的 app 目录,问题解决了。
1
$ rm /home/user/app -rf

4.2.3 无法连接大模型

  • 问题:使用 OpenAI 模型时,显示 "Connect error"
  • 解决方法:启动 Docker 时设置 HTTP_PROXY 和 HTTPS_PROXY 环境变量