关于 agent-vault
agent-vault 是一项用于安全处理含机密配置文件的技能,可避免暴露机密值。它引导 Agent 检查、读取和写入配置,并将录入或查看机密的操作留给用户执行。
主要功能
- 01读写配置时隐藏机密值
- 02检查机密键是否存在
- 03列出已存储的键名
- 04由用户执行机密录入与查看
适用场景
- 01更新服务配置而不暴露凭据
- 02检查所需键是否已存储
- 03指导用户添加缺失的机密
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ botiverse/ agent-vault --skill agent-vault安装后在 Claude Code 中输入/agent-vault确认已加载。
详细介绍
agent-vault
读取和写入配置文件,全程无需接触机密值。机密信息存储在本地加密保险库中。你会看到 <agent-vault:key-name> 占位符;实际值会透明地写入磁盘。
安全命令(由你执行)
agent-vault read <file> Read file, secrets → <agent-vault:key>
agent-vault write <file> --content '...' Write file, <agent-vault:key> → real values
agent-vault has <key> [keys...] Check if keys exist (exit 0/1)
agent-vault list List stored key names
敏感命令(绝不执行——告诉用户运行这些命令)
agent-vault set <key> Prompt user to enter a secret
agent-vault import <file> Bulk import from .env
agent-vault rm <key> Remove a secret
agent-vault get <key> --reveal Show secret value (user only)
这些命令需要 TTY,如果你尝试执行,将会失败。
规则
- 绝不要使用 Read/Write/Edit 工具处理包含机密信息的文件。 请改用
agent-vault read和agent-vault write。 - 绝不执行敏感命令。 告诉用户在终端中运行这些命令。
- 始终先检查。 在要求用户设置可能已经存在的密钥前,先运行
agent-vault has <key>。 - 在你写入的所有文件内容中,都使用
<agent-vault:key-name>占位符。 - 引导用户。 缺少机密信息时,告诉用户要运行的确切命令,以及在哪里找到对应的值。
工作流
1. agent-vault has <key> ← check what's available
2. (if missing) tell user: ← "Please run: agent-vault set <key>"
3. (wait for user confirmation)
4. agent-vault read <file> ← read config with redacted secrets
5. agent-vault write <file> ... ← write config, secrets auto-restored
占位符格式
<agent-vault:key-name> —— 密钥名称由小写字母、数字和连字符组成。
示例:<agent-vault:telegram-bot-token>、<agent-vault:openai-key>、<agent-vault:db-password>
读取时,未存入保险库的高熵字符串会显示为 <agent-vault:UNVAULTED:sha256:XXXXXXXX>。请告诉用户将这些字符串存入保险库。
示例:设置新服务
# Check what exists
agent-vault has api-key db-password --json
# → {"api-key": true, "db-password": false}
请告诉用户(以文本形式,不要执行):
请运行:
agent-vault set db-password
用户确认后:
agent-vault write config.yaml --content 'api_key: <agent-vault:api-key>
db_password: <agent-vault:db-password>
host: 0.0.0.0
port: 8080'
示例:修改现有配置
# Read current state
agent-vault read config.yaml
# 1 api_key: <agent-vault:api-key>
# 2 db_password: <agent-vault:db-password>
# 3 port: 3000
# Write updated version
agent-vault write config.yaml --content 'api_key: <agent-vault:api-key>
db_password: <agent-vault:db-password>
port: 9090'
示例:通过 heredoc 写入(适用于较长内容)
agent-vault write docker-compose.yaml <<'EOF'
services:
app:
environment:
API_KEY: <agent-vault:api-key>
DB_PASSWORD: <agent-vault:db-password>
ports:
- "8080:8080"
EOF
评论
支持 Markdown