Multi-Agent实践第1期:5分钟上手AgentScope

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 阿里云与魔搭社区联合举办Create@AI创客松,邀请开发者探索基于多智能体的人机协作模式。活动提供资源支持和专家指导,获胜者可获得近5万元现金奖励及6亿次千问调用额度。参赛者需准备大模型API,如DashScope或OpenAI,使用AgentScope开源框架开发多智能体应用。立即报名参加:[报名链接](https//startup.aliyun.com/special/aihackathon4)。

LLM-Powered Agent作为探索人工通用智能的途径之一,阿里云和魔搭社区联合举办Create@AI创客松,邀请创作者、开发者探索基于多智能体的人机协作模式,并提供资源支持和专家指导,获奖者更有近5W现金奖励以及共计6亿次千问调用额度,欢迎报名参加。

报名入口:https://startup.aliyun.com/special/aihackathon4


前言

五分钟够做什么?刷几个短视频?看一篇新闻?

你是不是感觉最近大模型的各种应用层出不穷?你有没有想过自己可以很轻松地复刻或者创造出一些有趣的基于大模型和(多)智能体的应用,比如由多智能体组成的狼人杀?如果告诉你,现在有一款开源的多智能体编程框架,能让你很轻松地实现这些应用,你会不会很心动?

这篇文章让你5分钟内快速上手一款多智能体编程框架,AgentScope!就5分钟,让你跨过多智能体开发的第一道门槛!5分钟能让你搭建一个属于你自己的、大模型驱动的多智能体聊天小应用!

欢迎关注AgentScope,在github上(https://github.com/modelscope/agentscope) 为我们star 🌟。我们会在接下来几天,陆续推出一些教程,让大家每天花5~10分钟,搭建出不同的由简单到复杂的有趣的多智能体应用!

AgentScope编程三步走

  • 没有显卡?别担心,现在很多公司提供了大模型api。只要能连接网络,用这些api,我们用一般的个人电脑也可以运行自己的智能体程序。开始前请做好连接大语言模型的准备
  • 有阿里云DashScope或OpenAI的api 访问API key,
  • 或者其他能接收设的http post-request的大模型端口。

  • 从github上clone AgentScope仓库(https://github.com/modelscope/agentscope),安装最新代码~
git clone git@github.com:modelscope/agentscope.git
cd AgentScope
# On mac
pip install -e .\[full\]
# On windows
pip install -e .[full]

第一步:如何连接大模型?

作为智能体(agent)的“大脑”,我们首先需要为我们的智能体准备一个大模型。

比如,在AgentScope中配置DashScope支持的通义(qwen-max)模型配置:

import os
"""
在环境变量中设置了'DASHSCOPE_API_KEY':
命令行中执行:export DASHSCOPE_API_KEY='替换成你的apikey'
可以通过命令行:echo $DASHSCOPE_API_KEY 来检查是否真的设置成功
"""
dashscope_example_config = {
    "model_type": "dashscope_chat",
    "config_name": "tongyi_qwen_config",
    "model_name": "qwen-max",
    "api_key": f"{os.environ.get('DASHSCOPE_API_KEY')}",
}

除了DashScope的API,在AgentScope中也可以配置其他流行的模型 (只需要所有这些配置(config)中的一个,就足以完成本次任务~)

# 使用OpenAI模型(gpt-3.5-turbo,或者替换成其他openai模型)的配置 
# 相似的可以echo $OPENAI_API_KEY 来检查OPENAI_API_KEY是否设置成功
openai_example_config = {
    "model_type": "openai",
    "config_name": "gpt-3.5-config",
    "model_name": "gpt-3.5-turbo",
    "api_key": f"{os.environ.get('OPENAI_API_KEY')}",
    "generate_args": {
        "temperature": 0.5,
    },
}
# 其他可以通过post 访问的LLM接口
# 下面的my_postapi_config可以对应的open ai的post ai端口规则
# curl $YOUR_URL_TO_MODEL \
# -H "Content-Type: application/json" \
# -H "Authorization: Bearer $YOUR_API_KEY_IF_ANY" \
# -d '{
#   "model": "XXX",
#   "messages": [
#      .....
#   ]
# }'
postapi_example_config = {
    "model_type": "post_api_chat",
    "config_name": "my_postapi_config",
    "api_url": "$YOUR_URL_TO_MODEL",
    "headers": {
        "Content-Type": "application/json",
        "Authorization": "Bearer YOUR_API_KEY_IF_ANY"
    },
    "messages_key": "messages",
    "json_args": {
        "model": "XXX",
    }
}

除了对话模型,AgentScope还支持很多其他的模型调用,比如本地只用cpu跑的ollama的模型,又比如embedding生成、文生图、图生文等等。将来大家需要进一步开发更酷炫的多智体应用的时候,更多配置详情可以参考教程(https://modelscope.github.io/agentscope/zh_CN/tutorial/203-model.html)。

第二步:如何配置简单的智能体(agent)?

有了模型的配置,AgentScopet提供了一个非常方便的初始化方法,可以一步就帮你把所有的模型引入AgentScope环境中:

import agentscope
# 让config生效
agentscope.init(
    model_configs=[
      dashscope_example_config,
      openai_examaple_config,
      # 其他模型配置也可以继续添加在这里~
    ],
)

作为最基础的一种agent,DialogAgent可能是最简单上手的一个agent。创建一个实例,只需要给dialog agent命名、简单的系统提示词和一个模型的配置(config)的名字:

from agentscope.agents import DialogAgent
dialog_agent = DialogAgent(
    name="Assistant",
    sys_prompt="You're a helpful assistant.",
    model_config_name="tongyi_qwen_config",  # 其中一个你在上面步骤准备好的配置名字(config_name对应的值)
)

第三步:如何把agent包装成一个简单程序

好了,有了一个有记忆、能和你对话的智能体dialog_agent,现在我们创建一个user_agent作为你在电子世界的代理,用来接收用户输入信息。

from agentscope.agents.user_agent import UserAgent
user_agent = UserAgent()

现在我们已经创建好了user_agent和dialog_agent,再有几行代码,就能搭建出一个完整的小程序啦!

# start the conversation between user and assistant
x = None
while x is None or x.content != "exit":
    x = dialog_agent(x)
    x = user_agent(x)

一键启动UI界面

什么,嫌弃命令行的应用不够酷炫?AgentScope懂你,为你提供一键生成图形界面!你只需要把上面的代码包装在一个main函数中,把程序保存成.py文件,比如conversation.py。

import os
import agentscope
from agentscope.agents import DialogAgent
from agentscope.agents.user_agent import UserAgent
def main() -> None:
    """A basic conversation demo"""
    dashscope_example_config = {
      "model_type": "dashscope_chat",
      "config_name": "tongyi_qwen_config",
      "model_name": "qwen-max",
      "api_key": f"{os.environ.get('DASHSCOPE_API_KEY')}",
    }
    agentscope.init(
        model_configs=[dashscope_example_config],
    )
    dialog_agent = DialogAgent(
        name="Assistant",
        sys_prompt="You're a helpful assistant.",
        model_config_name="tongyi_qwen_config",
    )
    user_agent = UserAgent()
    x = None
    while x is None or x.content != "exit":
        x = dialog_agent(x) 
        x = user_agent(x)

然后,在命令行一键启动~ (需要确保安装的是full verison)

as_studio conversation.py

你会看到类似于下面的输出

bash-3.2$ as_studio conversation.py
Running on local URL:  http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.

在浏览器中打开http://127.0.0.1:7860, 一个简易的网页版就对话应用就准备好啦!

image.png

长期关注AgentScope

AgentScope正在高速开发阶段,欢迎长期关注关注我们,在github上(https://github.com/modelscope/agentscope) 为我们star 🌟!也欢迎有更多希望深度参与的小伙伴加入开发者社区,贡献代码,一起建设multi-agent多智体框架!

延伸阅读

点击即可参加赛事报名~

Create @ AI 创客松第四季 (aliyun.com)

相关文章
|
18天前
|
自然语言处理 算法 前端开发
Multi-Agent实践第5期:RAG智能体的应用:让AgentScope介绍一下自己吧
本期文章,我们将向大家展示如何使用AgentScope中构建和使用具有RAG功能的智能体,创造AgentScope助手群,为大家解答和AgentScope相关的问题。
|
14天前
|
人工智能 自然语言处理 API
【LangChain系列】第三篇:Agent代理简介及实践
【5月更文挑战第17天】LangChain代理利用大型语言模型(LLM)作为推理引擎,结合各种工具和数据库,处理复杂任务和决策。这些代理能理解和生成人类语言,访问外部信息,并结合LLM进行推理。文章介绍了如何通过LangChain构建代理,包括集成DuckDuckGo搜索和维基百科,以及创建Python REPL工具执行编程任务。此外,还展示了如何构建自定义工具,如获取当前日期的示例,强调了LangChain的灵活性和可扩展性,为LLM的应用开辟了新途径。
61 0
|
18天前
|
人工智能 测试技术 API
【AIGC】LangChain Agent(代理)技术分析与实践
【5月更文挑战第12天】 LangChain代理是利用大语言模型和推理引擎执行一系列操作以完成任务的工具,适用于从简单响应到复杂交互的各种场景。它能整合多种服务,如Google搜索、Wikipedia和LLM。代理通过选择合适的工具按顺序执行任务,不同于链的固定路径。代理的优势在于可以根据上下文动态选择工具和执行策略。适用场景包括网络搜索、嵌入式搜索和API集成。代理由工具组成,每个工具负责单一任务,如Web搜索或数据库查询。工具包则包含预定义的工具集合。创建代理需要定义工具、初始化执行器和设置提示词。LangChain提供了一个从简单到复杂的AI解决方案框架。
340 3
|
18天前
|
人工智能 API 决策智能
【AI Agent系列】【阿里AgentScope框架】实战1:利用AgentScope实现动态创建Agent和自由组织讨论
【AI Agent系列】【阿里AgentScope框架】实战1:利用AgentScope实现动态创建Agent和自由组织讨论
234 2
|
18天前
|
人工智能 决策智能 C++
【AI Agent系列】【阿里AgentScope框架】5. Pipeline模块的组合使用及Pipeline模块总结
【AI Agent系列】【阿里AgentScope框架】5. Pipeline模块的组合使用及Pipeline模块总结
84 1
|
18天前
|
人工智能 决策智能
【AI Agent系列】【阿里AgentScope框架】4. 深入源码:Pipeline模块如何组织多智能体间的数据流?- 循环结构
【AI Agent系列】【阿里AgentScope框架】4. 深入源码:Pipeline模块如何组织多智能体间的数据流?- 循环结构
68 0
|
18天前
|
人工智能 决策智能
【AI Agent系列】【阿里AgentScope框架】3. 深入源码:Pipeline模块如何组织多智能体间的数据流?- 顺序结构与条件分支
【AI Agent系列】【阿里AgentScope框架】3. 深入源码:Pipeline模块如何组织多智能体间的数据流?- 顺序结构与条件分支
54 2
|
18天前
|
人工智能 决策智能
【AI Agent系列】【阿里AgentScope框架】2. Pipeline模块入门:使用Pipeline模块实现最简单的多智能体交互
【AI Agent系列】【阿里AgentScope框架】2. Pipeline模块入门:使用Pipeline模块实现最简单的多智能体交互
86 0
|
18天前
|
人工智能 搜索推荐 决策智能
【AI Agent系列】【阿里AgentScope框架】1. 深入源码:详细解读AgentScope中的智能体定义以及模型配置的流程
【AI Agent系列】【阿里AgentScope框架】1. 深入源码:详细解读AgentScope中的智能体定义以及模型配置的流程
183 0