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

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 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)概念
|
1月前
|
Arthas 监控 Java
拥抱 OpenTelemetry:阿里云 Java Agent 演进实践
本文介绍了阿里云 Java Agent 4.x 版本在基于 OTel Java Agent 二次开发过程中的实践与思考,并重点从功能、性能、稳定性、兼容性四个方面介绍了所做的工作。同时也介绍了阿里云可观测团队积极参与开源建设取得的丰厚成果。
193 5
拥抱 OpenTelemetry:阿里云 Java Agent 演进实践
|
13天前
|
人工智能 前端开发 API
基于agentscope的多智能体游戏场景-骗子酒馆
骗子酒馆是一款基于多智能体系统的在线社交推理游戏,玩家通过掷骰子和扑克牌进行智力和心理博弈,结合大语言模型技术,每个游戏角色由AI扮演,具备独特的性格和决策逻辑,提供高度沉浸式的体验。游戏采用黑板通信模式,确保信息高效交换,支持多种角色如胆小鬼、占卜师等,每个角色拥有特定的技能和行为模式,增强游戏的策略深度和互动性。游戏界面简洁,操作流畅,适合喜欢心理战和策略游戏的玩家。文章末尾有源码和体验地址。
89 13
|
10天前
|
人工智能 API 数据库
Qwen-Agent功能调用实践探索
本文详细解析了Qwen-Agent的核心功能——功能调用,涵盖其定义、工作流程、重要性和实际应用,通过实例展示了如何在Qwen-Agent中利用此功能与外部工具和API互动,扩展AI应用范围。
|
1月前
|
传感器 机器学习/深度学习 自然语言处理
智能代理(Agent)在工具调用与协作中的应用实践
随着人工智能技术的飞速发展,智能代理(Agent)技术已成为解决复杂任务的关键手段。本文深入探讨了如何设计灵活的工具调用机制和构建高效的单/多Agent系统以提升任务执行效率。文章不仅涵盖了相关的理论知识,还提供了丰富的实践案例和代码实现,旨在帮助读者深入理解和应用智能代理技术。
144 2
|
1月前
|
Prometheus 监控 Java
深入探索:自制Agent监控API接口耗时实践
在微服务架构中,监控API接口的调用耗时对于性能优化至关重要。通过监控接口耗时,我们可以识别性能瓶颈,优化服务响应速度。本文将分享如何自己动手实现一个Agent来统计API接口的调用耗时,提供一种实用的技术解决方案。
44 3
|
3月前
|
人工智能 JSON 自然语言处理
你的Agent稳定吗?——基于大模型的AI工程实践思考
本文总结了作者在盒马智能客服的落地场景下的一些思考,从工程的角度阐述对Agent应用重要的稳定性因素和一些解法。
172 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解决方案框架。
727 3

热门文章

最新文章

下一篇
DataWorks