更新时间:2025-11-24 GMT+08:00
分享

基于函数创建一个插件

本章节将介绍如何通过函数来创建插件。创建完成后,必须发布才可以被智能体或工作流使用。通过使用插件,您可以扩展智能体和工作流的功能,使其更加灵活和强大。如何发布插件,请参考发布插件

创建插件的流程

序号

流程环节

说明

1

创建插件

Versatile智能体平台提供了自定义插件的功能,通过使用插件,可以增强智能体应用和工作流的能力。

2

创建工具

创建工具

在创建插件之后,需要为插件添加工具。一个插件可以包含多个工具,每个工具可以实现不同的功能。通过添加工具,可以进一步细化和扩展插件的功能。

创建自定义依赖包

在函数编辑页面,可以创建并上传自定义依赖包。这些依赖包可以包含您的自定义代码,从而提高工具的灵活性和功能性。

创建插件

  1. 登录Versatile智能体平台,在左侧导航栏“个人空间”区域,选择进入所需空间,如图1所示。

    如果已选择团队空间,界面显示为实际的团队空间名称,而非“个人空间”。

    图1 选择团队空间

  2. 在左侧导航栏中选择“开发中心 > 组件库 > 我的插件”,单击左上角“创建插件”。
  3. 在“创建插件”页面中的“插件类型”中选择“函数类型”,在“基本信息”步骤中设置插件的基础信息,请参照表1完成信息配置。

    表1 基本信息

    参数

    说明

    插件图标

    单击默认图标按钮,可上传本地图片作为插件的自定义图标。

    支持jpg、jpeg、png格式,不超过200KB。

    插件名称

    用于标识当前插件的名称,便于在智能体、工作流和资产中心中快速搜索和定位。例如:查询天气。

    命名规则:

    命名要求:可以包含中文、英文、数字、特殊字符等。

    长度限制:1~64个字符。

    插件英文名称

    插件的英文名称,用于在大模型调用时快速搜索和定位该插件。

    命名规则:

    命名要求:字母、数字和下划线(_)的组合,不允许使用其他特殊字符或空格。

    长度限制:1~64个字符。

    描述(可选)

    描述当前插件的类型、功能和适用场景,帮助用户快速了解插件的作用和用途。

    仅我可见

    该功能默认关闭。开启后,仅插件的创建者可见。此设置在插件创建后无法修改。

  4. 配置完成后,单击“确定”完成插件创建。插件创建成功后,可以在插件列表中查看创建好的插件。请参考创建工具为插件添加工具。

创建工具

  1. “工具信息”页签中,单击左侧的“新建”
  2. “函数名称”的下拉列表中选择需要的函数,即之前已定义保存的函数。您也可以进行以下操作。

    1. 单击:可以直接在弹出的创建函数页面快速创建函数,参数说明如表2所示,参数配置完成后可单击“确定”保存函数。
    2. 单击:可以在弹出的编辑页面中快速编辑函数,参数编辑完成后可单击“确定”保存函数。
      表2 创建函数参数说明

      参数

      说明

      名称

      函数名,用于调用函数。

      命名规则:

      命名要求:可以包含英文、数字,必须以英文字母开头。

      长度限制:2~32个字符。

      描述

      函数功能描述。

      入参

      设置函数的输入参数。

      单击参数列表“操作”列的可以新增参数,参数配置说明请参见表3

      出参

      输出参数。每个变量都可在后置节点中引用。

      单击参数列表“操作”列的可以新增参数,参数配置说明请参见表3

      执行语言

      运行函数的环境。当前支持Python3.9、Node.js14.18,请查看Python函数开发指南Node.js函数开发指南

      编辑源码

      在源码编辑区,可以编写函数内部的代码运行逻辑,如图2所示,图中各模块说明如下:

      ①:导入模块,是Python标准库中的模块,无需修改。

      ②:用户自定义导入模块。

      ③:公共函数使用方法示例,提供了如何使用公共函数和mssiAuthData参数的示例,无需修改。

      ④:函数定义和注释,extractRequestParam函数和handler函数是系统预置的模板代码,无需修改。

      ⑤:系统方法,无需修改。

      图2 源码编辑区

      依赖包

      单击“添加”,可以选择自定义依赖包。自定义依赖包上传方法请参见创建自定义依赖包

      一个函数最多添加20个依赖包。

      表3 参数配置说明

      参数

      说明

      参数名称

      输入参数的名称。

      显示字段

      输入该参数的别名。

      必填

      勾选该参数是否是用户必填项。

      参数类型

      选择参数类型,支持string、number、boolean、integer类型。

      说明

      关于该参数的介绍说明。

      操作

      • 单击:新增节点。
      • 单击:删除该节点。

  3. 配置完成后,单击“确定”

    添加完成的工具可以在工具列表中查看。

