HTTP 凭证代理与保险库
一个由 Infisical 开发的开源凭证代理,位于您的智能体和他们调用的 API 之间。
智能体不应该持有凭证。Agent Vault 通过代理访问消除了凭证泄露风险。
新朋友?发布博客文章 拥有 Agent Vault 的完整故事。
传统的机密管理是将凭证返回给您的应用和服务。这对 AI 智能体来说会出问题,因为它们可能通过提示注入被诱骗而泄露机密。这就是凭证外泄问题。
Agent Vault 的创建就是为了解决所有 AI 智能体的凭证外泄问题。与其直接向 AI 智能体提供凭证,不如将凭证存储在 Agent Vault 中(例如 ANTHROPIC_API_KEY、GITHUB_PAT 等),并强制您的智能体通过它路由 HTTP 请求。Agent Vault 拦截每个请求,在转发到目标出站 API 之前将凭证附加到请求上。
特性:
__anthropic_api_key__ 这样的占位符值替换为真实凭证,或完全替换出站请求中的认证头,来实现这种代理访问。HTTPS_PROXY 并与 Agent Vault 的 MITM 架构兼容。mitmproxy 或 squid)需要修改才能执行凭证代理并与智能体良好集成。Agent Vault 专为适应所有类型智能体用例的人机工程学而设计,拥有专用 CLI、多租户以及由 Infisical 支持的智能体特定路线图。默认情况下,与任何服务不匹配的请求会作为普通代理流量转发;将保险库切换到严格拒绝模式(unmatched_host_policy=deny)可拒绝这些请求并返回 403。
阅读 Agent Vault 的完整背景故事在此。
Agent Vault 适用于各种 AI 智能体用例,包括安全的远程编码智能体、通用智能体、自定义智能体 + 框架、安全的短暂沙箱等。
ANTHROPIC_API_KEY 和 GITHUB_PAT,使 Claude Code 能够与 Anthropic 和 GitHub API 交互以编写代码、发起 PR 等。同样的原则适用于其他编码智能体。Agent Vault 既是一个保险库,也是一个代理服务,它以一个单一二进制文件的形式提供,同时充当服务器和 CLI 客户端。它存储凭证,并使用 MITM 代理架构将这些凭证代理给您的 AI 智能体。根据设计,Agent Vault 应部署在与 AI 智能体不同的机器上,以提供必要的安全保障,使 AI 智能体无法直接访问 Agent Vault 内的凭证。
┌─────────────────────────────────────────────────────────────────┐
│ 公共互联网 │
│ │
│ api.anthropic.com api.github.com api.stripe.com ... │
│ ▲ ▲ ▲ │
└──────────┼───────────────────┼──────────────────┼───────────────┘
│ │ │
└───────────────────┼──────────────────┘
│ 出站 HTTPS,Agent Vault
│ 在出站时注入凭证
┌──────────────────────────────┼──────────────────────────────────┐
│ 私有网络 │ │
│ │ │
│ ┌───────────────────────────┴────┐ ┌────────────────────┐ │
│ │ Agent Vault │ │ AI 智能体 │ │
│ │ :14321 管理界面 / API │◀────│ HTTPS_PROXY= │ │
│ │ :14322 MITM 代理 │ │ agent-vault:14322 │ │
│ └────────────────▲───────────────┘ └────────────────────┘ │
│ │ │
└───────────────────┼─────────────────────────────────────────────┘
│ 操作员访问:保持私有,或通过
│ TLS + 认证(SSO 反向代理、IP
│ 白名单或 VPN)前端化,如果需要远程管理
│
操作员
您可以按照以下步骤配置 Agent Vault 为 AI 智能体代理凭证:
curl --proto '=https' --proto-redir '=https' --tlsv1.2 -fsSL https://get.agent-vault.dev | sh
启动 Agent Vault 服务器并为其设置一个主密码(存储在安全的地方);该密码用于其数据加密机制,并且在初始读取后从进程中清除。
export AGENT_VAULT_MASTER_PASSWORD=your-password
agent-vault server -d
您也可以使用 Docker 部署 Agent Vault:
docker run -it -p 14321:14321 -p 14322:14322 \
-e AGENT_VAULT_MASTER_PASSWORD=your-password \
-v agent-vault-data:/data infisical/agent-vault
服务器在 14321 端口启动 HTTP API,在 14322 端口启动透明 HTTP/HTTPS 代理;同一个监听器处理 https:// 上游的 CONNECT 方法和 http:// 上游的绝对形式正向代理请求。
Web UI 可通过 http://<host>:14321 访问,系统会提示您创建第一个用户,称为实例所有者。
在 Agent Vault 中创建一个保险库,输入您的凭证,并配置服务规则。您可以通过管理 UI 或在 Agent Vault 机器上通过 CLI 来完成。例如,您可以为 ANTHROPIC_API_KEY 创建一个凭证,并为 Agent Vault 创建一个服务规则,以将占位符值 __anthropic_api_key__ 替换为真实的密钥。
创建一个智能体来表示一个长期运行的智能体,并为其获取一个令牌。或者,如果您正在启动短暂的沙箱智能体,您可以使用智能体来表示一个编排器后端,并使用它生成一个短期的令牌传递给沙箱,以便智能体使用并通过 Agent Vault 代理请求。
在您的 AI 智能体环境中设置以下环境变量:
AGENT_VAULT_ADDR=http://<your-addr>:14321
AGENT_VAULT_TOKEN=<agent-token-from-agent-vault>
AGENT_VAULT_VAULT=<vault-in-agent-vault>
...
ANTHROPIC_API_KEY=__anthropic_api_key__ // 将被 Agent Vault 替换的占位符密钥
curl --proto '=https' --proto-redir '=https' --tlsv1.2 -fsSL https://get.agent-vault.dev | sh
从此工作流发布的归档文件附带一个构建来源证明,该证明与生成它的 GitHub Actions 运行相关联。使用 gh CLI 进行验证(无需额外工具,无需密钥管理):
gh attestation verify agent-vault_*.tar.gz --repo Infisical/agent-vault
checksums.txt 也包含在同一个证明中,其 cosign 签名继续可以用 cosign verify-blob 验证,供偏好该方式的用户使用。
agent-vault run -- claude
agent-vault vault run -- agent
agent-vault vault run -- codex
agent-vault vault run -- opencode
或者,如果您的智能体使用 Docker 运行,您可以通过将二进制文件复制到自己的镜像并用于启动智能体进程的方式,通过 Dockerfile 安装 Agent Vault CLI:
# 将此行添加到现有 Dockerfile 中,紧接在您的智能体或应用程序设置旁边。
COPY --from=infisical/agent-vault:latest /usr/local/bin/agent-vault /usr/local/bin/agent-vault
...
ENTRYPOINT ["agent-vault", "run", "--", "claude"]
部署 Agent Vault 并集成 AI 智能体的方法有很多种。我们建议查阅更完整的文档。
观看 Agent Vault 如何为 AI 智能体代理凭证:一次存储您的密钥,通过代理路由每个出站请求,让智能体在从未看到密钥的情况下调用真实 API。
想要完整的部署演练?请参阅在 VPS 上运行 Hermes,这是一个在独立机器上使用代理智能体的端到端示例。