用法#
AutoGen Studio (AGS) 提供了一个团队构建器界面,开发者可以在其中定义多个组件和行为。用户可以创建团队,向团队添加代理,将工具和模型附加到代理,并定义团队终止条件。在定义一个团队后,用户可以在团队构建器视图中直接测试它,或者将其附加到一个会话中以在Playground视图中使用。
观看AutoGen Studio v0.4 (02/25)的视频教程 - https://youtu.be/oum6EI7wohM
设置API密钥#
大多数agent都需要一个API密钥。你可以设置一个环境变量OPENAI_API_KEY
(假设你使用的是OpenAI模型),autogen会自动将其用于你为agent或团队指定的任何OpenAI模型客户端。或者,你可以将API密钥作为团队或agent配置的一部分来指定。
请参阅以下部分,了解如何使用可视化构建器或直接编辑JSON配置来构建一个代理团队。
构建一个代理团队#
AutoGen Studio 与 AutoGen AgentChat 提供的所有组件抽象紧密集成,包括 teams
、agents
、models
、tools
和终止 conditions
。
AGS 中的团队构建器视图提供了一个可视化的团队构建器,允许用户通过拖放功能或直接编辑团队的 JSON 配置来定义组件。
使用可视化构建器#
默认启用的可视化构建器允许用户从提供的组件库中拖放组件到团队构建器画布上。团队构建器画布代表一个团队,包括一个主团队节点和一组连接的代理节点。它包含一个组件库,其中有可选的组件可以添加到画布中的团队或代理节点上。
核心支持的行为包括:
创建一个新团队。可以通过点击Team Builder视图中的“新建团队”按钮或选择默认AGS Gallery中提供的任何现有默认团队来完成此操作。完成后,一个新的团队节点和代理节点将被创建在画布中。
将组件从库中拖放到画布中的团队或代理节点。
团队:将代理和终止条件拖到团队节点中(这些组件有特定的放置区域)
代理:将模型和工具拖放到代理节点(这些组件有特定的放置区域)
编辑团队/代理节点:点击节点右上角的编辑图标,查看并编辑其属性。这将弹出一个面板,允许您编辑节点的字段。在某些情况下,您需要向下滚动并点击特定部分,例如,对于具有模型客户端的代理,您需要点击模型客户端部分来编辑模型客户端属性。完成编辑后,点击保存按钮以保存更改。
使用JSON编辑器#
AGS还允许你直接修改团队的JSON配置。这可以通过关闭可视化构建器模式来实现。一旦你这样做,你将看到团队的JSON配置。之后,你可以直接编辑JSON配置。
你知道吗?你可以在Python中定义你的agents,将它们导出为JSON,然后粘贴到JSON编辑器中。下面的部分展示了如何完成这个操作。
组件的声明式规范#
AutoGen Studio 构建于 AutoGen AgentChat 的声明式规范行为之上。这使得用户可以在 Python 中定义团队、代理、模型、工具和终止条件,然后将它们转储为 JSON 文件,以便在 AutoGen Studio 中使用。
以下是一个agent团队的示例以及如何将其转换为JSON文件:
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_agentchat.conditions import TextMentionTermination
agent = AssistantAgent(
name="weather_agent",
model_client=OpenAIChatCompletionClient(
model="gpt-4o-mini",
),
)
agent_team = RoundRobinGroupChat([agent], termination_condition=TextMentionTermination("TERMINATE"))
config = agent_team.dump_component()
print(config.model_dump_json())
{
"provider": "autogen_agentchat.teams.RoundRobinGroupChat",
"component_type": "team",
"version": 1,
"component_version": 1,
"description": "A team that runs a group chat with participants taking turns in a round-robin fashion\n to publish a message to all.",
"label": "RoundRobinGroupChat",
"config": {
"participants": [
{
"provider": "autogen_agentchat.agents.AssistantAgent",
"component_type": "agent",
"version": 1,
"component_version": 1,
"description": "An agent that provides assistance with tool use.",
"label": "AssistantAgent",
"config": {
"name": "weather_agent",
"model_client": {
"provider": "autogen_ext.models.openai.OpenAIChatCompletionClient",
"component_type": "model",
"version": 1,
"component_version": 1,
"description": "Chat completion client for OpenAI hosted models.",
"label": "OpenAIChatCompletionClient",
"config": { "model": "gpt-4o-mini" }
},
"tools": [],
"handoffs": [],
"model_context": {
"provider": "autogen_core.model_context.UnboundedChatCompletionContext",
"component_type": "chat_completion_context",
"version": 1,
"component_version": 1,
"description": "An unbounded chat completion context that keeps a view of the all the messages.",
"label": "UnboundedChatCompletionContext",
"config": {}
},
"description": "An agent that provides assistance with ability to use tools.",
"system_message": "You are a helpful AI assistant. Solve tasks using your tools. Reply with TERMINATE when the task has been completed.",
"model_client_stream": false,
"reflect_on_tool_use": false,
"tool_call_summary_format": "{result}"
}
}
],
"termination_condition": {
"provider": "autogen_agentchat.conditions.TextMentionTermination",
"component_type": "termination",
"version": 1,
"component_version": 1,
"description": "Terminate the conversation if a specific text is mentioned.",
"label": "TextMentionTermination",
"config": { "text": "TERMINATE" }
}
}
}
这个示例展示了一个使用RoundRobinGroupChat
类型和TextMentionTermination
条件的单代理团队。您还会注意到,模型客户端是一个仅指定了模型名称的OpenAIChatCompletionClient
模型客户端。在此情况下,假设API密钥已设置为环境变量OPENAI_API_KEY
。您也可以将API密钥指定为模型客户端配置的一部分。
要了解模型客户端的完整配置,您可以参考AutoGen 模型客户端文档。
请注意,您同样可以在Python中定义您的模型客户端,并调用dump_component()
以获取JSON配置,并使用它来更新您的团队或代理配置中的模型客户端部分。
最后,你可以使用 load_component()
方法从 JSON 文件中加载团队配置:
import json
from autogen_agentchat.teams import BaseGroupChat
team_config = json.load(open("team.json"))
team = BaseGroupChat.load_component(team_config)
Gallery - 共享和重用组件#
AGS提供了一个图库视图,其中图库是组件的集合 - 团队、代理、模型、工具和终止条件 - 这些组件可以在项目之间共享和重用。
用户可以创建一个本地画廊或导入一个画廊(从URL、JSON文件导入或简单地通过复制和粘贴JSON)。在任何时候,用户可以选择当前画廊中的任何项目作为默认画廊。这个默认画廊将用于在团队构建器侧边栏中填充组件。
通过画廊 -> 新建画廊来创建新的画廊
根据需要编辑图库JSON
设置一个默认图库(点击侧边栏中的图钉图标)以便在团队构建器中可用组件。
交互式运行团队#
AutoGen Studio Playground 使用户能够:
测试团队在特定任务上的表现
审查生成的工件(图像、代码、文本)
在任务执行期间监控团队的“内心独白”
查看性能指标(轮次计数,令牌使用情况)
跟踪代理行为(工具使用,代码执行结果)
导入和复用团队配置#
AutoGen Studio的画廊视图提供了一个默认的组件集合,并支持导入外部配置:
通过画廊 -> 新建画廊 -> 导入 创建/导入画廊
通过侧边栏的图钉图标设置默认画廊
通过侧边栏 -> 从画廊访问团队构建器中的组件
Python 集成#
团队配置可以通过使用TeamManager
类集成到Python应用程序中:
from autogenstudio.teammanager import TeamManager
tm = TeamManager()
result_stream = tm.run(task="What is the weather in New York?", team_config="team.json") # or tm.run_stream(..)
要导出团队配置,请使用Team Builder中的导出按钮生成一个用于Python应用程序的JSON文件。