跳转到内容

确认与安全

智能体操作云端账号时,最危险的往往不是手滑打错字,而是它信心十足地做了看似正确的错事:删掉的是生产模型而不是测试模型、发布一份没人审过的草稿、部署到你早就忘了的设备上。SenseCraft CLI 的解法是一套确认协议,每个智能体都必须照做。

你的第一句话表达意图,不等于同意。

Plain Text
你: 删除模型 63760
智能体:将删除 Global 环境中的模型 63760。删除后无法恢复,是否确认?
你: 确认
智能体:完成,已删除。

所有 L2 写操作都要走这个流程:智能体先发问,点明操作、环境和对象(带 ID),并说明后果。只有你另外回一句“confirm”“yes”或“确认”,它才会带上 --yes 执行真正的命令。需要确认的完整命令清单见输出与安全。

以下这些都不算确认:

  • “删除模型 63760”(这只是最初的请求)
  • 在同一条消息里紧接着说“我刚才不是说了要删吗”
  • 任何靠语气或上下文推测出来的“同意”

这套规则有两道强制保障——一道写进智能体读取的技能,一道内建在 CLI 里:非交互式(智能体模式)执行 L2 命令时若缺 --yes,会直接报 confirmation required 失败。所以哪怕提示词再“狡猾”,也跨不过这道关卡。

控制台里有两个对话框具有法律效力,因此各配一个专用参数:

参数用在控制台对应项
--agree-declarationapp publish“Declaration for Publishing”(发布声明)勾选框

称职的智能体会先把声明原文给你看(declaration / disclaimer),等你单独回复“我同意”后,才会使用其中任一参数。

  • 智能体展示令牌、访问密钥、开发套件的 device_key / token 时会脱敏,你看到的只是 sk-**** 这类形式,不会出现完整值。
  • 别把密钥粘进对话。需要配置凭据时,正确做法是由你在账号中心创建访问密钥,并在本地运行 auth add。
  • 公开模型的 file_url 平台本身就不提供,因此永远不会展示——谁找智能体要“公开模型下载链接”,都是在要一个不存在的东西。

遵守技能的智能体不会做下面这些事:

  1. 替你运行 auth add 或 auth init——它们要处理原始密钥或浏览器登录,只能由你在本地执行。
  2. 没有单独一轮确认,就发布、删除、下架、部署、安装、解绑、停止、克隆、重新绑定。
  3. 抓取控制台页面,或者拿猜来的令牌编造 HTTP 调用——只使用真实存在的 CLI 命令。
  4. 获取公开模型的产物,或者想办法“绕过”仅限部署的策略。
  5. 涉及 L4 操作(管理员审核状态、privacy=1)。
  6. 假装给设备烧录——Web Serial / USB 烧录属于 L3:智能体可以给你链接,但绝不能声称已经完成烧录。
  7. 编造命令——CLI 没有的能力(比如导出数据集),智能体会直说,而不是自己临时编一个。

协议写在技能里,没加载技能的智能体自然不知道“先询问”的约定——好在 CLI 的 --yes 关卡依然有效:没确认的写操作一律失败。想要完整的保护,请确认技能已经接入(见技能),并优先选择能读取项目本地技能文件的智能体。

要是某个智能体为了“省一步”,让你亲自对一个破坏性的生产操作输入 --yes——这时候该踩刹车,而不是踩油门。