一个实验性的 DAG 流程审计 Skill _
·
目前项目的内容只是为了展示架构的使用,所以比较简单,一共 5 个 node:
- env_setup:根据开发框架下载依赖库,完成编译
- project_parsing:根据编译内容以及合约代码对项目的函数调用与业务流程进行解析与总结
- business_flow_analysis:分析合约项目在业务流程层面的安全问题
- fund_flow_analysis:分析合约在资金层面的安全问题
- summary_output:问题去重,确认,输出漏洞报告
其中 3 和 4 是并行执行的。
每个节点首先都需要在 workflow.dag.yaml 文件中进行登记(max_parallel_nodes 为最大并行数量):
version: 1
name: solidity_audit
runtime:
max_parallel_nodes: 2
nodes:
- id: env_setup
module: nodes/env_setup
- id: project_parsing
module: nodes/project_parsing
- id: fund_flow_analysis
module: nodes/fund_flow_analysis
- id: business_flow_analysis
module: nodes/business_flow_analysis
- id: summary_output
module: nodes/summary_output
为了避免 context 占用过高,每个 node 都采用 sub-agent 的形式进行调用,调用结果通过输出文件进行返回。所以每个节点之间的关系(在 DAG 中对应 edge 的概念)根据是节点间的输入输出文档进行关联,比如:Node1 的输出文档为 node1-output.md,Node2 的输入文档也是 node1-output.md,那么就认为存在一条 Node1 --> Node2 的边。
每个节点的输入输出文档定义在节点目录下的 node.yaml 文件中实现,比如
上游节点 project_parsing 的输出内容定义为
outputs:
- name: project_overview
path: project_overview.md
format: markdown
description: High-level project summary, contract roles, and business flow
- name: call_graph
path: call_graph.yaml
format: yaml
description: Compressed call graph per ast_compress_template.yaml
- name: business_flows
path: business_flows.yaml
format: yaml
description: Structured function call chains for each business flow
而它的下游节点 business_flow_analysis 的输入定义,刚好为上游节点的输出。
artifacts:
output_dir: ./acai-dag-auditor/artifacts/business_flow_analysis/
inputs:
- name: project_overview
source: upstream:project_parsing
path: project_overview.md
required: true
description: Project architecture, contract roles, and business flow
- name: business_flows
source: upstream:project_parsing
path: business_flows.yaml
required: true
description: Structured function call chains for each business flow
- name: call_graph
source: upstream:project_parsing
path: call_graph.yaml
required: true
description: Compressed call graph with function call edges and risk annotations
当上游节点执行完毕,且目录中所输出的文件满足了下游节点的输入文件要求时,Agent 将会启动 sub-agent 执行下游节点的任务。
更多推荐



所有评论(0)