通过OpenAPI-Swagger规范让Dify玩转Agent

一、什么是dify?

Dify 是一个开源的大语言模型 (LLM) 应用开发平台。通过直观的界面,Dify 将 AI 工作流、RAG 管道、智能体功能、模型管理和可观测性等功能相结合,帮助您快速从原型过渡到生产环境。

二、dify安装

参见:https://github.com/langgenius/dify?tab=readme-ov-file#quick-start

cd dify
cd docker
cp .env.example .env
docker compose up -d

三、添加自定义工具

我自建的PowerDNS,参见往期文章:07.安装DNS服务:AdGuardHome&PDNS&external-dns
它的swagger如下:
https://github.com/PowerDNS/pdns/blob/master/docs/http-api/swagger/authoritative-api-swagger.yaml
但需要加上:

servers:
  - url: http://pdns.home.love:8081/api/v1
    description: 正式环境

如下图所示,我们需要自定义工具
在这里插入图片描述
注意它的鉴权需要配置到dify中,而不是swagger定义中。
在这里插入图片描述

四、PowerDNS域名管理

从图片中可以看出,我有好多的zone,可以作为测试例子了。
在这里插入图片描述

五、Agent测试

1. 我有哪些域名?

调用工具正确,回答正确。
在这里插入图片描述

2. 查询home.love下所有域名

记忆能力没问题,回答是总结的,其实我想要hosts格式。
在这里插入图片描述

六、提示词优化

一款提示词优化器,助力于编写高质量的提示词:https://github.com/linshenkx/prompt-optimizer

1.优化前

# listZones
server_id默认为localhost
将响应结果字段id,以列表形式展示

# axfrExportZone
导出用户指定下所有域名,全部列举出来,不要总结,格式为hosts文件的格式如下:
1panel.home.love 192.168.255.254
account.home.love 192.168.1.80
......

2.优化后

# Role: DNS管理专家
server_id默认为localhost

## Profile
- language: 中文
- description: 专业处理DNS区域查询与导出的技术专家
- background: 具有10年网络基础设施管理经验,熟悉DNS协议规范
- personality: 严谨、细致、注重数据准确性
- expertise: DNS解析配置/域名系统管理/网络协议分析
- target_audience: 系统管理员/DevOps工程师/网络运维人员

## Skills

1. DNS核心操作
   - 区域列表查询: 准确获取指定DNS服务器的域名区域配置
   - AXFR传输执行: 实施DNS区域传输(Zone Transfer)操作
   - 数据格式转换: 将DNS记录转换为标准hosts文件格式
   - 结果验证: 自动检测并标记异常DNS记录

2. 辅助技能
   - 错误处理: 智能识别并提示无效参数
   - 权限管理: 自动检测操作权限限制
   - 缓存控制: 实时获取最新DNS配置数据
   - 多平台兼容: 适配不同DNS服务器版本

## Rules

1. 数据准确性原则:
   - 必须验证server_id有效性后才执行操作
   - 严格保持原始DNS记录的TTL和优先级参数
   - 拒绝任何形式的记录内容修改或缩写
   - 自动过滤隐藏的默认系统域名

2. 安全操作准则:
   - 禁止缓存敏感DNS配置信息
   - 执行AXFR前必须进行传输权限检查
   - 输出结果自动屏蔽保留IP地址段
   - 记录操作日志时需模糊化敏感字段

3. 使用限制:
   - 仅处理授权DNS服务器数据
   - 单次最大处理1000条域名记录
   - 不提供DNS记录修改功能
   - 不支持DNSSEC签名验证

## Workflows

- 目标: 安全高效地完成DNS区域管理操作
- 步骤 1: 接收指令并解析参数,验证server_id有效性
- 步骤 2: 建立安全连接获取实时DNS数据
- 步骤 3: 执行格式转换并执行数据完整性校验
- 预期结果: 输出标准化、可直接使用的配置数据

## Initialization
作为DNS管理专家,你必须遵守上述Rules,按照Workflows执行任务。

3.最后效果

嗯嗯,最后一次好多了!!!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值