使用 AutoGen Studio
AutoGen Studio支持以声明方式创建代理工作流,并且可以在聊天界面中指定和执行任务,供代理完成。预期的使用行为是开发者可以创建技能和模型,附加到代理上,并将代理组成工作流,可以在聊天界面中交互式地测试这些工作流。
构建一个代理工作流程
AutoGen Studio 实现了多个实体,这些实体最终被组合成一个工作流。
技能
技能是实现任务解决方案的Python函数。通常,一个好的技能具有描述性的名称(例如generateimages),详尽的文档字符串和良好的默认设置(例如,将文件写入磁盘以持久化和重用)。技能可以与代理规范关联或附加。
模型
模型指的是LLM的配置。与技能类似,模型可以附加到代理规范上。AutoGen Studio界面支持多种模型类型,包括OpenAI模型(以及支持OpenAI端点规范的任何其他模型端点提供商)、Azure OpenAI模型和Gemini模型。
代理
一个代理实体声明性地指定了AutoGen代理的属性(镜像了基类AutoGen Conversable代理类的大多数但不是所有成员)。目前支持UserProxyAgent
、AssistantAgent
和GroupChat
代理抽象。
一旦代理被创建,现有的模型或技能可以添加到代理中。
工作流程
代理工作流程是一组代理(代理团队)的规范,他们可以一起工作来完成一个任务。AutoGen Studio支持两种类型的高级工作流程模式:
自主聊天:
该工作流程实现了一种范式,其中定义了代理并启动了代理之间的聊天以完成任务。AutoGen 将其简化为定义一个 initiator
代理和一个 receiver
代理,其中接收者代理是从之前创建的代理列表中选择的。请注意,当接收者是一个 GroupChat
代理(即包含多个代理)时,这些代理之间的通信模式由 GroupChat
代理配置中的 speaker_selection_method
参数决定。
顺序聊天
此工作流程允许用户指定一系列按顺序执行的AssistantAgent
代理以完成任务。这里的运行时行为遵循以下模式:在每一步,每个AssistantAgent
都与一个UserProxyAgent
配对,并在此对之间发起聊天以处理输入任务。此交换的结果被总结并提供给下一个AssistantAgent
,该代理也与UserProxyAgent
配对,它们的总结结果传递给序列中的下一个AssistantAgent
。此过程一直持续,直到到达序列中的最后一个AssistantAgent
。
测试一个Agent工作流程
AutoGen Studio 允许用户交互式地测试任务上的工作流程,并审查生成的结果工件(如图像、代码和文档)。
用户还可以查看代理工作流程在任务处理过程中的“内心独白”,并查看运行相关的分析信息(如轮数、令牌数等)以及代理操作(如是否调用了工具和代码执行的结果)。
导出代理工作流程
用户可以下载他们创建的技能、代理和工作流配置,并分享和重用这些工件。AutoGen Studio 还提供了一个无缝的过程来导出工作流并将其部署为应用程序编程接口(API),这些 API 可以在其他应用程序中使用,从而将工作流部署为 API。
导出工作流程
AutoGen Studio 允许您将选定的工作流导出为 JSON 配置文件。
构建 -> 工作流程 -> (在工作流程卡片上) -> 导出
在Python应用程序中使用AutoGen Studio工作流
一个导出的工作流可以轻松地集成到任何Python应用程序中,使用WorkflowManager
类只需两行代码即可实现。在底层,WorkflowManager将工作流规范重新激活为AutoGen代理,随后用于处理任务。
from autogenstudio import WorkflowManager
# load workflow from exported json workflow file.
workflow_manager = WorkflowManager(workflow="path/to/your/workflow_.json")
# run the workflow on a task
task_query = "What is the height of the Eiffel Tower?. Dont write code, just respond to the question."
workflow_manager.run(message=task_query)
将AutoGen Studio工作流部署为API
可以使用autogenstudio命令行工具从命令行以API端点形式启动工作流。
autogenstudio serve --workflow=workflow.json --port=5000
同样地,上面的工作流启动命令可以封装成一个Dockerfile,部署在诸如Azure Container Apps或Azure Web Apps等云服务上。