Communitygithub.com

AutoDL 同步技能

通过提供的脚本实现项目与 AutoDL 实例之间的同步,包括代码上传和结果下载。

AutoDL 同步技能 是什么?

AutoDL 同步技能是一个专为 AI 开发者设计的工具,用于简化本地项目与 AutoDL 远程实例之间的代码和文件同步流程。它通过一系列 shell 脚本(如 push-code.sh、pull-results.sh、setup-key.sh)自动处理项目同步,而无需手动构造 scp 或 rsync 命令。该技能支持 Git 仓库根目录或自定义 `.autodl-sync` 配置文件来动态确定项目根目录,避免硬编码路径。用户可以使用该技能上传代码、下载训练结果、设置 SSH 公钥认证,并利用配置控制上传/下载的排除规则、删除行为和文件大小限制。该技能强调安全性,禁止泄露 SSH 私钥,并严格遵循项目配置中的同步策略。适用于需要在本地开发环境与 AutoDL 实例之间频繁同步代码和结果的场景,特别是在 Cursor 或 Claude Code 等 AI 编码代理中作为工作流的一部分自动执行。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add 1zqqx/skill-autodl-auto-sync

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

AutoDL 同步

使用此技能附带的脚本进行项目同步。

当这些脚本可以执行所需操作时,请勿手动构造 scp 或 rsync 命令。

项目发现

同步脚本动态确定项目根目录。

它们优先使用 Git 仓库根目录。如果当前目录不在 Git 仓库内,则向上搜索 .autodl-sync。

请勿硬编码本地项目路径。

项目配置

项目特定的同步设置存储于:

<项目根目录>/.autodl-sync

该配置可以定义:

  • 远程 SSH 主机
  • 远程基础目录
  • 远程项目名称
  • 显式远程目录
  • Git 感知或显式上传排除规则
  • 额外上传排除规则
  • 选择性或全项目结果下载
  • 拉取排除规则、最大文件大小、删除和覆盖行为
  • rsync 行为

通过提供的脚本读取同步设置,而不是重复配置逻辑。

上传代码

当用户要求:

  • 同步代码
  • 上传代码
  • 部署当前源代码
  • 更新 AutoDL 副本

运行:

scripts/push-code.sh <项目根目录>

如果项目根目录已经是当前工作项目,则可以省略参数。

上传过滤器始终应用强制性安全排除规则。在 auto 模式下,当仓库根目录存在 .gitignore 时,它使用 Git 跟踪且未被忽略的文件列表;否则使用已配置的排除规则。项目 EXCLUDES_APPEND 条目在所有模式下均生效。

仅在解析出的上传模式为 excludes 时才支持 SYNC_DELETE=true;Git 文件列表模式无法安全识别所有过时的远程文件,必须失败,而不是暗示完全删除镜像。

下载结果

当用户要求:

  • 拉取训练结果
  • 下载检查点
  • 检索日志
  • 检索预测结果
  • 同步实验输出

运行:

scripts/pull-results.sh <项目根目录>

PULL_DIRS 条目相对于 REMOTE_DIR。空数组表示不拉取任何内容。PULL_ALL=true 显式拉取整个远程项目,且不得与非空的 PULL_DIRS 组合使用。拉取排除规则、最大文件大小、本地删除和覆盖保护独立于上传过滤。

编码工作流

当项目指令明确要求在代码更改后执行同步时:

  1. 完成请求的源代码修改。
  2. 运行适当的本地验证或测试。
  3. 如果验证成功,则运行 push-code.sh。
  4. 报告同步是否成功。

除非用户明确请求远程执行,否则不要自动启动远程训练。

SSH 认证

AutoDL 认证使用项目 .autodl-sync 配置的专用本地 SSH 密钥。

私钥必须保留在本地机器上。

如果尚未为新 AutoDL 实例配置公钥认证,请运行:

scripts/setup-key.sh <项目根目录>

此操作可能会交互式地请求一次 AutoDL 账户密码,以便安装公钥。

设置成功后,推送和拉取操作必须使用公钥认证。

切勿打印、读取、上传、复制或暴露 SSH 私钥。

安全性

切勿检查、打印、复制或修改 SSH 私钥。

SSH 连接设置从项目的 .autodl-sync 读取,并显式传递给 ssh 和 rsync。脚本不需要在 ~/.ssh/config 中有条目。

不要上传凭据或机密信息。

尊重项目 .autodl-sync 定义的排除规则和同步行为。

除非项目配置明确要求,否则不要启用上传或拉取删除。每次同步后,向用户报告脚本的文件操作摘要。

相关技能