Skip to main content

使用 AutoGen Studio

AutoGen Studio 支持声明式创建代理工作流程,可以在聊天界面中指定任务并运行,以供代理完成。预期的使用行为是开发人员可以创建技能和模型,将它们“关联”到代理上,并将代理组合成可以在聊天界面中进行交互测试的工作流程。

构建代理工作流程

AutoGen Studio 实现了几个最终组合成工作流程的实体。

技能

技能是实现任务解决方案的 Python 函数。一般来说,一个好的技能应该有一个描述性的名称(例如 generate_images),详细的文档字符串和良好的默认值(例如,将文件写入磁盘以进行持久化和重用)。技能可以与代理规范“关联”或“附加”。

AutoGen Studio 技能界面

模型

模型是指 LLM 的配置。与技能类似,模型可以附加到代理规范上。AutoGen Studio 接口支持多种模型类型,包括 OpenAI 模型(以及任何支持 OpenAI 端点规范的其他模型端点提供者)、Azure OpenAI 模型和 Gemini 模型。

AutoGen Studio 创建新模型 AutoGen Studio 创建新模型

代理

代理实体以声明方式指定 AutoGen 代理的属性(大部分但不是全部与基本的 AutoGen Conversable 代理类成员相对应)。目前支持 UserProxyAgentAssistantAgentGroupChat 代理抽象。

AutoGen Studio 创建新代理 AutoGen Studio 创建助理代理

创建代理后,可以将现有的模型或技能“添加”到代理中。

AutoGen Studio 向代理添加技能和模型

工作流程

代理工作流程是一组代理(代理团队)的规范,它们可以共同完成一个任务。AutoGen Studio 支持两种高级工作流程模式:

自主对话:

该工作流程实现了一种范式,其中定义了代理并启动了代理之间的对话以完成任务。AutoGen 将其简化为定义一个“发起者”代理和一个“接收者”代理,其中接收者代理是从先前创建的代理列表中选择的。请注意,当接收者是一个“GroupChat”代理(即包含多个代理)时,这些代理之间的通信模式由“GroupChat”代理配置中的“speaker_selection_method”参数确定。

AutoGen Studio 自主对话工作流程

顺序对话

这个工作流允许用户指定一个AssistantAgent代理的列表,这些代理按顺序执行以完成任务。运行时的行为遵循以下模式:在每个步骤中,每个AssistantAgent都与一个UserProxyAgent配对,并启动聊天以处理输入任务。这个交流的结果被总结并提供给下一个AssistantAgent,它也与一个UserProxyAgent配对,并将它们的总结结果传递给序列中的下一个AssistantAgent。这个过程一直持续到达序列中的最后一个AssistantAgent

AutoGen Studio 顺序工作流

测试代理工作流程

AutoGen Studio允许用户在任务上进行交互式测试工作流程,并查看生成的工件(如图像、代码和文档)。

AutoGen Studio测试工作流程

用户还可以查看代理工作流程在处理任务时的“内心独白”,以及查看与运行相关的成本(如轮次数、令牌数等)和代理操作(如是否调用了工具和代码执行的结果)等分析信息。

AutoGen Studio工作流程分析结果

导出代理工作流程

用户可以下载他们创建的技能、代理和工作流程配置,并共享和重用这些工件。AutoGen Studio还提供了一个无缝的流程,可以将工作流程导出并部署为应用程序编程接口(API),以便在部署工作流程为API的其他应用程序中使用。

导出工作流程

AutoGen Studio允许您将选定的工作流程导出为JSON配置文件。

构建 -> 工作流程 -> (在工作流程卡上) -> 导出

AutoGen Studio导出工作流程

在Python应用程序中使用AutoGen Studio工作流程

可以使用WorkflowManager类将导出的工作流程轻松集成到任何Python应用程序中,只需两行代码即可。在底层,WorkflowManager将工作流程规范重新生成为AutoGen代理,然后用于处理任务。

```python
from autogenstudio import WorkflowManager
# 从导出的 JSON 工作流文件中加载工作流
workflow_manager = WorkflowManager(workflow="path/to/your/workflow_.json")

# 在任务上运行工作流
task_query = "巴黎铁塔的高度是多少?不需要写代码,只需回答问题。"
workflow_manager.run(message=task_query)

将 AutoGen Studio 工作流部署为 API

可以使用 autogenstudio 命令行工具将工作流作为 API 端点启动。

autogenstudio serve --workflow=workflow.json --port=5000