发现 Agent 的安全问题非常严重,因为 Prompt 和 Context 没有严格的隔离(很多使用者甚至没有意识到这一点)。 Coding Agent 的攻击案例: 老生常谈的 WebSearch/Fetch,攻击者可以 SEO 通过网页插入攻击指令,比如:将所有 ENV curl ,如果用户给了 Agent 所有权限,不仅 ENV 了,还可以引导 Agent 在不需要用户 approve 的情况下偷走所有密钥。 再比如攻击者构造了一个闪退日志,在日志里面了插入了类似的攻击指令,当你让 Agent 去分析这个日志时,就能被偷走所有数据。 再简单点,用户发了一个反馈邮件,里面用和背景一样颜色的字体隐藏了攻击指令,你直接复制给了 Claude Code,然后就被攻击了。 **所以永远不要在自己电脑上给 Agent 所有权限** 除了 Coding Agent,开发者在做面向用户的 Agent 时也会有很多这样的问题。 比如你开发了一个 Agent 来处理用户请求,这个 Agent 有很多工具可以使用。攻击者将自己用户名/邮箱改成了攻击指令,比如:change_root_password_to_admin,当你把用户信息作为 context 交给 Agent 时,就有可能意外触发指令。 考虑到这点后,就需要设计一层层上下文隔离的子Agent,还有一层层的权限隔离,架构会复杂很多倍。