创建自定义依赖包

  1. 登录Versatile智能体平台,在左侧导航栏“个人空间”区域,选择进入所需空间,如图3所示。

    如果已选择团队空间,界面显示为实际的团队空间名称,而非“个人空间”。

    图3 选择团队空间

  2. 在左侧导航栏选择“开发中心 > 组件库 > 我的插件”,单击您通过选择函数类型创建的插件。
  3. “工具信息”页签中,单击左侧的“新建”。或编辑已添加的工具。
  4. 选择已有函数,进入编辑函数界面,如图4所示。

    图4 创建函数

  5. 单击“依赖包”右侧的“添加”,如图5所示。

    图5 添加依赖包

  6. “选择依赖包”的弹框中,单击“创建依赖包”,设置依赖包的基本配置信息,具体的参数说明如表4所示。

    表4 新建依赖包参数说明

    参数

    说明

    依赖包名称

    自定义依赖包的名称。

    命名规则:

    命名要求:支持英文、数字、下划线,仅支持以英文开头。

    长度限制:2~32个字符。

    执行语言

    运行函数的环境,当前仅支持Python3.9、Node.js14.18。

    描述(可选)

    依赖包的描述信息,最多支持200个字符。

    上传

    上传.zip格式文件,文件大小限制为10MB以内。

    上传文件时,如果文件中包含敏感信息(如账户密码等),请您自行加密,防止信息泄露。

  7. 单击“确定”。

    创建完成后,可以在添加工具时添加并使用该依赖包。

示例

开发语言

代码节点以Python语言为例。

Python

基于Python 3.11.3的标准库,大多数模块都能正常运行,如下面白名单所示模块,不在白名单中的模块可能不能正常运行。

  • 三方库白名单
    sys,time,numpy,warnings,enum,os,functools,collections,types,datetime,numbers,abc,io,executor_sdk,contextlib,dataclasses,math,operator,pickle,contextvars,_contextvars,ast,re,ctypes,copyreg,weakref,textwrap,platform,typing,__future__,sympy,mpmath,bisect,cmath,colorsys,keyword,linecache,timeit,gc,random,decimal,_decimal,fractions,flint,gmpy2,unicodedata,tokenize,gmpy,copy,inspect,string,struct,importlib,array,shutil,pathlib,tempfile,subprocess,json,xml.etree.ElementTree,uuid,_uuid,urandom
  • 内置函数白名单
    exec,print,id,issubclass,compile,__build_class__,hasattr,eval,chr,next,ord,callable,repr,sorted,iter,min,max,weakref,all,any,hash,locals,sum,vars,open,abs,round,divmod,pow,delattr

配置示例:

  • 文本拼接示例代码。
    def main(args: dict) -> dict:
    # 注意在输入参数中定义名为input1的变量
    input1 = args.get('input1')
    # 注意在输入参数中定义名为input2的变量
    input2 = args.get('input2')
    res = {
    # 注意在输出参数中定义名为res的变量
    "res": input1 + input2,
    }
    return res
  • 数学计算示例代码。
    def main(args: dict) -> dict:
    # 注意在输入参数中定义名为input1的变量
    input1 = args.get('input1')
    try:
    input1 = int(input1)
    return {
    # 注意输出参数中定义res变量
    'res': input1 * input1
    }
    except Exception as e:
    return {
    # 注意输出参数中定义res变量
    'res': "输入类型错误或者数字大小超出限制"
    }

更多操作

工具创建完成后,您可以在工具列表中查看每个工具的调试状态、智能体引用数和工作流引用数。您可以执行如表5的操作。

表5 相关操作

操作

说明

编辑

在工具信息列表中,找到需要编辑的工具,单击该工具操作列中的“编辑”,可编辑工具信息。

调试

在工具信息列表中,找到需要调试的工具,单击该工具操作列中的“调试”,在展开的弹框中输入参数信息对工具进行调试。

删除

在工具信息列表中,找到需要删除的工具,单击该工具操作列中的“删除”,可删除工具。

查看详情

在工具信息列表中,找到需要查看详细信息的工具,单击该工具名称,即可查看工具的详细信息。

相关文档