Infisical/agent-vault
GitHub: Infisical/agent-vault
面向 AI 代理的 HTTP 凭证代理与保险库,通过在网络层透明注入凭证而非将密钥返回给调用方,从根本上杜绝代理程序泄露凭证的风险。
Stars: 188 | Forks: 12
HTTP 凭证代理与保险库
由 Infisical 推出的开源凭证代理,部署在您的代理程序与其调用的 API 之间。
代理程序不应持有凭证。Agent Vault 通过代理访问机制消除了凭证泄露的风险。
初次了解?发布博文 详细讲述了 Agent Vault 背后的完整故事。
文档 | 安装 | CLI 参考 | Slack
## 为什么选择 Agent Vault
传统的密钥管理依赖于将凭证直接返回给调用者。这在面对 AI 代理时会失效,因为它们是非确定性系统,容易受到提示注入攻击,从而可能被诱骗泄露其密钥。
Agent Vault 采用了不同的方法:**Agent Vault 绝不会向代理程序暴露存储在保险库中的凭证**。相反,代理程序将通过本地代理路由 HTTP 请求,该代理会在网络层注入正确的凭证。
- **代理访问,而非检索** - 您的代理程序会获得一个限定作用域的会话和一个本地 `HTTPS_PROXY`。它会像往常一样调用目标 API,然后由 Agent Vault 在网络层注入正确的凭证。凭证永远不会被返回给代理程序。
- **兼容任何代理程序** - 自定义的 Python/TypeScript 代理、沙箱进程,以及像 Claude Code、Cursor 和 Codex 这样的编码代理。任何使用 HTTP 进行通信的程序都能兼容。
- **静态加密** - 凭证使用随机数据加密密钥 (DEK) 通过 AES-256-GCM 进行加密。可选的主密码通过 Argon2id 封装 DEK,因此轮换密码不需要重新加密凭证。针对 PaaS 部署还提供了无密码模式。
- **请求日志** - 每个代理请求都会按保险库持久化记录,包含方法、主机、路径、状态、延迟以及涉及的凭证密钥名称。请求体、请求头和查询字符串不会被记录。每个保险库的保留期限均可配置。
## 安装
有关完整详细信息,请参阅[安装指南](https://docs.agent-vault.dev/installation)。
### 脚本安装 (macOS / Linux)
```
curl -fsSL https://get.agent-vault.dev | sh
agent-vault server -d
```
支持 macOS (Intel + Apple Silicon) 和 Linux (x86_64 + ARM64)。
### [Docker](https://docs.agent-vault.dev/self-hosting/docker)
```
docker run -it -p 14321:14321 -p 14322:14322 -v agent-vault-data:/data infisical/agent-vault
```
对于非交互式环境(Docker Compose、CI、detached 模式),请通过环境变量传入主密码:
```
docker run -d -p 14321:14321 -p 14322:14322 \
-e AGENT_VAULT_MASTER_PASSWORD=your-password \
-v agent-vault-data:/data infisical/agent-vault
```
### 从源码构建
需要 [Go 1.25+](https://go.dev/dl/) 和 [Node.js 22+](https://nodejs.org/)。
```
git clone https://github.com/Infisical/agent-vault.git
cd agent-vault
make build
sudo mv agent-vault /usr/local/bin/
agent-vault server -d
```
服务器会在端口 `14321` 上启动 HTTP API,并在端口 `14322` 上启动经过 TLS 加密的透明 HTTPS 代理。可通过 `http://localhost:14321` 访问 Web UI。
## 快速开始
### CLI — 本地代理 (Claude Code, Cursor, Codex, OpenClaw, Hermes, OpenCode)
使用 `agent-vault run`(完整形式:`agent-vault vault run`)包装任何本地代理进程。Agent Vault 会创建一个限定作用域的会话,设置 `HTTPS_PROXY` 和 CA 信任相关的环境变量,并启动代理——所有 HTTPS 流量都将被透明地代理和认证:
```
agent-vault run -- claude
agent-vault vault run -- agent
agent-vault vault run -- codex
agent-vault vault run -- opencode
```
代理程序会像往常一样调用 API(例如 `fetch("https://api.github.com/...")`)。Agent Vault 会拦截请求,注入凭证,然后将其转发到上游。代理程序永远不会接触到密钥。
对于**非协作式**沙箱——即子进程在物理上只能访问 Agent Vault 代理,无论它尝试做什么——可以通过 Docker 容器启动,并使用 iptables 锁定出站流量:
```
agent-vault run --sandbox=container --share-agent-dir -- claude
```
`--share-agent-dir` 会将宿主机的 `~/.claude` 目录绑定挂载到容器中,以便被沙箱化的代理程序能复用您现有的登录状态。目前仅支持 Claude;对其他代理程序的支持即将推出。
有关威胁模型和标志位详情,请参阅 [Container sandbox](https://docs.agent-vault.dev/guides/container-sandbox)。
### SDK — 沙箱代理 (Docker, Daytona, E2B)
对于运行在容器内部的代理程序,请从您的编排器中使用 SDK 创建会话,并将代理配置传入沙箱:
```
npm install @infisical/agent-vault-sdk
```
```
import { AgentVault, buildProxyEnv } from "@infisical/agent-vault-sdk";
const av = new AgentVault({
token: "YOUR_TOKEN",
address: "http://localhost:14321",
});
const session = await av
.vault("default")
.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, 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](sdks/sdk-typescript/README.md)。
## 开发
```
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 许可证](https://github.com/Infisical/infisical/blob/main/LICENSE) 发布,但 `ee` 目录除外,该目录将包含需要 Infisical 许可证的高级企业功能。
如果您对 Infisical 感兴趣,或者想为 Agent Vault 探索更具商业化的路径,请查看[我们的网站](https://infisical.com/)或[与我们预约会议](https://infisical.cal.com/vlad/infisical-demo)。
## 我们正在招聘!
如果您正在阅读这段话,那么您很可能非常喜爱我们打造的产品。
您也有可能成为我们团队的出色一员。我们正在快速发展,非常期待您的[加入](https://infisical.com/careers)。
标签:API网关, DNS解析, EVTX分析, HTTP代理, Infisical, IP 地址批量处理, JSONLines, MITM代理, Python, StruQ, TypeScript, 代理中间件, 代码分析, 会话管理, 凭证管理, 大模型安全, 安全插件, 开源项目, 提示注入防御, 数据加密, 数据隔离, 无后门, 日志审计, 本地代理, 源代码安全, 秘密管理, 网络安全, 请求拦截, 防数据泄露, 隐私保护, 零信任