Pelz01/audit-agent
GitHub: Pelz01/audit-agent
一款自主智能合约安全代理,自动发现 GitHub 上的 Solidity 仓库,使用 Slither 扫描漏洞,通过 AI 生成可读报告并提交 GitHub Issue,最终铸造链上 ERC-8004 审计凭证。
Stars: 0 | Forks: 0
# AuditAgent 🤖
自主智能合约安全扫描器,用于搜寻未经审计的 Solidity 仓库,使用 Slither 进行扫描,通过 Pollinations AI 解读发现的问题,提交 GitHub Issues,并铸造链上 ERC-8004 凭证。
## 功能
- **自动发现**:在 GitHub 上查找未经审计的 Solidity 仓库
- **Slither 扫描**:来自 Trail of Bits 的静态分析
- **AI 解读**:Pollinations AI (`qwen-coder`) 生成人类可读的报告
- **Issue 提交**:自动在 GitHub 上提交安全问题
- **链上凭证**:通过 Synthesis API 在 Base 上铸造 ERC-8004 代币
- **仪表盘**:实时统计和审计历史
## 架构
```
audit-agent/
├── agent/ # Autonomous agent modules
│ ├── discovery.py # GitHub API search
│ ├── scanner.py # Slither integration
│ ├── interpreter.py # Pollinations analysis
│ ├── reporter.py # GitHub Issues
│ ├── receipt.py # ERC-8004 minting
│ └── main.py # Orchestrator
├── api/ # FastAPI backend
│ ├── server.py # REST API
│ ├── models.py # Pydantic models
│ └── storage.py # JSON persistence
├── frontend/ # Dashboard
│ └── index.html # Single-page UI
└── audits/ # Audit records (JSON)
```
## 环境变量
| 变量 | 必填 | 描述 |
|----------|----------|-------------|
| `GITHUB_TOKEN` | 是 | 具有 `repo` 权限范围的 GitHub PAT |
| `POLLINATIONS_API_KEY` | 是 | Pollinations AI API 密钥 |
| `SYNTHESIS_API_KEY` | 是 | 用于 ERC-8004 的 Synthesis API 密钥 |
| `PORT` | 否 | 服务器端口(默认:8000)|
| `RUN_API` | 否 | 设置为 `true` 以启动 API 服务器 |
| `AUDIT_INTERVAL_HOURS` | 否 | 审计间隔小时数(默认:6)|
| `AUDIT_MAX_RESULTS` | 否 | 每个周期的最大仓库数(默认:10)|
| `AUDIT_ISSUE_THRESHOLD` | 否 | 提交 Issue 的严重+高危阈值(默认:1)|
| `AUDIT_DAEMON` | 否 | 持续运行(默认:true)|
## 设置
```
# 克隆并安装
git clone https://github.com/Pelz01/audit-agent.git
cd audit-agent
pip install -r requirements.txt
# 设置环境变量
export GITHUB_TOKEN=ghp_xxx
export POLLINATIONS_API_KEY=pollinations-xxx
export SYNTHESIS_API_KEY=sk-synth-xxx
# 仅运行 agent
python -m agent.main
# 仅运行 API server
python -m api.server
# 运行两者 (Railway)
export RUN_API=true
python -m agent.main
```
## API 端点
| 端点 | 描述 |
|----------|-------------|
| `GET /` | 前端仪表盘 |
| `GET /audits` | 分页审计列表 |
| `GET /audits/{id}` | 单个审计详情 |
| `GET /stats` | 聚合统计 |
| `GET /health` | Agent 健康状态 |
## 演示脚本(2 分钟)
1. **展示仪表盘** — 访问已部署的 URL,展示审计历史
2. **触发实时审计** — 在测试仓库上运行 `python -m agent.main`
3. **展示 Slither 运行** — 包含发现结果的终端输出
4. **展示 AI 报告** — 生成的安全分析
5. **展示 GitHub Issue** — 指向已提交 Issue 的链接
6. **展示链上凭证** — BaseScan 交易链接
## 部署
1. 将 GitHub 仓库连接到 Railway
2. 在 Railway 仪表盘中设置环境变量
3. 部署 — Procfile 启动 uvicorn 服务器
4. 访问 `https://your-app.railway.app`
## 安全防护措施
- 仅限公共仓库
- 仅限活跃仓库(90 天内有提交)
- 频率限制:每天最多 10 次审计
- 在 Issue 中明确标识 Agent 身份
- 无钱包/金融交互
- 除提交 Issue 外均为只读
## 技术栈
- **Agent**:Python 3.11+
- **扫描器**:Slither (Trail of Bits)
- **AI**:Pollinations AI (`qwen-coder`)
- **链上**:ERC-8004 / Synthesis API (Base)
- **后端**:FastAPI + Uvicorn
- **存储**:JSON 文件(无数据库)
- **前端**:纯 HTML/CSS/JS
- **部署**:Railway
## 许可证
MIT
标签:AI代码解释, AV绕过, Base链, DeFi安全, DevSecOps, DLL 劫持, ERC-8004, FastAPI, GitHub自动管理, Homebrew安装, Python, Slither, Solidity, Web3安全, 上游代理, 云安全监控, 人工智能, 以太坊, 区块链, 大语言模型, 对称加密, 无后门, 智能合约安全, 用户模式Hook绕过, 自动化审计, 自动化运维, 自治代理, 逆向工具, 链上凭证, 静态分析