【学习工作赛道】Yibiclaw CDN 下载器——升级新增skill版demo

### 1. Demo 简介

**是什么**:一款纯 Go 开发的多源加速下载器,单文件 exe 零安装,支持 GUI / CLI / 浏览器插件三模式运行。内置 GitHub/HuggingFace 国内镜像加速、16 线程并发、断点续传、分段降级、SHA256 校验。

**面向谁**:

- 在国内下载 GitHub Release / HuggingFace 模型文件困难的开发者

- 需要稳定下载大文件的 AI 从业者

- 想要替代迅雷/IDM 的普通用户

**核心功能**:

1. **多源镜像加速**:自动为 GitHub→ghproxy、HuggingFace→hf-mirror 匹配国内加速源,并发测速选最快

2. **智能下载策略**:按文件大小自动选策略(单线程→16线程→分段降级→换镜像),断点续传 2 秒保存一次

3. **三模式运行**:双击打开 Web GUI / 命令行 JSON 输出 / Chrome Native Messaging 浏览器集成

4. **URL 智能检测**:粘贴网页地址自动识别,提供 CDN 加速访问按钮

5. **工程化细节**:纯 Go 图标嵌入、无终端窗口、原生目录选择器、下载完成打开目录
6. **升级新增skill:CDN下载器做成了skill,并在trae work 验证成功

**界面截图**:

> 【截图 1:Web UI 主界面 — 粘贴链接、选择保存路径、下载按钮】

> 【截图 2:下载进度条 — 实时速度、百分比、ETA】

> 【此处插入截图 3:下载完成 — "打开目录"按钮 + SHA256 校验结果】

> 【截图 4:CLI 模式 — 命令行进度条 + JSON 输出】

### 2. Demo 创作思路

**灵感来源**:

我在做 AI 智能插座产品 YibiClaw 时,需要让 AI 自动下载安装各种企业应用。但在中国大陆网络环境下,GitHub Release 下载极慢(100MB 文件可能要 30 分钟),HuggingFace 模型几乎无法直连,浏览器下载不支持断点续传,现有工具要么收费有广告(迅雷),要么配置复杂(aria2),没有一款真正好用的方案。

**想解决的问题**:

1. **GitHub/HuggingFace 下载慢**:国内开发者每天面对的痛点,影响工作效率

2. **断线重传从头开始**:浏览器下载中断后需重新下载,大文件尤为痛苦

3. **工具碎片化**:普通用户用浏览器、开发者用命令行、没有统一方案

4. **AI 无法自动下载**:现有下载工具不支持 JSON 机器可读输出,AI 无法调用

**为什么做这个方向**:

- **真实刚需**:我自己每天都在用,解决了自己最痛的问题

- **技术挑战丰富**:多线程下载、断点续传、镜像测速、分段降级,每个都是独立的技术难点

- **AI 生态卡位**:作为 YibiClaw AI 智能插座的下载引擎,是 AI 自动化的基础设施

- **差异化明确**:单文件零安装 + 三模式 + 中国镜像优化,市面没有同类产品

### 3. Demo 体验地址

**方式一:下载 exe 直接体验(推荐)**

https://github.com/yanqj1218/yibi-CDN-down/releases/download/v1.0.0/yibi-CDN-down.exe

>

> 下载后双击 `yibi-CDN-down.exe`,自动打开浏览器 Web UI

>

> 测试链接推荐:

https://lf-cdn.trae.com.cn/obj/trae-com-cn/pkg/app/releases/stable/2.3.54056/win32/TRAE_Work_CN-Setup-x64.exe

> - 测速文件: `https://speed.hetzner.de/100MB.bin\`

**方式二:演示视频**

### 4. TRAE 实践过程

#### 4.1 开发工具

全程使用 **TRAE IDE** 开发,从架构设计到功能实现、调试修 bug,全部通过 TRAE 对话完成。

#### 4.2 开发流程

**第一步:需求拆解与架构设计**

向 TRAE 描述需求:多源加速下载器,Go 语言,单文件 exe,支持 GUI/CLI/NM 三模式。TRAE 帮我规划了完整的项目结构:

```

yibi-CDN-down/

├── main.go # 入口:模式分发

├── engine/ # 下载核心引擎

│ ├── task.go # 编排器(策略选择/镜像轮转/校验)

│ ├── http.go # 多线程下载(Range/WriteAt/进度)

│ ├── segment.go # 分段降级(chunk细分重试)

│ ├── resume.go # 断点续传(元数据持久化)

│ ├── mirror.go # 多源镜像(规则匹配/测速选优)

│ └── verify.go # SHA256 流式校验

├── ui/ # 用户界面

│ ├── cli.go # CLI模式

│ ├── gui.go # Web UI HTTP服务

│ ├── index.html # 嵌入式前端

│ └── picker_windows.go # 原生目录选择器

├── bridge/ # 浏览器通信桥

│ └── native_messaging.go

├── brand/ # 品牌系统

├── tools/addicon/ # 纯Go图标嵌入工具

└── nmtest/ # NM测试工具

