“检测结果出来了,没有一丝人工添加,全是 AI”
之前这个 Dune Query 约 95% 工作量都是由 AI 完成。这篇文章主要介绍 DuneAI ,以及如何使用 AI 高效进行提示词工程(AI 互调?)
第一部分:Dune AI 使用简单介绍
@Dune 内置的 AI 能够帮助用户使用自然语言快速生成 SQL 查询。在新建查询(Query)后可以在代码块底部看到提示词输入口
使用要点:
1. 使用英文清楚地表达想要查询的内容,提供上下文,包括数据库、时间范围、具体的合约地址、代币符号等关键信息
- 示例:"List all trades involving WETH (0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2) on Uniswap v3 in the past 24 hours"
2. 根据初始结果调整查询需求
- Dune AI 内置了测试用例,确保生成的查询可以正常运行
- 使用查询代码顶部"fix"功能,可以基于已有查询进行修改和微调
具体介绍可见官方文档:
第二部分:多 Agent 提示词工程
在实际工作中,单独依赖一个 AI 工具往往难以得到最佳结果。这里介绍的一套多 Agent 协作的提示词工程(Prompt Engineerimg)流程,可以显著提高查询质量和效率,并扩展到其他业务场景中
基本工作流程
1. 任务描述:首先明确表达业务需求
2. AI1处理:使用通用AI(如ChatGPT或DeepSeek)将需求转化为专业提示词
3. AI2执行:将优化后的提示词输入专业AI(如Dune AI)执行
4. 结果评估:检查初步结果是否满足需求
5. 迭代优化:根据需要调整提示词,重复上述过程
可以根据需求灵活选择贴近业务场景的 AI2,如使用 Dune AI 生成查询、 Copilot Claude 3 完成编程任务、 Grok 3 检索整理推特信息等
例如我的第一阶段提示词为:
“
我需要分析Solana链上特定代币的交易行为,找出在指定时间范围内:
1. 买入次数超过N次的地址
2. 每次买入金额大于X美元的地址
3. 净流入(总买入-总卖出)大于Y美元的地址
4. 卖出次数不超过Z次的地址
最终需要返回这些地址的详细信息,包括:
- 钱包地址
- 净流入金额
- 买入次数
- 卖出次数
- 首次交易时间
- 最后一次交易时间
- 代币地址
请帮我把这个需求转化为Dune AI能够理解的专业提示词格式,包括所有必要的模式和参数定义;使用英文;相关数据库文档:(我这里提供了 中的描述)
”
之后我对第二阶段提示词进行了微调,并交由 Dune AI 生成查询;使用的第二阶段提示词我放在了评论区
希望这一篇文章对你有帮助
(是的,这篇文章也使用了这个技巧,图都是用 AI 生成了 mermaid 语法后用 AI 画的)

第二阶段 Prompt
Scheme: `dex_solana.trades`
Scheme Attributes:
block_time: timestamp, UTC timestamp of trade
amount_usd: double, unsigned USD value of the token traded
token_bought_mint_address: string, if token_mint_address here then the trade is identified as buy
token_sold_mint_address: string, if token_mint_address here then the trade is identified as sell
trader_id: string, wallet address
token_
Required Inputs:
token_mint_address: string, solana token mint address to filter;
start_datetime: date, start time;
end_datetime: date, end time. Both in utc time;
min_num_buys: number, minimal total number of buys within the time range;
min_amount_per_buy: number, minimal amount for each buy, in USD;
min_net_inflow: number, minimal amount summing inflow(total buy - total sell), in USD;
max_num_sells: number, maximal total number of sells within the time range;
Required Output :
wallet_address: strings, wallet addresses matching above fields .
net_inflow:number, signed total inflow
num_buys: number, number of buys within time range
num_sells:number, number of sells within time range
first_trade_datetime:date, datetime first trade within the time range
last_trade_datetime:date, last trade within the time range
token_mint_address: string
Write the SQL for me given the above requirements. Wrap the input parameters using double curly brackets {{}} in the SQL lines as place holders.
37,17 k
18
Le contenu de cette page est fourni par des tiers. Sauf indication contraire, OKX n’est pas l’auteur du ou des articles cités et ne revendique aucun droit d’auteur sur le contenu. Le contenu est fourni à titre d’information uniquement et ne représente pas les opinions d’OKX. Il ne s’agit pas d’une approbation de quelque nature que ce soit et ne doit pas être considéré comme un conseil en investissement ou une sollicitation d’achat ou de vente d’actifs numériques. Dans la mesure où l’IA générative est utilisée pour fournir des résumés ou d’autres informations, ce contenu généré par IA peut être inexact ou incohérent. Veuillez lire l’article associé pour obtenir davantage de détails et d’informations. OKX n’est pas responsable du contenu hébergé sur des sites tiers. La détention d’actifs numériques, y compris les stablecoins et les NFT, implique un niveau de risque élevé et leur valeur peut considérablement fluctuer. Examinez soigneusement votre situation financière pour déterminer si le trading ou la détention d’actifs numériques vous convient.