保姆级教程:用AgentScope和通义千问(qwen-max)30分钟搭建你的第一个多智能体游戏
30分钟实战基于AgentScope与通义千问构建多智能体诗词游戏诗词游戏一直是中华文化中的瑰宝而飞花令作为经典玩法考验着参与者的文学素养与反应速度。如今借助大语言模型与多智能体框架开发者可以快速搭建一个能与AI对弈的诗词游戏平台。本文将手把手带你用AgentScope框架和通义千问(qwen-max)模型在半小时内完成一个可运行的多智能体飞花令系统。1. 环境准备与基础配置在开始前我们需要准备好开发环境。推荐使用Python 3.8或以上版本并创建一个干净的虚拟环境python -m venv poetry-env source poetry-env/bin/activate # Linux/Mac # poetry-env\Scripts\activate # Windows安装AgentScope框架及其依赖pip install agentscope dashscope注意如果遇到依赖冲突问题可以尝试先卸载已有版本再重新安装或者使用源码安装方式。接下来需要获取阿里云DashScope的API Key登录阿里云官网并进入DashScope控制台创建API Key并妥善保存将API Key设置为环境变量或在代码中配置2. 模型与智能体配置详解AgentScope的核心是通过配置文件定义模型和智能体行为。我们创建两个关键配置文件model_config.json- 定义底层大模型配置[ { model_type: dashscope_chat, config_name: qwen, model_name: qwen-max, api_key: your_api_key_here, generate_args: { temperature: 0.5, top_p: 0.8 } } ]agent_configs.json- 定义三个游戏角色[ { class: DialogAgent, args: { name: 主持人, sys_prompt: 你是一位飞花令游戏主持人每次从风花雪月中随机选一个字作为题目。只需说出这个字不要说其他内容。, model_config_name: qwen, use_memory: true } }, { class: DialogAgent, args: { name: 裁判, sys_prompt: 你是飞花令裁判根据以下规则判断玩家回答1)必须是古诗词 2)包含关键字 3)不与之前重复。初始分5分正确1分错误-1分。10分获胜0分失败。每次给出具体判断依据。, model_config_name: qwen, use_memory: true } }, { class: DialogAgent, args: { name: 对手, sys_prompt: 你是飞花令AI对手根据主持人给出的关键字说出一句包含该字的古诗词且不与之前重复。只需说出诗句。, model_config_name: qwen, use_memory: true } } ]3. 核心游戏逻辑实现创建game_logic.py实现多智能体协作import agentscope from agentscope.message import Msg def initialize_agents(): 初始化所有智能体 return agentscope.init( model_configs./model_config.json, agent_configs./agent_configs.json ) def play_game(): 运行飞花令游戏主循环 agents initialize_agents() host, judge, opponent agents # 游戏开始 keyword host(Msg(system, 开始游戏)).content print(f【主持人】本轮关键字{keyword}) score 5 used_poems [] while 0 score 10: # 玩家输入 player_poem input(你的诗句) # 裁判判断 judge_msg f关键字{keyword}诗句{player_poem} result judge(Msg(player, judge_msg)).content print(f【裁判】{result}) # 更新分数和记录 if 正确 in result: score 1 used_poems.append(player_poem) else: score - 1 # AI对手回合 if 0 score 10: ai_poem opponent(Msg(host, keyword)).content print(f【对手】{ai_poem}) used_poems.append(ai_poem) print(f游戏结束最终得分{score}) if __name__ __main__: play_game()4. 进阶优化与错误处理在实际运行中可能会遇到一些常见问题问题1API调用限制解决方案添加请求间隔和重试机制import time from tenacity import retry, stop_after_attempt, wait_fixed retry(stopstop_after_attempt(3), waitwait_fixed(1)) def safe_agent_call(agent, message): return agent(message)问题2诗句重复检测不准确优化方案在裁判Agent的sys_prompt中添加更严格的检测指令你需要特别注意诗句是否与以下记录重复[{used_poems}]。 即使字面不完全相同但表达意思高度相似的也应视为重复。问题3响应速度慢优化配置调整模型参数提升响应速度{ generate_args: { temperature: 0.5, max_tokens: 50, enable_search: false } }可以进一步扩展游戏功能添加更多关键字类别实现难度分级系统加入语音交互功能增加可视化游戏界面5. 部署与分享完成开发后你可以通过以下方式分享你的作品本地分享python -m http.server 8000ModelScope部署准备requirements.txt文件创建app.py入口文件上传到ModelScope创空间对于更正式的部署可以考虑使用Docker容器化应用配置Nginx反向代理设置API调用监控这个项目展示了如何利用现代AI技术复活传统文化游戏。通过AgentScope的多智能体协作能力我们构建了一个完整的游戏生态每个角色各司其职又相互配合。这种模式可以扩展到其他需要多角色协作的应用场景如教育辅导、客服系统、游戏NPC互动等。