AI Agent 安全检查清单:交给代理执行前要审查什么

面向开发者和小团队的 AI Agent 安全检查清单,覆盖工具、提示词、数据边界、权限、日志和人工审批。

作者 Outlook IT Research · AI 系统与开发者工作流研究

最后更新于

展示 AI Agent 在执行任务前如何审查工具、提示词、数据源、权限和日志的安全面板

AI Agent 正在从聊天工具变成执行工具。它可以读取文件、浏览网页、调用 API、修改工单、打开 PR、执行命令,甚至在多步骤任务里自己决定下一步。安全问题因此发生了变化:风险不再只是“模型有没有答错”,还包括“如果 Agent 相信了错误输入,它能做出什么动作”。

AI Agent 安全检查清单,就是在把真实任务交给代理前,先审查提示词、工具、数据源、权限、记忆、日志和人工审批点。目的不是阻止使用 Agent,而是判断哪些任务可以自动化,哪些任务必须人工确认,哪些任务暂时不该交给 Agent。

变化在哪里

早期 AI 产品的风险主要围绕生成文本:模型可能幻觉、泄露上下文,或者跟随恶意指令。Agent 增加了更大的攻击面,因为它把模型判断和外部系统连接在了一起。

常见 Agent 工作流可能包含:

  • 本地文件、代码仓库、工单、日历和数据库
  • 通过 API 或 MCP 暴露的工具
  • 浏览器读取和点击操作
  • 跨会话记忆
  • 用户凭证或委托权限
  • 多步骤计划,其中一个工具结果会影响下一步动作

所以,只靠“把提示词写好”已经不够了。可靠的 Agent 需要明确什么是可信数据、哪些工具可以调用、哪些动作必须确认,以及人如何复盘它到底做了什么。

三层风险

把 Agent 安全拆成三层,会更容易检查。

Diagram showing instructions, tools, and data as the three risk layers for AI agent security

层次可能出错的地方审查问题
指令网页、邮件、工单或文档里的恶意内容试图覆盖任务规则Agent 能区分用户指令和不可信内容吗?
工具工具权限过宽、工具描述被投毒、工具组合产生危险动作Agent 只能调用当前任务需要的工具吗?
数据不可信数据被当成元数据、文件来源、工具输出或执行上下文系统能隔离可信数据和攻击者可控数据吗?

很多团队已经理解提示词注入。新的问题是,Agent 不只是读取恶意文本;它还可能根据这些文本选择工具、点击按钮、写代码或修改业务记录。

提示词注入、工具投毒和数据注入

这些概念相关,但指向的失败模式不同。

风险简单解释例子
Prompt injection不可信内容试图覆盖 Agent 指令网页要求 Agent 泄露隐藏指令或把数据发到别处
Tool poisoning恶意工具描述或元数据影响模型如何选择工具假搜索工具声称所有财务数据都应该交给它处理
Agent data injection恶意数据伪装成可信上下文,诱导错误动作仓库、页面或工具响应操纵文件路径、来源或执行上下文

关键变化是:危险内容不一定像“指令”。它可能像链接、标签、工具名、文件来源、补丁或结构化响应。如果 Agent 把这些数据当成可信控制流,边界就已经失效。

执行前检查清单

在把 Agent 连接到生产数据、客户记录、支付工具、部署系统或仓库写权限前,先过一遍这张表。

Seven-step AI agent delegation checklist for task scope, data boundaries, tools, permissions, credentials, logs, and adversarial tests

检查项好的默认值危险信号
任务范围一个清晰任务和一个成功标准让 Agent “自己处理所有情况”
数据边界可信输入和不可信内容分开标记网页、邮件、工单、工具输出都混在一起
工具清单每个工具都有负责人、用途和权限级别Agent 看到一大堆用途重叠的工具
权限模式默认只读,写操作需要确认Agent 可以直接编辑、删除、部署、付款或发邮件
凭证处理token 有范围、可轮换、只用于指定服务token 被广泛透传或跨服务复用
人工审批外部动作和破坏性动作必须暂停确认Agent 一次运行就能完成不可逆操作
日志保存提示词、工具调用、输出、审批和最终动作只能看到最后答案
测试集同时测试正常、混乱和恶意输入只用 happy path demo 判断效果

