SuperAPI AI 工具集

remote-project-control

部署与运维

查看项目

更新于 10-15 07:42

技能介绍

Remote Project Control 是一个面向研究项目的技能,用于协调本地开发机、Git 远程仓库(如 GitHub、GitLab)以及通过 SSH 访问的服务器或集群(如 HPC、RunAI 环境)。其核心场景是:代码在本地编辑,但实际运行在远程服务器上。

用途 该技能帮助用户安全地操作这类项目,包括检查服务器状态、同步代码、提交作业、启动交互式会话、查看日志以及定位远程产物。它强调在执行任何远程操作前先建立项目记忆,并重新验证易变状态,避免依赖过期的会话缓存。

主要能力

  • 项目记忆管理:维护四个记忆文件,分别记录稳定的共享事实(infra/remote-projects.yaml)、当前阶段工作记忆(docs/ops/current-status.md)、持久的工作流决策理由(docs/ops/decision-log.md)以及用户私有的机器特定覆盖(.agent/local-overrides.yaml)。
  • 安全 SSH 命令包装:提供 remote-cmd 用于简单的 argv 风格命令,remote-bash 用于脚本、循环或含 shell 语法的命令,避免本地 shell 提前展开变量、通配符或引号导致服务器端命令被破坏。
  • 操作流程分类:支持 bootstrap(创建或修复记忆文件)、inspect(比较本地与服务器 git 状态)、git-remote-setup(配置 GitHub/GitLab 仓库与远程)、sync-code(通过 Git 远程同步代码,仅允许非破坏性快进拉取)、run-job(安全提交作业)、interactive-session(准备 salloc/srun 等命令)、monitor(检查队列与日志)、artifacts(定位远程检查点与输出)、closeout(会话结束时更新记忆)等流程。
  • 网络与认证问题分类:将网络/沙箱访问失败与认证失败区分处理,例如 gh 命令无法连接 api.github.com 时应先以网络权限重试,而非直接判定为凭据错误。

使用方式 首先检测项目根目录并读取现有记忆文件;若缺失则从模板引导创建,仅询问最少关键字段(项目名、本地仓库根、默认服务器名、SSH 别名、服务器仓库根、调度器类型、默认启动模式、环境激活命令)。随后构建会话引导摘要,重新验证易变状态(本地与服务器 git 状态、调度器可用性、日志路径),再根据请求分类执行对应流程。所有操作结束后应进行 closeout,更新当前状态与决策日志。

适用场景 适用于代码本地编辑、远程服务器执行的研究项目,尤其是使用 Slurm 等调度器的 HPC 环境,或需要协调多个独立 Git 仓库(如项目控制根布局中 <ProjectName>/ 与 <ProjectName>/code/ 为独立仓库)的场景。可与 research-project-memory 和 run-status-monitor 技能配合使用。

限制 该技能不提供具体的收费、价格或平台信息。它要求用户具备 SSH 访问权限和已配置的 Git 远程仓库。禁止在未获用户明确批准时使用破坏性服务器端 git 命令。不鼓励批量传输大型数据,除非用户明确要求。若运行时无法直接执行 SSH 命令,仍可生成正确顺序的命令并解释假设。