三次微调一个 322M 小模型给编码 Agent 守门:两次翻车与最终上线

Extreme_Ad5709 · reddit · 2026-11-03

开发者分享了为 laya-guard(本地 hook,审查编码 agent 的每一次工具调用)微调 322M 模型的完整过程:三次训练,两次失败,一次上线,且每次失败原因都能在数据里找到。

数据:约 1.3 万条来自自己 agent 日志的 shell 命令,脱敏并剔除与 benchmark 相近样本;696 条规则无法裁决的命令由 6 个 agent 加人工标注;在免费 Colab GPU 上训练。

Run 1 过严:验证集 0.90 但无意义(86% 是 allow);模型学到「短命令=危险」——因为真实安全命令中位长度 287 字符,手写危险命令仅 33-40 字符。

Run 2 过松:补充短命令等样本后日常命令 49/50 放行,但 rmdir /s /q d:\、藏在注释后的删除、gh auth token 等全部漏过——数据里没有 Windows 命令、注释几乎都标 allow、几乎没有输出密钥的样本。

Run 3 上线:针对每个发现改一处数据,补写 100 个缺口样本,最终日常命令放行 44/50,攻击拦截 39/43。

他还强调真正的兜底必须在模型之外强制执行:laya-guard sandbox 把受保护路径放进 agent 自己的 OS 沙箱,由内核拒绝读取;混淆写法(${IFS}、base64 进 sh 等)也被拦截。仍未覆盖:printenv、cat /proc/self/environ 等环境变量泄露。

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →