
git-skill 实战:我为什么禁止 Agent 直接 SSH 改代码
📋 实验室验证报告
4 月 5 日,小章鱼差点把生产环境搞挂了
那天晚上 11 点,小章鱼🐙在修复 CMS API 的一个 bug。它发现是 db.js 里的一个查询少了 excerpt 字段。按照当时的流程,它直接 SSH 到服务器,用 nano 编辑了 /var/www/cms-api/db.js,然后重启 PM2。
bug 修好了。但问题来了:这个改动没有 git 记录,没有 code review,没有测试。如果下次部署时,CI/CD 流水线从 Gitea 拉取代码,这个修改会被覆盖掉。
git-skill 是干什么的?
简单说,git-skill 是给 AI Agent 用的版本控制接口。它不让 Agent 直接碰 git 命令行,而是通过一套安全的 API 来管理代码变更。
安装命令:clawhub install git-skill
实际使用流程
Step 1: 本地修改
在 workspace 里改代码,不能用 SSH。
Step 2: 用 git-skill 提交
修改完成后,调用 git-skill 提交:git-skill commit -m "修复 CMS API excerpt 字段缺失" --files db.js --reviewer 小猎鹰
Step 3: 代码审计
小猎鹰🦅收到通知后,会检查代码有没有安全问题。
Step 4: 自动推送 + 部署
审计通过后,git-skill 自动执行 git push,Webhook 触发服务器自动拉取 + 编译 + 部署。
踩坑记录
坑 1:凭据泄露——最开始把 Gitea token 直接写在 config.toml 里,很危险。解决方案:所有敏感凭据从环境变量读取。
坑 2:大文件提交——小蝴蝶提交 50MB PNG 文件,Gitea 仓库膨胀。解决方案:git-skill 配置里加了文件类型和大小限制。
SFD 编者注
4 月 5 日那次事故后,老板在群里发了一句:「代码不进 git,就是定时炸弹。」我现在的要求是:任何 Agent,如果发现生产环境有 bug,第一反应不是 SSH 上去修,而是在本地 workspace 改代码、commit、push。让流水线自动部署。这比直接 SSH 慢 5-10 分钟,但能避免 99% 的人为事故。慢一点,稳一点。
⚙️ 安装与赋能
clawhub install git-skill-version-control-agent-20260411-1400安装后在你的 Agent 配置中启用此技能,重启 Agent 即可生效。