开源凭证代理工具,为 AI Agent 提供安全的密钥管理机制,对 Agent 开发者有直接实用价值。
Agent Vault 是 Infisical 推出的一款开源凭证代理,部署在 Agent 与其调用的 API 之间。Agent 不应该持有凭证。Agent Vault 通过代理访问机制,消除凭证外泄风险。
第一次了解 Agent Vault?发布博客完整讲述了它背后的故事。
文档 | 安装 | 教程 | 视频演示 | Slack
传统的 secrets management 会将凭证返回给应用程序和服务。但这种方式并不适用于 AI Agent,因为攻击者可能通过 prompt injection 诱骗 Agent 泄露 secrets。这就是凭证外泄问题。
Agent Vault 旨在解决所有 AI Agent 的凭证外泄问题。你不需要将凭证直接交给 AI Agent,而是将其存储在 Agent Vault 中(例如 ANTHROPIC_API_KEY、GITHUB_PAT 等),并强制 Agent 通过 Agent Vault 路由 HTTP 请求。Agent Vault 会拦截每个请求,在转发至目标外部 API 之前为其附加凭证。
凭证代理(Credential Brokering): 代理 AI Agent 对 LLM provider、GitHub 等目标服务的访问,而无需让 Agent 持有任何真实凭证。Agent Vault 可以将 header 中类似 __anthropic_api_key__ 的虚拟值替换为真实凭证,或者直接替换经由它发出的出站请求中的 auth header,从而完成访问代理。
可插拔凭证存储(Pluggable Credential Stores): Vault 可以使用 Infisical 等外部 secrets store 作为后端,而非本地加密存储。这能进一步扩展 Agent Vault 的能力,例如使用 Infisical 提供的 dynamic secrets。
透明集成(Transparent Integration): AI Agent 可以继续使用 MCP、CLI、SDK、API 等现有工具,所有底层请求都会自动通过 Agent Vault 路由。Agent Vault 采用与接口无关、非侵入式的凭证代理方案:它会初始化 Agent 的运行环境,使其使用 HTTPS_PROXY,并兼容 Agent Vault 的 MITM 架构。
专用设计(Purpose-Built Design): mitmproxy、squid 等现有 forward proxy 需要经过修改,才能实现凭证代理并与 Agent 良好集成。Agent Vault 专为各类 Agent 使用场景的操作体验而设计,提供专用 CLI、多租户支持,以及由 Infisical 推动、面向 Agent 的产品路线图。
出口过滤(Egress Filtering): 由于经过身份验证的请求会流经 Agent Vault,因此你可以控制哪些 Agent 能访问哪些服务,以及这些服务上的哪些 API endpoint。
请求日志(Request Logging): 检查经过身份验证的流量,以监控和诊断 Agent 的行为。
默认情况下,未匹配任何服务的请求会作为普通代理流量转发;你也可以将 Vault 切换为严格拒绝模式(unmatched_host_policy=deny),让这类请求返回 403。
在这里阅读 Agent Vault 背后的完整故事。
Agent Vault 适用于各种 AI Agent 使用场景,包括安全的远程 coding agent、通用 Agent、自定义 Agent 与 harness、安全的临时 sandbox 等。
安全的远程 coding agent: 你可以运行远程 Claude Code session,并将其配置为通过 Agent Vault 代理请求。在这一配置中,你可以把 ANTHROPIC_API_KEY 和 GITHUB_PAT 设置到 Agent Vault 中,让 Claude Code 能够与 Anthropic API 和 GitHub API 交互,从而编写代码、创建 PR 等。同样的原理也适用于其他 coding agent。
安全的通用 Agent: 你可以将 OpenClaw、Hermes 及其他通用 Agent 配置为通过 Agent Vault 代理出站请求。
安全的自定义 Agent: 你可以使用自定义 harness 构建自己的 AI Agent,并将其配置为通过 Agent Vault 代理出站请求。
安全的临时 sandbox: 你可以配置一个 orchestrator(例如 backend),让它签发一个临时 token,再将该 token 传入 Agent sandbox,使 Agent 能够通过 Agent Vault 代理请求。你甚至可以让 sandbox 中的 Agent 向启动它的同一个 backend 回送请求。
Agent Vault 同时是 Vault 和代理服务,并以单个 binary 的形式交付,既可充当 server,也可作为 CLI client。它存储凭证,并使用 MITM proxy 架构将凭证代理给 AI Agent。按照设计,Agent Vault 应部署在与 AI Agent 不同的机器上,以提供必要的安全保证,确保 AI Agent 无法直接访问 Agent Vault 内部的凭证。
┌─────────────────────────────────────────────────────────────────┐
│ Public internet │
│ │
│ api.anthropic.com api.github.com api.stripe.com ... │
│ ▲ ▲ ▲ │
└──────────┼───────────────────┼──────────────────┼───────────────┘
│ │ │
└───────────────────┼──────────────────┘
│ outbound HTTPS, Agent Vault
│ injects credentials on the way out
┌──────────────────────────────┼──────────────────────────────────┐
│ Private network │ │
│ │ │
│ ┌───────────────────────────┴────┐ ┌────────────────────┐ │
│ │ Agent Vault │ │ AI agent │ │
│ │ :14321 management UI / API │◀────│ HTTPS_PROXY= │ │
│ │ :14322 MITM proxy │ │ agent-vault:14322 │ │
│ └────────────────▲───────────────┘ └────────────────────┘ │
│ │ │
└───────────────────┼─────────────────────────────────────────────┘
│ operator access: keep private, or front
│ with TLS + auth (SSO reverse proxy, IP
│ allowlist, or VPN) if you need remote admin
│
Operator
只需几个步骤,你就可以配置 Agent Vault,为 AI Agent 代理凭证:
安装并启动 Agent Vault server。你可以运行下面的脚本安装 Agent Vault;它支持 macOS(Intel + Apple Silicon)和 Linux(x86_64 + ARM64):
curl --proto '=https' --proto-redir '=https' --tlsv1.2 -fsSL https://get.agent-vault.dev | sh
启动 Agent Vault server,并为其设置 master password(请将密码妥善保存在安全位置);该密码会作为数据加密机制的一部分,并会在首次读取后从进程中清除。
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
server 会在端口 14321 上启动 HTTP API,并在端口 14322 上启动透明 HTTP/HTTPS proxy;同一个 listener 既处理面向 https:// upstream 的 CONNECT 请求,也处理面向 http:// upstream、采用绝对形式的 forward-proxy 请求。
Web UI 将在 http://<host>:14321 上可用,系统会提示你创建第一个用户,该用户称为实例所有者(instance owner)。
通过 management UI 或 Agent Vault 机器上的 CLI 创建 Vault、录入凭证并配置服务规则。例如,你可以为 ANTHROPIC_API_KEY 创建凭证,并创建一条服务规则,让 Agent Vault 将虚拟值 __anthropic_api_key__ 替换为真实 key。
通过 management UI 或 Agent Vault 机器上的 CLI 创建 Vault、录入凭证并配置服务规则。例如,你可以为 ANTHROPIC_API_KEY 创建凭证,并创建一条服务规则,让 Agent Vault 将虚拟值 __anthropic_api_key__ 替换为真实 key。
创建一个 Agent,用来表示长期运行的 Agent,并获取相应 token。或者,如果你需要启动临时的 sandboxed agent,可以用 Agent 表示 orchestrator backend,再由它签发一个短期 token,将其传入 sandbox,供 Agent 使用并通过 Agent Vault 代理请求。
创建一个 Agent,用来表示长期运行的 Agent,并获取相应 token。或者,如果你需要启动临时的 sandboxed agent,可以用 Agent 表示 orchestrator backend,再由它签发一个短期 token,将其传入 sandbox,供 Agent 使用并通过 Agent Vault 代理请求。
在 AI Agent 的运行环境中设置以下环境变量:
在 AI Agent 的运行环境中设置以下环境变量:
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__ // dummy key that will be substituted by Agent Vault
将 Agent Vault CLI 安装到 Agent 的运行环境中,并通过 Agent Vault CLI 启动 Agent,从而开始通过 Agent Vault 代理请求。
curl --proto '=https' --proto-redir '=https' --tlsv1.2 -fsSL https://get.agent-vault.dev | sh
由该 workflow 发布的 release archive 带有一份与生成它的 GitHub Actions run 绑定的 build provenance attestation。可使用 gh CLI 验证,无需额外工具,也不需要管理 key:
gh attestation verify agent-vault_*.tar.gz --repo Infisical/agent-vault
checksums.txt 同样包含在这份 attestation 的覆盖范围内;对于更喜欢这种方式的用户,其 cosign signature 仍可通过 cosign verify-blob 验证。
agent-vault run -- claude
agent-vault vault run -- agent
agent-vault vault run -- codex
agent-vault vault run -- opencode
或者,如果 Agent 运行在 Docker 中,你可以通过 Dockerfile 安装 Agent Vault CLI:将 binary 复制到自己的 image 中,再用它启动 Agent 进程。
# Add this line to your existing Dockerfile alongside your agent or app setup.
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 与之集成的方式有很多。我们建议查阅更完整的文档。
了解 Agent Vault 如何为 AI Agent 代理凭证:只需存储一次 key,将每个出站请求路由到 proxy,Agent 就能调用真实 API,却永远看不到 secret。
想查看完整的部署教程?请参阅“在 VPS 上运行 Hermes”,其中提供了一个端到端示例:Agent 通过代理获取凭证,并运行在另一台机器上。
你应该将 Agent Vault 作为独立服务部署在不同于 AI Agent 的 host machine 上,防止 Agent 利用共享 host 获取 Agent Vault 的访问权限。
你应该将 proxy 端口(默认为 14322)限制在 Agent 的私有网络内,因为凭证会在这里注入出站请求。如果你需要远程管理,暴露 14321 上的 management interface 相对更安全,但仍应像加固其他生产 Web 服务一样对其进行加固(TLS、IP allowlist)。可参考 examples/nginx-public-ui-proxy/ 中可直接使用的示例。
延迟(Latency): 你应该将 Agent Vault 与 AI Agent 部署在同一网络中,以降低请求延迟。
延迟(Latency): 你应该将 Agent Vault 与 AI Agent 部署在同一网络中,以降低请求延迟。
Token: 对于长期运行的 Agent,你应该在 Agent Vault 中创建一个 Agent 来表示它。对于临时 sandbox,你可能更适合签发作用域限定在特定 Vault 的短期 token,供 sandboxed agent 使用并通过 Agent Vault 代理请求。
Token: 对于长期运行的 Agent,你应该在 Agent Vault 中创建一个 Agent 来表示它。对于临时 sandbox,你可能更适合签发作用域限定在特定 Vault 的短期 token,供 sandboxed agent 使用并通过 Agent Vault 代理请求。
默认情况下,Agent Vault 会将所有状态存储在本地 SQLite database 中,无需任何额外配置。对于生产部署或运行多个实例的场景,可以将 DATABASE_URL 环境变量(或 --database-url flag)设置为 PostgreSQL connection string,Agent Vault 随即会切换为使用 Postgres 作为 backend。所有实例共享同一个 database,因此不同 replica 之间的状态能够保持一致。
在切换之前,请使用 agent-vault migrate-db --to postgres://... 迁移现有数据。有关部署示例(Kubernetes、Docker Compose)、架构说明和运维细节,请参阅 PostgreSQL 指南。
Agent Vault 提供 TypeScript SDK。如果你希望由 orchestrator 签发短期 token,并将 proxy 配置传入 sandboxed agent,使其通过 Agent Vault 代理请求,可以使用这个 SDK。
npm install @infisical/agent-vault-sdk
import { AgentVault, buildProxyEnv } from "@infisical/agent-vault-sdk";
const av = new AgentVault({
token: "YOUR_TOKEN", // agent token
address: "http://localhost:14321",
});
const session = await av
.vault("my-vault")
.sessions.create({ vaultRole: "proxy" });
// certPath is where you'll mount the CA certificate inside the sandbox.
const certPath = "/etc/ssl/agent-vault-ca.pem";
// env: { HTTPS_PROXY, HTTP_PROXY, NO_PROXY, NODE_USE_ENV_PROXY,
// SSL_CERT_FILE, NODE_EXTRA_CA_CERTS, REQUESTS_CA_BUNDLE,
// CURL_CA_BUNDLE, GIT_SSL_CAINFO, DENO_CERT }
const env = buildProxyEnv(session.containerConfig!, certPath);
const caCert = session.containerConfig!.caCertificate;
// Pass `env` as environment variables and mount `caCert` at `certPath`
// in your sandbox — Docker, Daytona, E2B, Firecracker, or any other runtime.
// Once configured, the agent inside just calls APIs normally:
// fetch("https://api.github.com/...") — no SDK, no credentials needed.
完整文档请参阅 TypeScript SDK README。
make build # Build frontend + Go binary
make test # Run tests
make web-dev # Vite dev server with hot reload (port 5173)
make dev # Go + Vite dev servers with hot reload
make docker # Build Docker image
本仓库采用 MIT expat license,但 ee 目录除外;该目录将包含需要 Infisical license 的高级企业功能。
如果你对 Infisical 感兴趣,或者希望探索 Agent Vault 更商业化的发展路径,可以查看我们的网站,或与我们预约会议。
无论贡献是大是小,我们都非常欢迎。Agent Vault 遵循与 Infisical 相同的贡献指南。
查看我们的指南,了解如何开始参与。
不知道从哪里开始?你可以:
加入我们的 Slack,在那里向我们提出任何问题。
既然你读到了这里,那么你很有可能会喜欢我们创造的产品。
你也可能成为我们团队中优秀的一员。我们正在快速发展,非常期待你的加入。
预览版。 Agent Vault 正在积极开发中,API 可能发生变化。部署前请先查看安全文档。