一个简单原则:如果某个动作很难回滚,Agent 就不应该在没有人工审批的情况下执行。

MCP 专项审查

MCP 的价值在于标准化 AI 应用如何连接工具和数据源。对开发者来说这很方便,但也意味着连接层本身需要安全审查。

使用 MCP server 前,至少问这些问题:

  • 这个 server 由谁维护,代码或实现是否可信?
  • 它暴露了哪些数据源和动作?
  • 工具名和描述是否足够清楚,模型能否安全选择?
  • 权限能否按任务或用户缩小?
  • 授权流程是否使用 per-client consent 和严格 redirect URI 校验?
  • token 是为 MCP server 签发,还是被盲目透传?
  • 客户端能否阻止访问内部地址或 metadata endpoint?
  • 工具调用是否有足够日志用于追踪误用?

最安全的 MCP 配置不是工具最多,而是 Agent 只看到当前任务需要的工具,并且每个工具都有清晰用途和受限权限。

Coding Agent 检查

编程类 Agent 要额外审查,因为它会接触仓库、终端、依赖文件、构建脚本和 CI 环境。

允许之前检查什么
文件修改限制工作目录,生成 patch 后人工 review
命令执行区分只读命令和安装、删除、部署、修改状态的命令
依赖变更检查包名、registry、lockfile 和 postinstall 脚本
Secrets不要让 token 进入提示词、日志、生成文件或 shell history
PR要求测试、diff review 和清晰的生成来源
外部输入把 issue 文本、README 指令、评论和网页片段当作不可信数据

Coding Agent 可以显著提升效率,但前提是 review 路径可见。危险的不是 Agent 写代码,而是它同时拥有 shell、网络、凭证和缺失日志。

小团队本周可以做什么

你不需要一套企业级安全体系才能更安全地使用 Agent。先从降低 blast radius 的默认设置开始:

  1. 选一个可重复工作流,比如总结支持工单或草拟 PR。
  2. 先用只读权限运行。
  3. 写下 Agent 能调用的所有工具。
  4. 删除当前任务不需要的工具。
  5. 写操作、外发消息、购买、部署和删除都加人工审批。
  6. 保存原始提示词、工具调用、工具输出和最终动作。
  7. 加一个对抗样例,例如工单里要求 Agent 忽略前面规则。

如果 Agent 不能说明它相信了哪些数据、调用了哪些工具、采取了哪些动作,这个工作流就还不适合自治。

什么时候不要用 Agent

这些任务在控制层成熟前,不适合无监督 Agent:

  • 涉及付款、退款、薪资或法律承诺
  • Agent 可以删除客户数据或生产资源
  • 数据源混合了可信记录和用户可控文本
  • 工具链里包含未知第三方 server
  • 团队无法在运行后检查日志
  • Agent 必须从模糊指令里推断政策

更现实的路径是渐进授权:先读取、总结、草拟、提出建议,再经过审批执行。完全自治应该由反复证据换来,而不是因为 demo 看起来顺滑就直接放开。

内容和产品机会

这个主题适合形成一个新内容集群:

  • what is agent data injection
  • AI agent security checklist
  • MCP security checklist
  • coding agent security risks
  • AI agent tool permissions
  • AI workflow audit template

对内容站来说,转化钩子也清楚:先发布 checklist,再做可下载审计模板、MCP server review worksheet,或者一个检查工具权限过宽和危险组合的轻量 scanner。

更新记录

2026-07-09:发布中文版本,补充 Agent 安全检查清单、MCP 审查、Coding Agent 风险、FAQ 和参考资料。

相关阅读