```

> 【入截图:TRAE IDE 中项目结构 + 对话过程】

**第二步:核心引擎开发**

用 TRAE 逐步实现下载核心:

- `engine/http.go`:多线程 Range 下载,64KB 缓冲区 WriteAt 直接写文件偏移

- `engine/segment.go`:分段降级算法,chunk 失败自动细分 4 段重试,最多 16 段后换镜像

- `engine/resume.go`:2 秒间隔持久化进度到 JSON 文件,中断后自动加载

- `engine/mirror.go`:镜像规则引擎 + 并发 HEAD 测速

- `engine/verify.go`:256KB 流式 SHA256 校验

> 【截图:TRAE 中编写 engine 核心代码的对话】

**第三步:三模式入口开发**

- GUI 模式:HTTP 服务 + SSE 实时进度推送 + go:embed 嵌入 HTML

- CLI 模式:文本进度条 + JSON 机器可读输出 + 专家模式(-expert)

- Native Messaging:Chrome NM 协议 + WaitGroup 等待下载完成

> 【截图:TRAE 中开发 GUI/CLI/NM 三模式的对话】

**第四步:Windows 工程化(踩坑最多)**

这部分踩了很多坑,都在 TRAE 的帮助下逐一解决:

**坑 1:windowsgui 模式 CLI 无输出**

- 问题:`-H windowsgui` 编译的 exe 不弹黑框,但 CLI 模式 `fmt.Println` 输出到 nowhere

- 解决:TRAE 帮我写了 `attachParentConsole()` — 用 `GetStdHandle` + `GetFileType` 检测 stdout 状态,仅当无效时才 `AttachConsole`

**坑 2:纯 Go 图标嵌入**

- 问题:Go 编译的 exe 无图标,`rsrc` 工具需额外安装且 GitHub 网络不通

- 解决:TRAE 帮我用 `syscall.NewLazyDLL` 直接调用 Windows `UpdateResourceW` API,手写 ICO 格式

**坑 3:目录选择器不弹出**

- 问题:Web UI 点"浏览"按钮无反应

- 解决:`SHBrowseForFolderW` 需要 COM 在同一线程,但 Go goroutine 会迁移线程。加 `runtime.LockOSThread()` 修复

**坑 4:.7z 文件被误判为网页**

- 问题:服务器返回 `text/html` 中转页,.7z 下载被拦截

- 解决:增加 URL 扩展名优先判断,80+ 种扩展名直接判定为下载

**坑 5:Native Messaging 退出丢下载**

- 问题:浏览器关闭后 stdin EOF,下载器立即退出,下载中断

- 解决:`activeDownloads sync.WaitGroup` 等待所有下载完成

> 【截图:TRAE 中调试 Windows 问题的对话】

**第五步:测试与验证**

全部 17 项验收标准通过:

- :white_check_mark: 小文件/中文件/大文件下载

- :white_check_mark: 断点续传(中断后继续)

- :white_check_mark: SHA256 校验

- :white_check_mark: 多源镜像竞速

- :white_check_mark: CLI JSON 输出

- :white_check_mark: GUI 启动 + 品牌显示

- :white_check_mark: Native Messaging 协议

- :white_check_mark: 浏览目录选择器

- :white_check_mark: 下载完成打开目录

- :white_check_mark: URL 智能检测 + CDN 加速

> 【截图:TRAE 中运行测试 + 验证结果的对话】

#### 4.3 Session ID

> **【重要】双击 TRAE 对话复制 Session ID,至少 3 个**

>

> Session ID 1:

.1681622753355188:6aae945b9d29bb4385ed81ac4a9feda9_6a511e9f06bf736b75793a66.6a511ecd06bf736b75793a68.6a511ecc7b7993051a2c086a:Trae CN.T(2026/7/11 00:33:17)

Session ID 2:

.1681622753355188:e7dc12886f4542e146f0072c5f12bd74_6a511e9f06bf736b75793a66.6a51ca7db93a07640b0e23ee.6a51ca7c28c2675970a97280:Trae CN.T(2026/7/11 12:45:49)

> Session ID 3:

.1681622753355188:40f3cc08d3ce6b63d5e3c4565dd4d9a0_6a511e9f06bf736b75793a66.6a51e253b93a07640b0e2afd.6a51e25228c2675970a97284:Trae CN.T(2026/7/11 14:27:31)

Session ID 3:

.1681622753355188:a64913686b0d95411936303def9ca27c_6a511e9f06bf736b75793a66.6a5752805a1eda53a8b02885.6a57527fc5e41374a2547a05:Trae CN.T(2026/7/15 17:27:28)

#### 4.4 技术亮点总结

| 亮点 | 技术 |

|------|------|

| 零依赖单文件 | 纯 Go 标准库,go:embed 嵌入 HTML,7MB exe |

| 三模式运行 | GUI/CLI/Native Messaging 覆盖全场景 |

| 多源镜像加速 | GitHub→ghproxy, HuggingFace→hf-mirror |

| 分段降级算法 | chunk失败自动细分4段重试,最多16段后换镜像 |

| 断点续传 | 2秒间隔持久化元数据,中断自动续传 |

| AI 就绪 | JSON输出 + 专家模式,可被AI直接调用 |

| 纯Go图标嵌入 | UpdateResource API,无需外部工具 |

| windowsgui兼容 | AttachConsole + GetFileType 智能检测 |

### 5. 报名帖链接

https://forum.trae.cn/t/topic/116459

2 个赞

你好!我是集客智库·项目超市的运营。在 Trae 大赛看到你的「【学习工作赛道】Yibiclaw CDN 下载器——升级新增skill版demo」,特意体验了一下 Demo,完成度很高,交互也很顺滑,非常惊喜!想邀请你的项目入驻我们集客智库·项目超市——这里能帮项目找到合伙人、客户和投资。

大赛的结果只代表一轮比赛的反馈,不代表你项目的真实价值。好项目总会发光,我们希望你的项目能借助集客超市永远在线、持续被关注,最终拿到你想要的资源和投资。

入驻方式:微信小程序搜索「集客智库」注册,在“项目超市”上传项目,提交后告诉我们,我们免费帮你上架推广。整个过程目前完全免费。期待在集客智库看到你的项目!有任何疑问欢迎随时找我~

2 个赞