所有文章 > 日积月累 > 阿里通义 ModelScope Agent 开发全解析
阿里通义 ModelScope Agent 开发全解析

阿里通义 ModelScope Agent 开发全解析

什么是Agent模型

Agent模型是一种能够自主理解、规划决策、执行复杂任务的智能体。它的核心组成部分包括大语言模型(LLM)、记忆模块、任务规划技能以及工具使用能力。具体来说,Agent通过对用户输入的文字进行拆解和规划,确定适当的行动路径,并评估所需工具。在使用API调用工具后,Agent能够得到调用结果并最终输出解决方案。

Agent模型示意图

阿里云AI创意挑战赛

阿里云AI创意挑战赛旨在设计能够完成特定任务的AI Agent,并创作出受欢迎的Agent产品。参赛者需要调用开源的通义千问大模型API作为LLM大脑,通过设计Prompt为LLM设定角色,确定LLM的功能,以及创建或调用第三方的工具,使Agent能够实现更多功能。这一比赛不仅是技术水平的较量,更是创意的展示。

环境搭建步骤

在开发qwen-agent时,使用虚拟环境是一个不错的选择。下面是环境搭建的详细步骤:

  1. 克隆项目:使用git clone命令克隆Agent项目。
  2. 安装依赖:通过运行pip install -r requirements.txt安装项目所需的依赖包。
  3. 配置文件夹移动:将apps/agentfabric文件夹移动至项目根目录。
  4. 运行应用:通过执行python app.py启动应用程序。
 git clone https://github.com/modelscope/modelscope-agent.git
 cd modelscope-agent

 pip install -r requirements.txt
 pip install -r demo/agentfabric/requirements.txt

 python app.py

环境搭建示例

Prompt设计的艺术

Prompt简介

Prompt是一段用于与语言模型交互的文字或代码片段。它通过提供明确的指令或问题,引导模型生成相关的文本。在Agent构建中,Prompt的设计直接影响模型对任务的理解和执行效果。

Prompt的结构

Prompt通常由上下文和任务描述两部分组成。上下文是指前文或已知信息,而任务描述则包含具体的指令或问题。合理的设计可以帮助模型更好地理解任务,并生成符合预期的输出。

Python编程专家Prompt示例

以下是一个Python编程专家的Prompt示例:

描述

  • 你可以使用Python解决任务,运行代码并得到结果。如果代码有错误,你需要改进代码。
  • 你处理用户上传的文件。

指令

  1. 数学解题
  2. 数据分析和可视化
  3. 文件格式转换,生成视频
  4. 如果没有文件但需要画图,编造示例数据
  5. 调用工具前说明理由
  6. 代码出错时反思并改进

Prompt设计示例

构建科研论文润色小助手

Agent简介

我构建了一个简单的科研论文润色小助手。这是一个专为科研人员设计的助手,能够利用大模型的专业知识补充用户输入的文字,修正语言错误,并提供中英双语的论文版本。

Agent设置与功能

通过反复调整,以下是我为Agent设定的功能:

  1. 理解用户指令
  2. 优化科研论文润色
  3. 调整语言风格
  4. 提供修改建议
  5. 根据建议生成示例
  6. 英文版本修改

使用效果

经过多次对话和调整,Agent能够提出优质的建议,并根据用户的Prompt进一步生成完善的示例。虽然初期的Agent回复简单,但经过改进后已能满足用户的需求。

Agent使用效果

未来发展与联网功能

在未来的开发中,我们可以尝试为小助手增加联网功能,使其能够获得更多参考资料,并给出更可靠的答复。以下是几个可能的联网用途:

  1. 相关论文和研究:通过API检索最新研究和论文,提供更多参考文献。
  2. 专业术语和定义:查询专业术语的定义,提升回复的专业性。
  3. 行业新闻和趋势:跟踪行业发展,确保信息的时效性。
  4. 拓展背景知识:获取主题相关的背景信息,提供更深入的回复。
  5. 学术论坛和社区:了解领域内的讨论和共识,帮助理解实际问题。

Agent工具的实现

Agent的工具是其核心能力之一,能够调用外部信息或完成特定功能,如翻译、代码执行、语音生成等。

简易工具实现

以下是一个简单的工具实现示例:

class AliyunRenewInstanceTool(Tool):
    description = '续费一台包年包月ECS实例'
    name = 'RenewInstance'
    parameters: list = [
        {'name': 'instance_id', 'description': 'ECS实例ID', 'required': True},
        {'name': 'period', 'description': '续费时长以月为单位', 'required': True}
    ]

    def __call__(self, remote=False, *args, **kwargs):
        if self.is_remote_tool or remote:
            return self._remote_call(*args, **kwargs)
        else:
            return self._local_call(*args, **kwargs)

    def _remote_call(self, *args, **kwargs):
        pass

    def _local_call(self, *args, **kwargs):
        instance_id = kwargs['instance_id']
        period = kwargs['period']
        return {'result': f'已完成ECS实例ID为{instance_id}的续费,续费时长{period}月'}

在ModelScope上实现教学助理Agent

打开魔搭社区

首先,访问魔搭社区官网: https://www.modelscope.cn/home

魔搭社区主页

创建通义千问API

  1. 开通DashScope灵积模型服务。
  2. 在控制台创建API-KEY,并保存。

创建API-KEY

使用Agent创建器

通过魔搭Agent创建器,你可以快速创建Agent。左侧为聊天界面,通过语言描述即可创建Agent。

Agent创建器界面

发布属于自己的Agent

实验效果满意后,点击【构建】并【发布】,即可将Agent分享给他人。

发布Agent

FAQ

  1. 问:什么是Agent模型?

    • 答:Agent模型是一种能够自主理解、规划决策、执行复杂任务的智能体,包含大语言模型、记忆、任务规划和工具使用能力。
  2. 问:如何搭建Agent的开发环境?

    • 答:可以通过克隆项目、安装依赖、配置文件夹及运行应用程序等步骤完成Agent开发环境的搭建。
  3. 问:Prompt在Agent构建中的作用是什么?

    • 答:Prompt用于引导模型生成相关文本,其设计直接影响模型对任务的理解和执行效果。
  4. 问:Agent可以通过联网功能实现哪些用途?

    • 答:Agent可以通过联网功能获取更多参考资料、专业术语定义、行业动态等,以提升回复的准确性和专业性。
  5. 问:如何在ModelScope上创建Agent?

    • 答:可以通过魔搭社区创建通义千问API并使用Agent创建器,通过简单的语言描述快速创建Agent。

这篇文章详细介绍了阿里通义 ModelScope Agent 开发的各个方面,包括模型原理、比赛介绍、环境搭建、Prompt设计、Agent构建和工具实现等,帮助读者深入理解Agent的开发流程和未来可能的发展方向。

#你可能也喜欢这些API文章!