AgentScope Studio

AgentScope Studio 是一个开源的 Web UI 工具包,用于构建和监控多智能体应用程序。它提供以下功能:

  • Dashboard:一个用户友好的界面,可以在其中监视正在运行的应用程序,并查看运行历史。

  • Workstation:一个强大的界面,可通过拖拽的方式构建多智能体应用程序。

  • Server Manager:一个简单易用的监控与管理工具,用于管理大规模分布式的多智能体应用程序。

  • Gallery:即将推出!

启动 AgentScope Studio

要启动 Studio,请首先确保已安装了最新版本的 AgentScope。然后,可以通过运行以下 Python 代码:

import agentscope

agentscope.studio.init()

或者,可以在终端中运行以下命令:

as_studio

之后,可以在 http://127.0.0.1:5000 访问 AgentScope Studio。

当然,AgentScope Studio的 IP 地址和端口都可以更改,并且可以通过以下方式引入应用的运行记录:

import agentscope

agentscope.studio.init(
    host="127.0.0.1",                   # AgentScope Studio 的 IP 地址
    port=5000,                          # AgentScope Studio 的端口号
    run_dirs = [                        # 您的运行历史目录
        "xxx/xxx/runs",
        "xxx/xxx/runs"
    ]
)

Dashboard

Dashboard 是一个 Web 界面,用于监视正在运行的应用程序,并查看运行历史。

注意

目前,Dashboard 存在以下限制,我们正在努力改进。欢迎任何反馈、贡献或建议!

  • 运行的应用程序和 AgentScope Studio 必须在同一台机器上运行,以保持 URL 和路径的一致性。如果需要在其它机器上访问 AgentScope Studio,可以尝试通过在远程机器上运行以下命令将端口转发到远程机器:

    # 假设 AgentScope 在 {as_host}:{as_port} 上运行,远程机器的端口为 {remote_machine_port}
    ssh -L {remote_machine_port}:{as_host}:{as_port} [{user_name}@]{as_host}
    
  • 对于分布式应用程序,支持单机多进程模式,但尚不支持多机多进程模式。

注册应用程序

启动 AgentScope Studio 后,可以通过指定 agentscope.init() 函数中的 studio_url 参数来注册应用程序:

import agentscope

agentscope.init(
    # ...
    project="xxx",
    name="xxx",
    studio_url="http://127.0.0.1:5000"          # AgentScope Studio 的 URL
)

注册后,可以在 Dashboard 中查看正在运行的应用程序。为了区分不同的应用程序,可以指定应用程序的 projectname

注意:一旦注册了应用程序,agentscope.agents.UserAgent 中的用户输入就会转移到 AgentScope Studio 的 Dashboard 中,您可以在 Dashboard 中输入。

引入运行历史

在 AgentScope 中,运行历史默认会保存在 ./runs 目录下。为了引入运行历史,可以在 agentscope.studio.init() 函数中指定 run_dirs 参数:

import agentscope

agentscope.studio.init(
    run_dirs = ["xxx/runs",]
)

Workstation

Workstation 是为零代码用户设计的,可以通过拖拽的方式构建多智能体应用程序。

注意:Workstation 仍处于快速迭代阶段,界面和功能可能会有所变化。欢迎任何反馈、贡献或建议!

快速使用

AgentScope Studio中,拖过点击 workstation 图标进入 Workstation 界面。 它由侧边栏、工作区和顶部工具栏组成。

  • 侧边栏:提供预构建的示例,帮助开发者熟悉工作站,并提供可拖动的组件来构建应用程序。

  • 工作区:主要工作区,可以在其中拖放组件来构建应用程序。

  • 顶部工具栏:包含导出、加载、检查和运行等功能。

agentscope-logo

内置样例

对于初学者,建议从预构建的示例开始,可以直接点击示例以将其导入到中央工作区。或者,为了获得更有结构化的学习体验,您可以选择跟随每个示例链接的教程。这些教程将逐步引导您如何在 AgentScope Workstation 上构建每个多智能体应用程序。

构建应用程序

要构建应用程序,请按照以下步骤操作:

  • 选择和拖动组件:从侧边栏中选择您想要的组件,然后将其拖放到中央工作区。

  • 连接节点:大多数节点都有输入和输出点。单击一个组件的输出点,然后将其拖动到另一个组件的输入点,以创建消息流管道。这个过程允许不同的节点传递消息。

  • 配置节点:将节点拖放到工作区后,单击任何节点以填写其配置设置。可以自定义提示、参数和其他属性。

运行应用程序

