---
myst:
html_meta:
"description lang=zh-CN": |
AutoGen Studio 使用指南 - 用于构建和调试多agent系统的低代码工具
---
# 使用指南
AutoGen Studio (AGS) 提供了团队构建器界面,开发者可以在此定义多个组件和行为。用户能够创建团队、向团队添加agents、为agents附加工具和模型,以及定义团队终止条件。
完成团队定义后,用户可以直接在团队构建器视图中进行测试,或将其关联到会话以便在Playground视图中使用。
> 观看AutoGen Studio v0.4视频教程(02/25) - [https://youtu.be/oum6EI7wohM](https://youtu.be/oum6EI7wohM)
[](https://www.youtube.com/watch?v=oum6EI7wohM)
## 设置API密钥
大多数agents都需要API密钥。您可以设置环境变量`OPENAI_API_KEY`(假设您使用OpenAI模型),AutoGen会自动将此密钥用于您为agents或团队指定的任何OpenAI模型客户端。或者,您也可以将API密钥作为团队或agent配置的一部分进行指定。
请参阅下方章节了解如何通过可视化构建器或直接编辑JSON配置来构建agent团队。
## 构建Agent团队
AutoGen Studio深度集成了AutoGen AgentChat提供的所有组件抽象,包括{py:class}`~autogen_agentchat.teams`、{py:class}`~autogen_agentchat.agents`、{py:class}`~autogen_core.models`、{py:class}`~autogen_core.tools`以及终止{py:class}`~autogen_agentchat.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 文件的过程:
```python
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())
```
```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 模型客户端文档](https://microsoft.github.io/autogen/dev/user-guide/core-user-guide/components/model-clients.html)。
请注意,您同样可以在 Python 中定义模型客户端,并调用 `dump_component()` 方法获取 JSON 配置,用于更新团队或 agent 配置中的模型客户端部分。
最后,您可以使用 `load_component()` 方法从 JSON 文件加载团队配置:
```python
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 应用中:
```python
from autogenstudio.teammanager import TeamManager
tm = TeamManager()
result_stream = tm.run(task="纽约天气如何?", team_config="team.json") # 或使用 tm.run_stream(..)
```
要导出团队配置,使用团队构建器中的导出按钮生成可供Python应用使用的JSON文件。