--- 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) [![AutoGen Studio v0.4友好入门指南](https://img.youtube.com/vi/oum6EI7wohM/maxresdefault.jpg)](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节点。 ![团队构建器](teambuilder.jpg) 核心支持的功能包括: - 创建新团队:通过点击团队构建视图中的"新建团队"按钮,或选择默认AGS Gallery提供的现有预设团队。操作后,画布中将创建新的团队节点和agent节点。 - 从库中拖放组件至画布中的团队或agent节点: - 团队:将agents和终止条件拖至团队节点(这些组件有特定的放置区域) - Agents:将模型和工具拖至agent节点(这些组件有特定的放置区域) - 编辑团队/agent节点:点击节点右上角的编辑图标查看并修改其属性。此时会弹出面板供编辑节点字段。某些情况下需要滚动并点击特定区域(例如对于带有模型客户端的agent,需点击模型客户端区域来编辑其属性)。编辑完成后点击保存按钮。 ### 使用 JSON 编辑器 ![JSON 编辑器](jsoneditor.jpg) 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文件。