---
title: 安全
summary: HeartBeatAgents 如何为代表你执行代码和发起 HTTP 请求的智能体实施纵深防御。
date: 2026-09-11
---

# 安全

HeartBeatAgents 如何为代表你执行代码和发起 HTTP 请求的智能体实施纵深防御。

能够执行代码并调用外部服务的智能体，需要即便在智能体自身推理出错时也依然成立的安全边界。HeartBeatAgents 的设计原则是：每一道边界都**物理上不可绕过**——在智能体代码无法绕开的层级上强制执行，而不仅仅是善意地加以约束。

## 七种机制

1. **凭证代理**：智能体获得的是不透明的句柄，而非真实的 OAuth 令牌。真实凭证只在 HTTP 请求发生的那一刻才会被注入，且永远不会暴露给 LLM 本身。
2. **出站策略**：读操作与写操作被区别对待。公共主机可通过 GET 访问；POST/PUT/PATCH/DELETE 仅限用于已批准的集成端点，且强制要求 HTTPS。
3. **DNS 重绑定防护**：DNS 解析、IP 校验以及 TCP 连接本身都在网络栈层面原子化完成。
4. **出站代理**：所有出站流量都会经过运行在隔离 Docker 容器中、由内核强制执行 `iptables` 规则的网络层代理。
5. **令牌清理**：一个基于模式匹配的清理器会检查每一个输出边界（LLM 上下文、日志、工具调用历史），在 OAuth 令牌、API 密钥和 JWT 泄露之前将其清除。
6. **WebSocket 身份验证**：连接需要提前提供身份验证令牌；在接受连接之前，会验证其签名、有效期以及所属组织。
7. **容器加固**：智能体以非 root 身份运行，削减 Linux 权限能力，使用只读根文件系统，按组织隔离容器，并强制执行资源限制。

## 这对日常使用意味着什么

- 你永远不需要把裸露的 API 密钥粘贴到智能体的提示词或常驻指令中。有关连接如何进行身份验证，请参见[集成指南](/zh/docs/guides/integrations-guide)。
- 吊销某个集成的访问权限是即时且彻底的（参见[配置](/zh/docs/getting-started/configuration)）。
- 采用自托管方式不会削弱以上任何一点：无论 HeartBeatAgents 运行在你的笔记本电脑上还是你自己的服务器上，相同的容器边界都同样适用（参见[自托管](/zh/docs/guides/self-hosting)）。

## 这是如何被核查的，而不只是被设计出来的

密钥扫描会在 CI 中对每一次提交运行，并作为预提交检查执行，此外还会定期对整个提交和标签历史进行扫描，因此即便有凭证不慎混入过去的某次提交，也不会因此被长期隐藏。这类控制措施是安全审查可以要求查看证据的对象，而不仅仅是本页所宣称的一项政策。

开发环境与生产环境的安全在结构上被严格分离，而不只是在文档中写明有所不同：启动时若检测到默认或占位符密钥会拒绝运行，除非通过一个明确的、会被高调记录到日志中的标志，主动将本地安装切换到较为宽松的开发模式。不存在某个会悄悄削弱生产安全性而不被任何人察觉的中间设置。

## 文件夹访问

智能体只能访问你明确共享的那部分文件系统。从**设置 → 文件夹访问**共享一个文件夹后，智能体便可以读取它；除非你将其标记为只读，否则智能体也可以在其中写入。共享文件夹之外的任何内容都完全无法访问。系统目录和凭证存储无论你指向哪个路径，都一律禁止被共享。

## 相关内容

- [集成指南](/zh/docs/guides/integrations-guide)：按服务进行的 OAuth 2.0 + PKCE 身份验证
- [自托管](/zh/docs/guides/self-hosting)：在你自己的基础设施上应用相同的隔离模型
