智能体开发实战 | 基于Dify自定义工作流工具构建游戏智能体

Dify是一款开源的大语言模型应用开发平台,旨在降低AI应用的开发门槛,帮助开发者和企业快速构建、部署及管理生成式AI应用。本文以24点游戏智能体为案例,展示了Dify基于工作流的Agent应用开发。通过把工作流发布为工具,Agent通过推理可以智能调用相应工作流解决问题。

前言

Dify是一款开源的大语言模型应用开发平台,旨在降低AI应用的开发门槛,帮助开发者和企业快速构建、部署及管理生成式AI应用。

Dify允许用户在画布上构建和测试功能强大的AI工作流。工作流通过将复杂任务分解为更小的步骤(节点),有效降低了系统的复杂度。这种方法减少了对提示词技术和模型推理能力的依赖,从而提升了 LLM 在处理复杂任务时的性能,同时增强了系统的可解释性、稳定性和容错性。

本文以实现24点游戏为例。24点的游戏规则:给出一组4个随机整数(1至13之间,且不重复),用加、减、乘、除(可加括号)把给出的4个数字算成24,每个数必须用一次且只能用一次。

这个智能体需要具备如下能力:

  • 出题:生成一组4个随机整数(1至13之间,且不重复),并确保生成的随机数能计算出24。
  • 校验用户输入的表达式计算结果是否为24。
  • 解题:根据用户给出的随机数,生成答案。

通过设置合适的提示词,为智能体设定角色和处理逻辑。智能体会根据大语言模型对人物设定和回复逻辑的理解,来响应用户问题。因此提示词编写的越清晰明确,智能体的回复也会越符合预期。可以在提示词中指定用工作流作逻辑处理,实现通过prompt无法实现的功能。

创建工作流工具

在http://localhost/apps页面点击“创建空白应用”,选择“工作流”。填写应用名,点击创建。依次创建三个工作流:

  • generate_random_numbers:为24点游戏生成一组随机数
  • check_answer:校验表达式计算结果是否为24
  • generate_answer:根据一组随机数生成24点游戏的答案

工作流1:generate_random_numbers

整体流程如下图:

图片

  • 名称:generate_random_numbers
  • 描述:为24点游戏生成一组随机数
  • 开始节点: 用默认配置,无需添加输入字段
  • 代码执行节点

图片

  • 输入变量:无
  • 输出变量:numbers,类型为Array[Number]
  • 代码:

复制

import random
from itertools import permutations, product

def main() -> dict:
    while True:
        numbers = []
        while len(numbers) < 4:
            num = random.randint(1, 13)
            if num not in numbers:
                numbers.append(num)
        res = generate_answer(numbers)
        # 确保生成的随机数能计算出24
        if res['code'] == 'ok':
            return {'numbers': numbers}

def ge
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值