“检测结果出来了,没有一丝人工添加,全是 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,18 tis.
18
Obsah na této stránce poskytují třetí strany. Není-li uvedeno jinak, společnost OKX není autorem těchto informací a nenárokuje si u těchto materiálů žádná autorská práva. Obsah je poskytován pouze pro informativní účely a nevyjadřuje názory společnosti OKX. Nejedná se o doporučení jakéhokoli druhu a nemělo by být považováno za investiční poradenství ani nabádání k nákupu nebo prodeji digitálních aktiv. Tam, kde se k poskytování souhrnů a dalších informací používá generativní AI, může být vygenerovaný obsah nepřesný nebo nekonzistentní. Další podrobnosti a informace naleznete v připojeném článku. Společnost OKX neodpovídá za obsah, jehož hostitelem jsou externí weby. Držená digitální aktiva, včetně stablecoinů a tokenů NFT, zahrnují vysokou míru rizika a mohou značně kolísat. Měli byste pečlivě zvážit, zde je pro vás obchodování s digitálními aktivy nebo jejich držení vhodné z hlediska vaší finanční situace.