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

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,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)

相关文章
|
2月前
|
前端开发 API 决策智能
多智能体微调实践:α-UMi 开源
近年来,为了加强大型语言模型(Large-Language Models, LLM)实时信息处理、解决专业问题的能力,催生了工具调用智能体(Tool Integrated Agent)概念
|
19天前
|
数据采集 人工智能 自然语言处理
万字干货|复杂表格多Agent方案:从LLM洞察、系统性 思考到实践经验总结
笔者结合实践经验以近期在负责的复杂表格智能问答为切入点,结合大模型的哲学三问(“是谁、从哪里来、到哪里去”),穿插阐述自己对大模型的一些理解与判断,以及面向公共云LLM的建设模式思考,并分享软件设计+模型算法结合的一些研发实践经验。
|
20天前
|
Prometheus 监控 Java
深入探索:自制Agent监控API接口耗时实践
在微服务架构中,监控API接口的调用耗时对于性能优化至关重要。通过监控接口耗时,我们可以识别性能瓶颈,优化服务响应速度。本文将分享如何自己动手实现一个Agent来统计API接口的调用耗时,提供一种实用的技术解决方案。
30 3
|
3月前
|
人工智能 JSON 自然语言处理
你的Agent稳定吗?——基于大模型的AI工程实践思考
本文总结了作者在盒马智能客服的落地场景下的一些思考,从工程的角度阐述对Agent应用重要的稳定性因素和一些解法。
151 12
|
4月前
|
存储 弹性计算 前端开发
阿里云服务领域Agent智能体:从概念到落地的思考、设计与实践
本文讲述了作者团队在阿里云的服务领域Agent是如何设计与实践的,以及到目前为止的一些阶段性成果,作者做出了总结和整理。
|
6月前
|
人工智能 数据可视化 API
Multi-Agent实践第9期: 多智能体的升级体验
AgentScope 的新版本主要从 RAG,可视化和系统提示优化三个角度进行了更新,旨在降低开发者的开发代价,提供更加友好的开发体验。
|
7月前
|
人工智能 测试技术 API
【AIGC】LangChain Agent(代理)技术分析与实践
【5月更文挑战第12天】 LangChain代理是利用大语言模型和推理引擎执行一系列操作以完成任务的工具,适用于从简单响应到复杂交互的各种场景。它能整合多种服务,如Google搜索、Wikipedia和LLM。代理通过选择合适的工具按顺序执行任务,不同于链的固定路径。代理的优势在于可以根据上下文动态选择工具和执行策略。适用场景包括网络搜索、嵌入式搜索和API集成。代理由工具组成,每个工具负责单一任务,如Web搜索或数据库查询。工具包则包含预定义的工具集合。创建代理需要定义工具、初始化执行器和设置提示词。LangChain提供了一个从简单到复杂的AI解决方案框架。
705 3
|
6月前
|
决策智能 开发者
Multi-Agent实践第8期:轻松拖拽搭建多智能体应用
AgentScope Workstation令多智能体应用的搭建变得轻而易举,只需简单拖拽操作,每位用户都能快速打造出丰富多彩的应用。
|
7月前
|
人工智能 API 决策智能
【AI Agent系列】【阿里AgentScope框架】实战1:利用AgentScope实现动态创建Agent和自由组织讨论
【AI Agent系列】【阿里AgentScope框架】实战1:利用AgentScope实现动态创建Agent和自由组织讨论
676 2
|
7月前
|
人工智能 决策智能
【AI Agent系列】【阿里AgentScope框架】3. 深入源码:Pipeline模块如何组织多智能体间的数据流?- 顺序结构与条件分支
【AI Agent系列】【阿里AgentScope框架】3. 深入源码:Pipeline模块如何组织多智能体间的数据流?- 顺序结构与条件分支
159 2

热门文章

最新文章