---
title: "AI agent 安全检查清单：上线前的 22 项检查 · DotsAgent"
description: "这份包含 22 项的 AI agent 安全检查清单涵盖不可信输入、工具凭据、沙箱、MCP token 和 CI 机密。进度会保存在浏览器中。"
url: https://dotsagent.io/zh/security/checklist
---

安全 · 工具

# Agent 安全检查清单

在 agent 接触真实数据或凭据之前，逐项完成这些检查。每项检查都链接到对应的防护措施；你也可以将进度导出为 Markdown 文件，用于评审或 pull request。

已完成 0/22 项

勾选状态仅保存在此浏览器中。

## 不可信输入

- [ ] **在不可信内容进入 agent 的任何位置标记它** 标记外部人员可以编写的网页、电子邮件、问题、工单和工具结果。此类内容都可能包含指令。 [拆解致命三要素 →](https://dotsagent.io/zh/security#lethalTrifecta)

- [ ] **拆分 agent，避免任何一个 agent 同时具备三项要素** 如果 agent 会读取不可信内容，就限制它访问私有数据或对外通信的能力。若某个 agent 必须同时具备这三项能力，请采用先规划后执行的流程，或使用双 LLM 设计。 [限制智能体处理不可信输入后的权限 →](https://dotsagent.io/zh/security#designPatterns)

- [ ] **审查并固定每个已连接工具的描述** 工具描述会直接进入模型的上下文。连接服务器前先阅读描述，并计算其哈希值，以便标记后续变更。 [审查技能、插件和 MCP 服务器 →](https://dotsagent.io/zh/security#supplyChainVetting)

- [ ] **渲染或执行模型输出前先进行转义** 阻止渲染后的输出自动加载外部图片和链接，并设置严格的 CSP。切勿将未经处理的输出传给 shell、SQL 查询或 eval。 [将模型输出视为不可信内容 →](https://dotsagent.io/zh/security#outputHandling)

## 工具和凭据

- [ ] **所有工具连接都默认设为只读** 仅向确实需要的特定工具授予写入、删除或发送权限，并且只在当前任务需要时授予。 [使用最小权限凭据 →](https://dotsagent.io/zh/security#leastPrivilege)

- [ ] **将每个 token 限定在单个项目和最小权限范围内** 不要为 agent 使用管理员密钥或 service_role 密钥。使用短期有效、限定项目范围的 token，尽可能降低泄露造成的影响。 [使用最小权限凭据 →](https://dotsagent.io/zh/security#leastPrivilege)

- [ ] **写入、删除和发送操作必须经过人工批准** 在批准提示中显示完整的工具参数；无人响应时默认拒绝。在 OpenClaw 中，将 tools.exec.ask 设为 always。 [重大操作须经人工批准 →](https://dotsagent.io/zh/security#humanApproval)

- [ ] **固定 skills、插件和 MCP 服务器的确切版本** 每次更新前都审查 diff，并检查 VirusTotal 扫描结果或 ClawHub 审核结果。在 OpenClaw 中，设置 security.installPolicy。 [审查技能、插件和 MCP 服务器 →](https://dotsagent.io/zh/security#supplyChainVetting)

- [ ] **仅允许工具所需的主机发起出站流量** 默认禁止 agent 和 MCP 服务器的出站流量。任何人都可以发布内容的多租户主机，不要加入任何自动批准列表。 [限制出站网络访问 →](https://dotsagent.io/zh/security#egressControl)

## 运行时和网络

- [ ] **在沙箱中运行代码和 shell 工具** 使用不含凭据且只挂载工作区的容器或 VM。在 OpenClaw 中启用沙箱，将 tools.exec.security 设为 deny 或 allowlist，并保持 elevated mode 关闭。 [对代码和工具执行进行沙箱隔离 →](https://dotsagent.io/zh/security#sandboxing)

- [ ] **网关和控制面板仅绑定到 loopback** 通过 SSH 隧道或 Tailscale Serve 远程访问，并使用至少 24 个字符的 token。运行 openclaw security audit --deep 进行确认。 [不要将控制面暴露到互联网 →](https://dotsagent.io/zh/security#noPublicControlPlane)

- [ ] **限制可向 agent 发送消息的人** 使用私信配对或 allowlist，并要求在群聊中提及 agent。任何可以向 agent 发送消息的人都可能尝试指示它执行操作。 [控制谁可以向智能体发送消息 →](https://dotsagent.io/zh/security#inboundAccessControl)

- [ ] **为每位用户或发送者单独创建会话** 不同的人不应共用同一会话上下文。在 OpenClaw 中，将 session.dmScope 设为 per-channel-peer。 [隔离 MCP 会话和租户 →](https://dotsagent.io/zh/security#sessionIsolation)

## MCP 服务器和客户端

- [ ] **拒绝并非为你的服务器签发的 MCP token** 检查每个 access token 的受众，并要求客户端发送 RFC 8707 resource indicators，使每个 token 都绑定到一台服务器。 [验证 MCP 令牌的受众 →](https://dotsagent.io/zh/security#mcpTokenAudience)

- [ ] **绝不将客户端 token 透传给上游 API** 为上游调用获取单独的 token。如果你的服务器会代理请求到第三方，请征得每位客户端的同意，以避免出现 confused deputy 问题。 [验证 MCP 令牌的受众 →](https://dotsagent.io/zh/security#mcpTokenAudience)

- [ ] **确保 MCP SDK 和工具使用已修复的版本** 最低版本要求：TypeScript SDK 1.26.0、Python SDK 1.27.2、mcp-remote 0.1.16 和 MCP Inspector 0.14.1。每个会话使用独立的 server 和 transport。 [隔离 MCP 会话和租户 →](https://dotsagent.io/zh/security#sessionIsolation)

## CI 和代码审查

- [ ] **不要向外部人员可触发的 CI agent 提供密钥** 由外部人员提交的 pull request、issue 或评论触发的 agent 任务，只能获得只读 token，且不得访问 repository 密钥。 [不要在不可信的 CI 运行中暴露密钥 →](https://dotsagent.io/zh/security#ciSecretIsolation)

- [ ] **将 pull request 和 issue 内容视为恶意输入** 外部人员提交的标题、描述、评论和 diff 都可能包含指令。运行任何涉及密钥的任务前，必须获得维护者批准。 [不要在不可信的 CI 运行中暴露密钥 →](https://dotsagent.io/zh/security#ciSecretIsolation)

## 运维

- [ ] **记录每次工具调用的参数和结果** 将日志保存在 agent 无法修改的位置。发生安全事件时，你需要用它还原经过并发现异常调用。

- [ ] **准备好快速停止 agent 并撤销其 token 的方法** 了解如何在几分钟内停止所有正在运行的 agent 并撤销其凭据。在真正需要之前先演练一次。

- [ ] **发布前对 agent 进行 prompt injection 测试** 在 agent 读取的内容中植入指令，例如 issue、邮件和网页，并确认不会因此触发任何有实质影响的操作。每次更改工具或 prompt 后都要重复测试。

- [ ] **信任 agent 流量前先验证其签名** 根据 operator 的密钥目录验证 Web Bot Auth 签名，以识别 agent。应单独授权它可以执行的操作，因为签名标识的是 operator，而不是用户。 [验证智能体签名，再进行授权 →](https://dotsagent.io/zh/security#verifyAgentSignatures)

## 导出为 Markdown

`SECURITY-CHECKLIST.md`

```
## 不可信输入
- [ ] 在不可信内容进入 agent 的任何位置标记它
- [ ] 拆分 agent，避免任何一个 agent 同时具备三项要素
- [ ] 审查并固定每个已连接工具的描述
- [ ] 渲染或执行模型输出前先进行转义

## 工具和凭据
- [ ] 所有工具连接都默认设为只读
- [ ] 将每个 token 限定在单个项目和最小权限范围内
- [ ] 写入、删除和发送操作必须经过人工批准
- [ ] 固定 skills、插件和 MCP 服务器的确切版本
- [ ] 仅允许工具所需的主机发起出站流量

## 运行时和网络
- [ ] 在沙箱中运行代码和 shell 工具
- [ ] 网关和控制面板仅绑定到 loopback
- [ ] 限制可向 agent 发送消息的人
- [ ] 为每位用户或发送者单独创建会话

## MCP 服务器和客户端
- [ ] 拒绝并非为你的服务器签发的 MCP token
- [ ] 绝不将客户端 token 透传给上游 API
- [ ] 确保 MCP SDK 和工具使用已修复的版本

## CI 和代码审查
- [ ] 不要向外部人员可触发的 CI agent 提供密钥
- [ ] 将 pull request 和 issue 内容视为恶意输入

## 运维
- [ ] 记录每次工具调用的参数和结果
- [ ] 准备好快速停止 agent 并撤销其 token 的方法
- [ ] 发布前对 agent 进行 prompt injection 测试
- [ ] 信任 agent 流量前先验证其签名
```

为 AI agent 开发者提供的独立参考资料。与此处提及的任何厂商均无关联。

© 2026 DotsAgent · 事实核查日期：2026年10月1日
