aria2-json-rpc

⬇️ 自然语言操控的下载管理中枢

基于 aria2 的 JSON-RPC 客户端,通过自然语言命令管理下载任务,支持 HTTP/FTP/磁力链/种子等多种协议,MIT 开源授权。

收藏
18.4k
安装
4k
版本
2.0
CLS 安全性认证2026-05-14
点击查看完整报告 >

使用说明

核心用法

aria2-json-rpc 是一个面向 AI Agent 的 aria2 下载管理器控制技能,通过封装 JSON-RPC 2.0 协议,让用户能够以自然语言指令操控下载任务。核心工作流分为三步:首先通过 config_loader.py test 检测配置状态,若未就绪则引导用户初始化配置(推荐 --user 模式以持久化保存),最后通过 rpc_client.py 执行具体的 aria2 操作。

该技能支持完整的下载生命周期管理:添加任务(aria2.addUri)、状态查询(aria2.tellStatus/tellActive)、任务控制(pause/unpause/remove)以及全局统计(getGlobalStat)。特别支持种子文件和磁力链下载,并提供 WebSocket 实时监听作为可选功能。

显著优点

1. 自然语言交互:内置命令映射器,将"下载这个文件""暂停所有任务"等口语化指令自动转换为精确的 RPC 调用,大幅降低使用门槛。

2. 配置管理智能:采用四级配置优先级(环境变量 > 项目配置 > 用户配置 > 默认值),--user 模式确保技能更新后配置不丢失,兼顾灵活性与持久性。

3. 安全设计到位:敏感信息(RPC Secret)在显示时自动脱敏为 ******;支持 HTTPS 加密通信和 Token 认证;所有文件操作均使用标准库,无危险函数。

4. 依赖极简:核心功能仅依赖 Python 3.6+ 标准库(urllib、json、os),WebSocket 为可选依赖,部署成本极低。

5. 文档完善:提供执行指南、方法参考、故障排查三层文档体系,AI Agent 可按图索骥完成复杂操作。

潜在缺点与局限性

1. 前置依赖较重:必须自行部署并配置 aria2 服务端(RPC 模式),技能本身仅为客户端,无法独立工作。对无运维经验的用户存在门槛。

2. 路径验证不足:用户提供的种子文件路径仅做 os.path.isfile 基础检查,缺乏严格的目录遍历防护,存在潜在的文件越界读取风险。

3. 权限管理粗放:初始化配置时未自动设置文件权限(如 600),依赖用户手动执行 chmod,可能导致敏感配置泄露。

4. 错误处理依赖服务端:所有业务逻辑错误(如无效 URL、磁盘空间不足)均来自 aria2 服务端返回,技能层仅做透传,调试体验受限于服务端配置。

5. WebSocket 功能受限:实时监听功能需要额外安装 websockets 库,且对 Python 版本有匹配要求,部分环境可能无法启用。

适合的目标群体

  • NAS/服务器用户:已在设备上部署 aria2,希望通过自然语言快速管理下载任务
  • 自动化工作流开发者:需要将下载能力集成到 AI Agent 或自动化脚本中
  • 技术爱好者:熟悉 aria2 生态,追求更优雅的交互方式而非手动构造 RPC 请求
  • 多设备同步用户:利用用户级配置实现跨项目、跨会话的持久化设置

使用风险

1. 网络暴露风险:若 aria2 服务端配置不当(如监听 0.0.0.0 且无 Secret),配合此技能可能导致未授权下载控制,建议严格限制 RPC 监听地址。

2. 配置泄露风险~/.config/aria2-skill/config.json 默认权限依赖 umask,在多用户环境可能可读,需手动加固。

3. 依赖项版本冲突:WebSocket 功能对 websockets 库版本敏感,与某些 Python 环境可能存在兼容性问题。

4. 下载内容合规性:技能本身不审查下载内容,用户需自行确保种子/磁力链来源合法,避免版权或法律风险。

安全解读

核心用法

aria2-json-rpc 是一款面向 AI 助手的 aria2 下载管理封装工具,通过 Python 脚本桥接自然语言指令与 aria2 JSON-RPC 2.0 接口。用户无需手动构造 RPC 请求,仅需通过 python3 scripts/rpc_client.py 配合标准化命令即可完成下载任务管理。

典型工作流
1. 配置检测:优先运行 python3 scripts/config_loader.py test 验证连接

2. 初始化配置:失败时引导用户执行 init --user 生成配置文件

3. 执行任务:使用封装脚本执行下载、暂停、查询等操作

主要功能覆盖

  • 下载管理:HTTP/HTTPS/FTP/磁力链/BT 种子/Metalink 多协议支持
  • 状态监控:实时查看进度、速度、 peers 连接数,支持 GID 精准查询
  • 批量控制:暂停/恢复全部任务、清理已完成记录、修改全局选项
  • 配置灵活:支持本地/用户级配置、环境变量覆盖、反向代理场景

显著优点

  • 零 RPC 知识门槛:AI 助手无需理解 JSON-RPC 2.0 协议细节,脚本自动处理请求构造、认证头生成、响应解析
  • 多层级配置隔离:用户级配置(~/.config/aria2-skill/)与项目级配置分离,更新安全不丢失
  • 企业级传输安全:原生支持 HTTPS + RPC Secret Token 认证,敏感信息日志脱敏显示
  • 最小依赖设计:核心功能仅依赖 Python 3.6+ 标准库(urllib/json),无供应链攻击风险
  • 协议完整覆盖:除基础 HTTP 外,完整支持 WebSocket 实时通知(可选 websockets 库)

潜在局限

  • 前置依赖重:必须自行部署并配置 aria2 守护进程(rpc-listen-port、enable-rpc 等),对新手有一定门槛
  • 无图形界面反馈:纯命令行交互,下载进度需主动查询而非实时推送(除非启用 WebSocket)
  • 配置明文存储:RPC Secret 以明文保存在 JSON 文件,建议配合文件权限 600 及系统密钥链使用
  • URL 校验宽松:当前版本对目标 URL 格式校验有限,极端场景存在 SSRF 理论风险
  • 网络单点故障:所有操作依赖 aria2 服务可用性,无内置断线重试或 fallback 机制

适合人群

  • 自托管用户:已运行 NAS/服务器 aria2 实例,希望通过自然语言快速管理下载
  • 开发者/运维:需在 CI/CD 或脚本中批量触发下载任务的技术团队
  • AI Agent 集成方:构建支持下载管理的智能助手,需标准化、可审计的 RPC 封装层
  • 隐私敏感用户:拒绝第三方下载云服务,坚持数据本地化管理的场景

常规风险

| 风险类别 | 说明 | 缓解建议 |
|---------|------|---------|
| 凭证泄露 | config.json 明文存储 secret | 设置 600 权限,使用 HTTPS,考虑系统密钥管理服务 |
| 中间人攻击 | HTTP 明文传输或证书未校验 | 强制 HTTPS,验证服务器证书指纹 |
| 配置漂移 | `npx skills add` 更新时覆盖本地配置 | 始终使用 `--user` 初始化用户级配置 |
| 误操作覆盖 | 批量暂停/恢复缺乏二次确认 | 生产环境建议配合操作日志审计 |
| 服务可用性 | aria2 进程崩溃导致命令失败 | 部署健康检查与自动重启机制 |

aria2-json-rpc 内容

references文件夹
scripts文件夹
examples文件夹
手动下载zip · 47.7 kB
aria2-methods.mdtext/markdown
请选择文件