安全与权限
当 AI 智能体代你操作 CLI 时,每条命令都有真实后果——建商品、给买家退款、删折扣。AI Toolkit 的设计让智能体始终待在你可控的护栏内。
安全协议
地基技能 shoplazza-common 为破坏性(取消、删除)、批量以及动钱的写操作(如退款、收费)规定了以下协议:
- 预览 —— 用
--dry-run运行命令,只打印请求而不发送。 - 复述 —— 概述该操作会改动什么。
- 确认 —— 等你明确确认后再执行。
其他写操作,比如用 + 快捷命令建商品或建折扣,在必填值确认后直接执行。只读命令(+search、+count、list、get)无需确认。
/shoplazza-orders 订单 660011 给买家退 15.50
智能体先用 --dry-run 预览退款,复述金额与库存退回,等你说"确认"后再真正执行。
在交互式终端里,CLI 自身也会请人确认破坏性命令:orders +refund 要求你重新输入订单 ID,products +unpublish、所有 delete / cancel 命令以及 auth logout 会询问是否继续。智能体、管道、CI 和 --dry-run 都不会出现这些提示,所以在智能体会话里,守住每次写操作的是上面的协议。
Scope 限定智能体能做什么
认证按业务域授权。智能体只能触及你登录时授予的域:
shell
shoplazza auth login --store-domain my-store.myshoplaza.com --domain products,orders
上面的命令让智能体能管理商品与订单,但碰不到客户、折扣或店铺设置。若要精细控制 OAuth scope:
shell
shoplazza auth login --store-domain my-store.myshoplaza.com --scope read_product,read_order
只授予 read_* scope 即让智能体对该域只读。超出已授予 scope 的调用会被拒绝(HTTP 403),CLI 将其报为 auth 错误,并提示用 --domain 或 --scope 重新登录。见认证 → 作用域映射。
实用护栏
- 最小权限 —— 只授予任务所需的域和 scope。报表类智能体只需
read_*。 - 执行前审查 —— 写操作保留确认环节;批准前读一遍被复述的命令。
- 凭据加密存储 —— token 以 AES-256-GCM 加密后存放在 CLI 的配置目录中,不以明文写进配置文件。
- 区分店铺 —— 先让智能体指向开发店;用
shoplazza auth store use切换。 - CI 密钥 —— 自动化运行时把 UAT 作为加密密钥传入,绝不写进指令或源码。见无头与 CI。