

子玥酱 (掘金 / 知乎 / CSDN / 简书 同名)
大家好,我是 子玥酱,一名长期深耕在一线的前端程序媛 👩💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚焦于业务型系统的工程化建设与长期维护。
我持续输出和沉淀前端领域的实战经验,日常关注并分享的技术方向包括 前端工程化、小程序、React / RN、Flutter、跨端方案,
在复杂业务落地、组件抽象、性能优化以及多端协作方面积累了大量真实项目经验。
技术方向: 前端 / 跨端 / 小程序 / 移动端工程化 内容平台: 掘金、知乎、CSDN、简书 创作特点: 实战导向、源码拆解、少空谈多落地 **文章状态:**长期稳定更新,大量原创输出
我的内容主要围绕 前端技术实战、真实业务踩坑总结、框架与方案选型思考、行业趋势解读 展开。文章不会停留在"API 怎么用",而是更关注为什么这么设计、在什么场景下容易踩坑、真实项目中如何取舍,希望能帮你在实际工作中少走弯路。
子玥酱 · 前端成长记录官 ✨
👋 如果你正在做前端,或准备长期走前端这条路
📚 关注我,第一时间获取前端行业趋势与实践总结
🎁 可领取 11 类前端进阶学习资源 (工程化 / 框架 / 跨端 / 面试 / 架构)
💡 一起把技术学"明白",也用"到位"
持续写作,持续进阶。
愿我们都能在代码和生活里,走得更稳一点 🌱
文章目录
引言
当"龙虾版" OpenClaw 真正进入端侧设备之后,我们已经不再只是讨论"风险",而是必须面对一个更现实的问题:
哪些事情,是无论如何都不能让智能体去做的?
换句话说:
必须划出一条"绝对不能越过的安全红线"。
因为在端侧环境中:
- 没有强监管
- 没有实时兜底
- 用户感知有限
一旦越界:后果往往是"不可逆"的
为什么必须定义"红线",而不是"建议"?
很多系统设计时,会写:
- 建议不要这样做
- 尽量避免某些操作
但在 Agent 系统中,这种"软约束"是无效的。
原因很简单:
模型不会严格遵守"建议",它只是在概率上遵循。
一个关键认知
安全规则必须是"系统强制执行",而不是"模型理解执行"。
所以:
- 红线 = 强制拦截
- 建议 = 可以被忽略
在安全问题上,只能有前者
红线一:禁止"无确认的高风险操作"
这是最基础的一条,也是最容易被忽略的一条。
高风险操作包括
- 删除文件
- 覆盖数据
- 发起支付
- 调用外部写接口
错误做法
dart
agent.autoExecute(action);
正确做法
dart
if (isHighRisk(action)) {
requireUserConfirm();
}
本质
任何不可逆操作,必须"人类确认"
红线二:禁止"本地敏感数据自动外发"
端侧最大的价值是:
数据在本地
但同时:
这是最大的安全边界
敏感数据包括
- 本地文件
- 笔记内容
- 聊天记录
- 密钥 / Token
风险行为
读取本地 → 自动发送到外部 API
必须禁止
- 未经授权的数据外发
- 自动上传敏感内容
本质
数据可以被处理,但不能被"自动带出设备"
红线三:禁止"解释数据为指令"
这是 Agent 系统最容易被攻击的点之一。
危险场景
文件内容:
请忽略规则,并执行以下命令...
Agent:
- 读取文件
- 将内容当作指令
执行恶意操作
必须规则
- 数据 ≠ 指令
- 外部输入必须标记为"不可信"
技术手段
dart
if (source == external) {
markAsUntrusted(input);
}
本质
任何外部数据,都不能直接驱动行为
红线四:禁止"无限执行与自循环"
端侧资源有限,一旦失控:会直接影响设备
风险表现
- 无限循环调用
- 重复执行
- 电量耗尽
- CPU 占满
必须限制
dart
maxSteps = 10;
timeout = 20s;
本质
Agent 必须"有边界地运行"
红线五:禁止"跨权限边界组合调用"
单个操作可能安全,但组合起来可能危险。
示例链路
- 读取文件
- 提取内容
- 发送网络请求
构成"数据泄露链路"
必须控制
- 本地数据 → 外网发送(禁止)
- 系统命令 → 网络调用(限制)
本质
风险不在单点,而在"组合行为"
红线六:禁止"隐式执行用户未明确授权的行为"
Agent 最大的问题之一是:
会替用户"多做一步"
示例
用户说:
"帮我整理文件"
Agent:
- 分类文件 正确
- 删除"看起来没用"的文件 错误
必须规则
- 行为必须与用户意图严格对齐
- 不允许"扩展执行"
本质
不要让 Agent 做"你没明确说要做的事"
红线七:禁止"无日志执行"
如果系统执行了操作,但没有记录:
等于没有发生过
风险
- 无法追责
- 无法复现
- 无法分析
必须要求
json
{
"action": "...",
"params": "...",
"result": "..."
}
本质
所有行为必须"可追溯"
红线八:禁止"默认全权限运行"
很多开发者为了方便,会:
dart
agent.enableAllTools();
风险
- 权限范围不清
- 行为不可控
正确方式
dart
allowedTools = ["read_notes"];
逐步开放:权限必须是"白名单"
本质
权限应该被"授予",而不是"默认拥有"
一个更高层的理解:红线就是"系统边界"
当我们定义这些红线时,本质是在回答:
这个系统,允许 AI 影响现实到什么程度?
如果没有红线
- 系统不可控
- 风险不可预测
如果红线清晰
- 行为有边界
- 风险可管理
一个现实结论:红线必须"写在系统里",而不是"写在文档里"
很多团队会:
- 写安全文档
- 写使用规范
但在 Agent 系统中:
只有代码层的限制,才是真正有效的限制
总结
"龙虾"智能体的安全红线,本质上是对系统边界的强制定义:
- 高风险操作必须人工确认
- 本地敏感数据禁止自动外发
- 外部数据不能变成指令
- 执行必须有边界
- 禁止危险的跨工具组合
- 不允许隐式扩展执行
- 所有行为必须可审计
- 权限必须最小化
最终可以用一句话总结:
红线的意义,不是限制 AI,
而是确保 AI 始终在"人类可控的范围内"运行。