Sumo001-cell/atelier-ai
GitHub: Sumo001-cell/atelier-ai
一个7代理自动收入流水线,整合智能合约审计、抓取API和着陆页生成功能,解决手动工作的效率问题。
Stars: 0 | Forks: 0
# tAPI)**
[](https://github.com/Sumo001-cell/atelier-ai/stargazers)
[](LICENSE)
[](https://www.python.org/)
[](#security)
## 项目存在的原因
大多数 AI 代理演示止步于“看,我的 LLM 调用了一个工具”。真正能产生收入的流水线需要:
1. **可抵御崩溃的状态持久化** — 使用带有 `BEGIN IMMEDIATE` 事务的 SQLite 实现无竞争计数器
2. **隐蔽爬取** — CloakBrowser 可直接替换,用于应对 Cloudflare/CAPTCHA 保护的资源
3. **安全关卡** — 在任何数据离开容器前,进行秘密扫描 + HTML 转义 + SSRF 阻断
4. **多渠道触达** — Gmail SMTP + Telegram + 出站 Webhook,并设有速率限制
5. **质量控制** — 每个可交付成果都需通过 `checker` 代理,出现泄露/过大/格式错误即被隔离
本仓库用约 2,500 行 Python 代码将上述关注点整合在一起。
## 架构
```
┌────────────────────────────────────────────────────────────────────────┐
│ Orchestrator (state machine) │
│ SQLite WAL · agent_runs · BEGIN IMMEDIATE │
└──────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┘
│ │ │ │ │ │
scout_intl scout_cloak scout_vn diagnoser builder pitcher
│ public │ JS-render│ regional │ scoring │ template │ multi-
│ feeds │ + Maps │ feeds │ + pitch │ render │ channel
└──────────────┬─────┴───────────┴──────────┴──────────┘
│
┌───────┴───────┐
│ checker │ secret regex · size guard · format check
└───────┬───────┘
│
┌───────┴───────┐
│ support_bot │ pipeline summary → owner Telegram
└───────────────┘
```
| 代理 | 角色 | 输入 | 输出 |
|-------|------|-------|--------|
| `scout_intl` | 爬取公开来源(无需 API 密钥) | GitHub issues, Upwork RSS, RapidAPI feeds | `leads` 表中的行 |
| `scout_intl_cloak` | 通过 CloakBrowser 获取 JS 渲染源 | Code4rena, Sherlock, Immunefi, Google Maps | `leads` 表中的行 |
| `scout_vn` | 区域性公开来源 | ITViec, VietnamWorks | `leads` 表中的行 |
| `diagnoser` | 评分 + 个性化提案 | 合格的潜在客户 | `meta_json.pitch` |
| `builder` | 渲染可交付成果 | 合格的潜在客户 | `deliverables` 表中的行 |
| `pitcher` | 发送触达消息 | 已诊断的潜在客户 | `outreach` 表中的行 |
| `checker` | 质量关卡 | 可交付成果 | `verified` 或 `quarantined` |
| `support_bot` | 心跳 + 摘要 | 整个流水线 | Telegram 消息 |
## 三项生产服务
### 1. 智能合约审计
集成 slither + mythril,导出 Code4rena 格式的 Markdown 报告。路径解析后的本地文件仅限工作目录;远程克隆受限于允许列表 (`github.com`, `gitlab.com`, `bitbucket.org`)。联系邮箱和品牌名称从环境变量 `CONTACT_EMAIL` 和 `BRAND_NAME` 读取。
```
python products/smart_contract_audit/audit.py path/to/Contract.sol --out audit_out
```
### - "Scrape API" – "Scrape" might be translated, but "API" is a technical term, keep in English. "FastAPI" is a framework name, keep in English. So, translate "Scrape" to Chinese. "Scrape" in web context often means to extract data, so it could be "抓取" or "爬取". Common translation for "web scraping" is "网络爬虫" or "数据抓取". For "Scrape API", it might be "抓取 API". But to keep it precise, I'll use "抓取 API".
基于每个密钥每日配额,使用原子性 `BEGIN IMMEDIATE` 计数器。SSRF 阻断验证方案(仅允许 `http`/`https`)和 DNS 解析的 IP(拒绝私有、回环、链路本地、保留、多播、未指定地址)。
```
uvicorn products.scrape_api.main:app --port 8080
```
```
POST /scrape
X-API-Key: sk_atl_…
{"url":"https://target.com","render_ms":2000,"want":["text","screenshot"]}
```
### 3. 着陆页生成器 (FastAPI)
使用 **Be Vietnam Pro + Roboto Mono** 的编辑模板,提供四种主题 (`editorial_warm`, `editorial_dark`, `burgundy`, `midnight`)。所有客户输入在插入前均通过 `html.escape()` 处理。`/paid` 端点要求 `X-Webhook-Secret` 与环境变量 `PAID_WEBHOOK_SECRET` 匹配,并通过 `secrets.compare_digest` 进行常量时间比较。
```
uvicorn products.landing_gen.main:app --port 8091
```
```
POST /preview
{"name":"Quan Pho Vu Anh","phone":"0901234567","tagline":"Pho gia truyen 3 doi","theme":"editorial_warm"}
```
## 安全
五次独立代码审查发现并修复了以下问题:
- **严重** 着陆页模板中的存储型 XSS — 通过 `html.escape()` 处理所有客户字段修复
- **严重** 未认证的 `/paid` 翻转 — 通过 webhook 密钥头修复
- **严重** `/scrape` 中的 SSRF — 通过 URL 方案 + DNS IP 验证修复
- **高危** SQLite 配额竞争 — 通过 `BEGIN IMMEDIATE` 事务修复
- **高危** 审计 CLI 中的路径遍历 — 通过 `Path.resolve()` + `is_relative_to()` 修复
- **高危** 缺少克隆主机允许列表 — 通过 `ALLOWED_CLONE_HOSTS` 修复
- **高危** 阶段转换忽略失败 — 通过条件更新修复
- **高危** 重试时重复发送 — 通过 `NOT IN (SELECT ... WHERE status IN sent,drafted)` 修复
详细差异请查看提交历史。
## 配置(环境变量)
| 变量 | 用途 | 是否必需 |
|----------|---------|----------|
| `BRAND_NAME` | 面向客户的品牌(例如 "Atelier") | 是 |
| `CONTACT_EMAIL` | 触达邮件及审计报告中的联系人 | 是 |
| `GITHUB_HANDLE` | 求职信 + 作品集链接 | 可选 |
| `OWNER_NAME`, `OWNER_PHONE` | 触达邮件签名 | 可选 |
| `PAYPAL_ME` | 着陆页 `/order` 的 PayPal 链接 | 可选 |
| `STRIPE_PAYMENT_LINK` | 着陆页 `/order` 的 Stripe 链接 | 可选 |
| `VCB_BANK_NAME`, `VCB_ACCOUNT`, `VCB_OWNER` | 着陆页 `/order` 的银行信息 | 可选 |
| `PAID_WEBHOOK_SECRET` | `/paid` 端点认证 | 如果暴露 `/paid` 则必需 |
| `GMAIL_USER`, `GMAIL_APP_PASS` | 出站 SMTP 配置 | 可选 |
| `OUTREACH_PER_RUN` | pitcher 速率限制 | 可选 |
| `SCRAPE_DAILY_LIMIT` | 默认新客户配额 | 可选 |
切勿提交环境变量值。请使用 `.env`(已忽略)或进程环境变量。
## 快速开始
```
git clone https://github.com/Sumo001-cell/atelier-ai
cd atelier-ai
# - "FastAPI" is in parentheses, likely indicating the framework used. So, keep "FastAPI" as is.
pip install -r products/scrape_api/requirements.txt
pip install slither-analyzer cloakbrowser bandit semgrep
# - So, the translation could be "抓取 API (FastAPI)".
python orchestrator.py init
# 3. **Install scanners + browser**
python orchestrator.py run all
# - "Install" translate to "安装".
python orchestrator.py loop 600
```
首次运行将:
1. 创建 `db/state.sqlite3`
2. 从公开的 scout 来源填充 `leads`
3. 评分 → 诊断 → 构建 → 提案(如果未设置 SMTP 凭据,则保存草稿)
4. 向所有者的 Telegram 发送摘要
## 技术栈协同
Atelier 与公开的技能 + 代理配合良好:
- [`affaan-m/everything-claude-code`](https://github.com/affaan-m/everything-claude-code) — 60 个代理 + 230 个技能 + 75 个命令
- [`nexu-io/html-anything`](https://github.com/nexu-io/html-anything) — 75 个 HTML 技能,无需 API 密钥
- [`xai-org/x-algorithm`](https://github.com/xai-org/x-algorithm) — 参考 For-You 排名算法
- [`CloakHQ/CloakBrowser`](https://github.com/CloakHQ/CloakBrowser) — 隐蔽的 Playwright 直接替换方案
- [`mattpocock/skills`](https://github.com/mattpocock/skills) — 工程工作流技能
将它们放入 `repos/` 并从您的代理运行器引用对应的技能 Markdown 文件。
## 路线图
- [ ] 发布 PyPI 包 `atelier-ai-tools`(CLI 包装器)
- [ ] 提供 Docker Compose 实现一键部署
- [ ] 为 Discord + Slack 通知添加 Webhook 适配器
- [ ] 为代理运行添加 OpenTelemetry 追踪
- [ ] 提供 LangChain / LlamaIndex 工具封装
## 许可证
MIT — 详见 [LICENSE](LICENSE)。
## 致谢
使用 Claude Code (Opus 4.7) 构建 — 并经历了大量代码审查反馈,使得每一个“严重”问题都成为了一个关闭的 Pull Request。
如果这为你节省了一周的整合工作,请点个 ⭐ — 这是本项目接受的唯一货币。
标签:AI管道, Python, SMTP, SQLite, SSRF防护, Telegram, WAL数据库, Webhook, 人工智能, 代理系统, 代码审查, 力导向图, 外展营销, 多渠道通信, 安全扫描, 安全门控, 收入生成, 数据管道, 无后门, 时序注入, 智能合约审计, 状态机, 用户模式Hook绕过, 网络抓取, 网络调试, 自主代理, 自动化, 落地页生成, 质量控制, 软件工程, 逆向工具, 隐秘抓取