构建应用程序后,单击“运行”按钮。 在运行之前,Workstation 将检查您的应用程序是否存在任何错误。如果有任何错误,您将被提示在继续之前纠正它们。 之后,应用程序将在与 AgentScope Studio 相同的 Python 环境中执行,并且可以在 Dashboard 中找到它。

导入/导出应用程序

AgentScope Workstation 支持导入和导出应用程序。 单击“导出 HTML”或“导出 Python”按钮,以生成可以分发给社区或本地保存的代码。 如果要将导出的代码转换为 Python,请按以下步骤将 JSON 配置编译为 Python 代码:

as_workflow config.json --compile ${YOUR_PYTHON_SCRIPT_NAME}.py

需要进一步编辑应用程序,只需单击“导入 HTML”按钮,将之前导出的 HTML 代码上传回 AgentScope Workstation。

检查应用程序

构建应用程序后,可以单击“检查”按钮来验证应用程序结构的正确性。将执行以下检查规则,不用担心这些规则过于复杂,Workstation 将会自动执行检查并给出提示。

  • Model 和 Agent 的存在:每个应用程序必须包含至少一个 model 节点和一个 agent 节点。

  • 单连接策略:每个组件的输入不应该有多个连接。

  • 必填字段验证:所有必填字段必须填充,以确保每个节点具有正确运行所需的参数。

  • 一致的配置命名:Agent 节点使用的“Model config name”必须对应于 Model 节点中定义的“Config Name”。

  • 节点嵌套正确:ReActAgent 等节点应仅包含工具节点。类似地,IfElsePipeline 等 Pipeline 节点应包含正确数量的元素(不超过 2 个),而 ForLoopPipeline、WhileLoopPipeline 和 MsgHub 应遵循一个元素的规则(必须是 SequentialPipeline 作为子节点)。

Server Manager

阅读本节内容需要先了解 AgentScope 分布式 的基本概念及用法。

Server Manager 是一个用于监控和管理 AgentScope 智能体服务器进程(Server)以及大规模分布式应用的图形化界面。

注册 Server 进程

在初始化 RpcAgentServerLauncher 时传入 studio_url 参数即可实现注册。

# import some packages
server = RpcAgentServerLauncher(
    # ...
    studio_url="http://studio_ip:studio_port",  # connect to AgentScope Studio
)

更具体的注册方法请参考 分布式连接 AgentScope Studio 部分。

管理 Server 进程

从 AgentScope Studio 主页面或侧边栏中的 Server Manager 按钮即可进入 Server Manager 页面。 当前 Server Manager 页面由 Servers 列表, Agents 列表, Memory 列表三个部分构成。

agentscope-manager

Servers 列表

注册到 Studio 的智能体服务器进程(Server)都会显示在 Server Manager 页面的 Servers 列表中,列表中会不仅会显示每个 Server 的 ID, Hostname, Port, Created Time,还会显示每个 Server 的状态以及计算资源使用情况,包括 Status, CPU Usage, Memory Usage

其中 Status 有以下几种: - running:表示 Server 正在运行。 - dead:表示 Server 已停止运行。 - unknown:表示目前无法正常访问 Studio 服务。

只有在 running 状态的 Server 才会显示 CPU 和 Memory 的使用情况。用户可以点击 Servers 栏左边的刷新按钮来刷新 Servers 列表,同时也能够通过点击 Servers 栏右侧的删除按钮来一键删除所有已经处于 dead 状态的 Server。

Servers 列表每行的最后一列都提供了删除按钮,用于关闭并删除 Server,需要注意的是该操作是无法恢复的,因此需要谨慎使用。

Agents 列表

在点击任意处于 running 状态的 Server 行后,会在页面中展开 Agents 列表,该列表中会显示该 Server 下所有 Agent,列表中会显示每个 Agent 的 ID, Name, Class, System Prompt 以及 Model

用户同样可以通过 Agents 列表栏左侧的刷新按钮来刷新 Agents 列表。并且用户也可以通过每个 Agent 行最右侧的删除按钮来删除该 Agent,并通过 Agents 列表栏右侧的删除按钮来批量删除 Server 中所有的 Agent。这里的删除操作都是不可恢复的,因此需要谨慎使用。

Memory 列表

在点击任意 Agent 行后,会在页面中展开 Memory 列表,该列表中会显示该 Agent 的 Memory 中的所有消息,每条消息会在左侧显示其 NameRole 属性值,在点击后会在列表右侧显示该消息的具体内容。 这里同样可以点击 Memory 列表栏左侧的刷新按钮来刷新当前的 Memory 列表。

[回到顶部]