【AI Agent系列】【阿里AgentScope框架】0. 快速上手:AgentScope框架简介与你的第一个AgentScope程序

慈云数据 2024-05-01 技术支持 99 0
  • 大家好,我是 同学小张,日常分享AI知识和实战案例
  • 欢迎 点赞 + 关注 👏,持续学习,持续干货输出。
  • +v: jasper_8017 一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏

    本站文章一览:

    在这里插入图片描述


    这是我们学习的第四款智能体框架了。

    前面我们学习了 AutoGPT、MetaGPT、LangGraph 等智能体应用开发框架,各有优缺点。今天我们开始学习AgentScope这一款多智能体开发框架。在AI快速发展的现在,多上手体验一下各个框架,更能加深对AI大模型应用开发中各种知识的深入理解。AI界大佬吴恩达也督促大家今年关注 AI Agent 工作流的发展和应用。所以,卷起来吧,多看看,多用用,没坏处。

    文章目录

    • 0. AgentScope简介
    • 1. 安装
    • 2. 快速上手 - 快速跑通第一个Demo
      • 2.1 完整代码
      • 2.2 代码详解
        • 2.2.1 配置
          • 关于配置的疑问
          • 2.2.2 创建智能体
          • 2.2.3 运行智能体

            0. AgentScope简介

            AgentScope是阿里开源的一款全新的多智能体协同的Multi-Agent应用框架,旨在帮助开发者更轻松地构建基于大语言模型的多智能体应用程序。它具有以下特点:

            1. 易用性:AgentScope注重易用性,为开发者提供了简洁明了的编程模式,丰富的语法工具和内置资源,使得编程多智能体应用程序变得更加轻松愉快。

            2. 鲁棒性:AgentScope集成了全面的服务级重试机制和规则性修正工具,以处理LLMs响应中的明显格式问题。此外,AgentScope还提供了可定制的容错配置,使开发者能够通过参数来自定义容错机制。

            3. 支持多模态数据:AgentScope支持多模态数据在对话呈现、消息传输和数据存储中的应用,通过统一的基于URL的属性来解耦多模态数据的传输和存储,从而最大限度地减少了消息在每个智能体内的复杂性。

            4. 分布式部署:针对分布式应用程序带来的额外编程难题和系统设计挑战,AgentScope也提供了支持。

            1. 安装

            因为我的目的是学习,不光要会用,有时候还会深入源码去看一下实现原理,所以我这里使用源码安装。其它安装方法请参考官方安装教程

            # 从GitHub上拉取AgentScope的源代码
            git clone https://github.com/modelscope/agentscope.git
            cd agentscope
            # 针对本地化的multi-agent应用
            pip install -e .
            

            如果报错 Timeout:

            在这里插入图片描述

            使用以下命令重新安装:

            pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple
            

            2. 快速上手 - 快速跑通第一个Demo

            2.1 完整代码

            老规矩,先上完整代码,大家复制粘贴,先跑通再说。

            import agentscope
            import os
            openai_api_key = os.getenv('OPENAI_API_KEY')
            # 一次性初始化多个模型配置
            openai_cfg_dict = {
                "config_name": "openai_cfg", # A unique name for the model config.
                "model_type": "openai",         # Choose from "openai", "openai_dall_e", or "openai_embedding".
                "model_name": "gpt-3.5-turbo",   # The model identifier used in the OpenAI API, such as "gpt-3.5-turbo", "gpt-4", or "text-embedding-ada-002".
                "api_key": openai_api_key,       # Your OpenAI API key. If unset, the environment variable OPENAI_API_KEY is used.
            }
            agentscope.init(model_configs=[openai_cfg_dict])
            from agentscope.agents import DialogAgent, UserAgent
            # 创建一个对话智能体和一个用户智能体
            dialogAgent = DialogAgent(name="assistant", model_config_name="openai_cfg", sys_prompt="You are a helpful ai assistant")
            userAgent = UserAgent()
            x = None
            x = dialogAgent(x)
            print("diaglogAgent: \n", x)
            x = userAgent(x)
            print("userAgent: \n", x)
            

            运行结果:

            在这里插入图片描述

            2.2 代码详解

            下面来解释下上面的代码。

            2.2.1 配置

            像其它框架一样,我们也需要配置我们使用的大模型以及API Key等参数。AgentScope的配置方式是创建一个字典类型的变量,在变量里填入相应值,然后通过初始化接口传递给AgentScope:

            openai_cfg_dict = {
                "config_name": "openai_cfg", # A unique name for the model config.
                "model_type": "openai",         # Choose from "openai", "openai_dall_e", or "openai_embedding".
                "model_name": "gpt-3.5-turbo",   # The model identifier used in the OpenAI API, such as "gpt-3.5-turbo", "gpt-4", or "text-embedding-ada-002".
                "api_key": openai_api_key,       # Your OpenAI API key. If unset, the environment variable OPENAI_API_KEY is used.
            }
            agentscope.init(model_configs=[openai_cfg_dict])
            

            注意看下配置的Key值:config_name, model_type, model_name 和 api_key。通过 agentscope.init 函数设置进去。

            关于配置的疑问

            没搞懂的是,这里的配置是必须传入?还是只要环境变量中存在了 OPENAI_API_KEY 值就可以不用传 “api_key” ?

            • 为什么有这个疑问:因为我并没有找到在哪里设置 代理地址,而我的API Key不是原生的OpenAI Key,必须通过代理才能使用OpenAI的接口。但是以上代码在没有传递代理地址的情况下竟然运行成功了,那么,是不是只要环境变量中有了,不传递这个config也行?
            • 我将api_key去掉,也运行成功了…
            • 不传模型名字倒是不行,会报错:

              在这里插入图片描述

              2.2.2 创建智能体

              接下来,代码中创建了两个智能体:一个对话智能体DialogAgent 和 一个用户智能体 userAgent

              # 创建一个对话智能体和一个用户智能体
              dialogAgent = DialogAgent(name="assistant", model_config_name="openai_cfg", sys_prompt="You are a helpful ai assistant")
              userAgent = UserAgent()
              

              2.2.3 运行智能体

              然后是运行智能体:

              x = None
              x = dialogAgent(x)
              print("diaglogAgent: \n", x)
              x = userAgent(x)
              print("userAgent: \n", x)
              

              从运行效果来看,对话智能体就是与用户进行对话。用户智能体,其实就是接收用户的输入,让人参与其中进行干预。

              好了,本文就先写到这里,主要是带大家认识一下AgentScope,并搭建好运行环境。运行了一个简单的示例,让大家对AgentScope的使用有一个简单的认识,没有深入。后面我们随着更多案例的实践,会逐渐深入探索AgentScope的原理及应用。

              如果觉得本文对你有帮助,麻烦点个赞和关注呗 ~~~


              • 大家好,我是 同学小张,日常分享AI知识和实战案例
              • 欢迎 点赞 + 关注 👏,持续学习,持续干货输出。
              • +v: jasper_8017 一起交流💬,一起进步💪。
              • 微信公众号也可搜【同学小张】 🙏

                本站文章一览:

                在这里插入图片描述

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon