[Paper] SolAgent:用于 Solidity 代码生成的专用多代理框架
发布: (2026年1月30日 GMT+8 22:17)
7 分钟阅读
原文: arXiv
Source: arXiv - 2601.23009v1
概述
智能合约驱动当今的去中心化应用,但在没有错误或安全缺陷的情况下编写它们是极其困难的。本文介绍了 SolAgent,一个将大型语言模型与真实的 Solidity 工具(Forge 编译器和 Slither 分析器)相结合的多代理系统,能够自动生成、测试并强化合约代码。作者展示了这种“类人”工作流相较于现有基于 LLM 的代码生成器,在功能正确性和安全性方面都能显著提升。
关键贡献
- 双环路精炼架构:内部循环使用 Forge 编译生成的代码以确保功能正确性,外部循环运行 Slither 剪除安全漏洞。
- 文件系统感知代理:系统能够在多文件 Solidity 项目中导航,解析导入,并自动管理项目级依赖。
- SolEval+ 基准:一个新创建、严格策划的真实合约套件,用于评估生成质量和安全性。
- 最先进的性能:SolAgent 达到 64.39 % 的 Pass@1,超过最佳公开 LLM 和 AI IDE 的两倍,同时相较于人工编写基线,漏洞率降低最高 39.77 %。
- 模型蒸馏流水线:发布高质量生成轨迹,以便更小的开源模型可以微调,继承 SolAgent 的安全感知行为。
方法论
- 提示与初始生成 – 主 LLM 代理接收自然语言规范(例如 “ERC‑20 代币带时间锁”),并输出一套初始的 Solidity 文件。
- 内部循环(功能检查) – 将生成的文件送入 Forge 编译器。编译错误会触发反馈信息,LLM 会重写出错的部分,直至合约成功编译。
- 外部循环(安全检查) – 编译成功后,使用 Slither 静态分析器扫描合约套件。检测到的问题(重入、未初始化存储等)会被汇总成简明报告,LLM 根据报告修补代码。
- 文件系统代理 – 次级代理监控项目目录,添加缺失的 import,创建辅助库,并确保整体项目结构符合 Solidity 的规范。
- 迭代收敛 – 内部循环和外部循环交替进行,直至编译和安全检查均通过,或达到最大迭代次数上限。
- 数据收集与蒸馏 – 每条成功的轨迹(提示 → 代码 → 改进)都会被记录。这些日志随后用于微调小模型,使该方法更加普及。
整个流水线自动运行,仅需提供原始规范作为输入。
结果与发现
| 指标 | SolAgent | 最佳公开 LLM | GitHub Copilot | 人类基准 |
|---|---|---|---|---|
| Pass@1(功能正确性) | 64.39 % | ~25 % | ~30 % | 70 %(手动) |
| 漏洞减少(相对于人类) | ‑39.77 % | +12 %(更多漏洞) | +8 % | 0 % |
| 平均精炼循环次数 | 3.2 | 5.8 | 5.1 | N/A |
关键要点
- 双回路设计使功能通过率提升约 2.5 倍,相较于原始 LLM 生成。
- 面向安全的反馈显著削减常见 Solidity 漏洞,甚至优于基准测试中谨慎的人类作者。
- 系统具备可扩展性:即使使用仅 2 GPU 的普通配置,完整的 SolEval+ 套件(≈1,200 个合约)也能在 6 小时内处理完毕。
实际意义
- 更快的原型设计 — 开发者可以将高级规范输入 SolAgent,并在几分钟内获得可直接编译、经过安全审查的合约,从而将审计周期缩短数周。
- 集成 CI/CD — 内外循环可以封装为 pre‑commit hook 或 GitHub Action,自动拒绝编译失败或引入 Slither 警告的 PR。
- 降低审计成本 — 通过提前捕获大量底层漏洞,企业可以将正式审计的重点放在业务逻辑正确性上,而不是基础安全检查。
- 开源民主化 — 已发布的轨迹使初创公司能够对轻量模型(如 LLaMA‑7B)进行微调以供内部使用,无需购买昂贵的专有大模型。
- 教育与入职培训 — 编程训练营可以将 SolAgent 用作教学助理,实时指出合约无法编译或存在漏洞的原因,加速学习。
限制与未来工作
- 工具链依赖 – SolAgent 的成功取决于 Forge 和 Slither;依赖尚未被这些工具支持的更新 Solidity 特性的合约可能会被漏掉。
- 对大规模代码库的可扩展性 – 当前实现能够处理典型的代币合约和适度的库;要扩展到多兆字节的 DeFi 套件可能需要更智能的依赖缓存。
- 安全分析深度 – Slither 是静态分析器;它无法检测仅在运行时出现的问题,如 gas 限制攻击或复杂的跨合约不变式。未来版本可以集成符号执行或形式化验证工具。
- 提示敏感性 – 初始规格的质量仍然影响结果;模糊的提示可能导致实现分歧。改进提示工程指南是一个开放的研究方向。
总体而言,SolAgent 展示了将 LLM 创造力与领域特定工具相结合,能够弥合快速代码生成与生产级安全之间的鸿沟——为其他安全关键软件领域提供了有前景的蓝图。
作者
- Wei Chen
- Zhiyuan Peng
- Xin Yin
- Chao Ni
- Chenhao Ying
- Bang Xie
- Yuan Luo
论文信息
- arXiv ID: 2601.23009v1
- 分类: cs.SE
- 出版日期: 2026年1月30日
- PDF: 下载 PDF