使用指南#
AutoGen Studio (AGS) 提供了团队构建器界面,开发者可以在此定义多个组件和行为。用户能够创建团队、向团队添加agents、为agents附加工具和模型,以及定义团队终止条件。 完成团队定义后,用户可以直接在团队构建器视图中进行测试,或将其关联到会话以便在Playground视图中使用。
观看AutoGen Studio v0.4视频教程(02/25) - https://youtu.be/oum6EI7wohM
设置API密钥#
大多数agents都需要API密钥。您可以设置环境变量OPENAI_API_KEY
(假设您使用OpenAI模型),AutoGen会自动将此密钥用于您为agents或团队指定的任何OpenAI模型客户端。或者,您也可以将API密钥作为团队或agent配置的一部分进行指定。
请参阅下方章节了解如何通过可视化构建器或直接编辑JSON配置来构建agent团队。
构建Agent团队#
AutoGen Studio深度集成了AutoGen AgentChat提供的所有组件抽象,包括teams
、agents
、models
、tools
以及终止conditions
。
AGS中的团队构建器视图提供了可视化团队构建工具,用户既可以通过拖放功能定义组件,也可以直接编辑团队的JSON配置。
使用可视化构建器#
可视化构建器默认启用,允许用户将组件库中的元素拖放至团队构建画布。团队构建画布代表一个团队,由主团队节点和一组连接的agent节点组成。组件库包含可选组件,可添加到画布中的团队或agent节点。
核心支持的功能包括:
创建新团队:通过点击团队构建视图中的"新建团队"按钮,或选择默认AGS Gallery提供的现有预设团队。操作后,画布中将创建新的团队节点和agent节点。
从库中拖放组件至画布中的团队或agent节点:
团队:将agents和终止条件拖至团队节点(这些组件有特定的放置区域)
Agents:将模型和工具拖至agent节点(这些组件有特定的放置区域)
编辑团队/agent节点:点击节点右上角的编辑图标查看并修改其属性。此时会弹出面板供编辑节点字段。某些情况下需要滚动并点击特定区域(例如对于带有模型客户端的agent,需点击模型客户端区域来编辑其属性)。编辑完成后点击保存按钮。
使用 JSON 编辑器#
AGS 还允许您直接修改团队的 JSON 配置。只需关闭可视化构建模式即可实现。关闭后,您将看到团队的 JSON 配置,此时可以直接编辑 JSON 配置。
您知道吗?您可以先用 Python 定义 agents,将其导出为 JSON 格式,然后粘贴到 JSON 编辑器中。以下部分将展示如何实现这一操作。
组件声明式规范#
AutoGen Studio 基于 AutoGen AgentChat 的声明式规范行为构建。用户可以通过 Python 定义团队、agents、模型、工具和终止条件,然后将其导出为 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" }
}
}
}
此示例展示了一个包含单个 agent 的团队,使用 RoundRobinGroupChat
类型和 TextMentionTermination
终止条件。您还会注意到模型客户端是 OpenAIChatCompletionClient
,其中仅指定了模型名称。这种情况下,API 密钥被假定为通过环境变量 OPENAI_API_KEY
设置。您也可以将 API 密钥作为模型客户端配置的一部分进行指定。
要了解模型客户端的完整配置,可以参考 AutoGen 模型客户端文档。
请注意,您同样可以在 Python 中定义模型客户端,并调用 dump_component()
方法获取 JSON 配置,用于更新团队或 agent 配置中的模型客户端部分。
最后,您可以使用 load_component()
方法从 JSON 文件加载团队配置:
import json
from autogen_agentchat.teams import BaseGroupChat
team_config = json.load(open("team.json"))
team = BaseGroupChat.load_component(team_config)
图库 - 共享与复用组件#
AutoGen Studio 提供图库视图,图库是组件的集合 - 包括团队、agents、模型、工具和终止条件 - 这些组件可以在不同项目间共享和复用。
用户可以创建本地图库或导入图库(通过URL、JSON文件导入或直接复制粘贴JSON)。在任何时候,用户都可以选择当前图库中的任意项目设为默认图库。这个默认图库将用于在团队构建器侧边栏中填充可用组件。
通过 图库 -> 新建图库 创建新图库
按需编辑图库JSON
设置默认图库(点击侧边栏图钉图标)使组件在团队构建器中可用
交互式运行团队#
AutoGen Studio 的 Playground 功能支持用户:
在特定任务上测试团队
查看生成产物(图像、代码、文本)
监控任务执行期间团队的"内心独白"
查看性能指标(轮次计数、token用量)
追踪agent行为(工具使用、代码执行结果)
导入与复用团队配置#
AutoGen Studio 的图库视图提供默认组件集合并支持导入外部配置:
通过 图库 -> 新建图库 -> 导入 创建/导入图库
通过侧边栏图钉图标设置默认图库
在团队构建器中通过 侧边栏 -> 从图库 访问组件
Python 集成#
可以使用 TeamManager
类将团队配置集成到 Python 应用中:
from autogenstudio.teammanager import TeamManager
tm = TeamManager()
result_stream = tm.run(task="纽约天气如何?", team_config="team.json") # 或使用 tm.run_stream(..)
要导出团队配置,使用团队构建器中的导出按钮生成可供Python应用使用的JSON文件。