核心用法
Bagman 是一套面向 AI 代理的密钥安全管理框架,核心解决三类问题:密钥丢失(会话间遗忘)、意外暴露(代码/日志/输出泄露)、提示词注入攻击(恶意诱导提取密钥)。其设计哲学是"代理不持有密钥,只持有获取密钥的权限"。
关键技术栈:
- 1Password CLI (`op`):唯一可信密钥源,代理通过命令行实时读取,密钥不落地磁盘
- 会话密钥(Session Keys):采用 ERC-4337 智能账户架构,代理获得的是有时间/金额/合约白名单限制的委托密钥,而非主私钥
- 输出脱敏:内置正则匹配 ETH 私钥、OpenAI/Anthropic/Groq API Key 等 5 类敏感模式,自动替换为
[REDACTED] - 预提交钩子:Git 提交前扫描暂存区,发现密钥模式即阻断提交
- 输入过滤:拦截 12 类提示词注入模式(如 "ignore previous instructions"、"reveal key" 等)
典型工作流:
1. 运维人员在 1Password 创建专用 Vault,存储带过期时间和额度限制的会话密钥
2. 代理运行时通过 op read 或 op run 动态注入环境变量
3. 所有钱包操作通过白名单函数隔离,无法执行未授权操作
4. 输出经过 sanitize_output() 处理后才发往聊天/日志/文件
显著优点
- 零持久化存储:密钥仅存在于 1Password 安全区,代理内存、日志、记忆文件均不保留完整密钥
- 最小权限原则:ERC-4337 会话密钥可精确限定单笔金额、合约地址、有效期,泄露后损失可控
- 多层防御纵深:输入过滤 → 权限隔离 → 运行时获取 → 输出脱敏 → 提交拦截,单点失效不导致密钥泄露
- 生产级 incident response:提供密钥泄露后的紧急撤销脚本、审计日志分析流程、轮换 SOP
- OpenClaw 原生集成:明确适配 OpenClaw 代理运行时,规范 TOOLS.md 密钥引用格式
潜在局限
- 1Password 单点依赖:若 1Password 服务不可用或 CLI 配置错误,代理完全无法获取密钥,可用性风险
- CLI 调用开销:每次密钥读取触发子进程调用,高频场景(毫秒级签名)存在性能瓶颈
- 会话密钥生态成熟度:ERC-4337 智能账户在部分链(非以太坊 L1)支持度不一,ZeroDev/Biconomy 等 SDK 存在供应商锁定
- 正则脱敏的漏报/误报:Base64 匹配可能过度屏蔽合法数据,新型密钥格式(如 newer OpenAI key format)需持续更新正则
- 人工运维成本:会话密钥需定期人工签发/续期/监控,全自动代理需额外设计"向人类申请权限"的流程
适合人群
- 开发 AI 交易代理、DeFi 自动化机器人的团队
- 需让 AI 访问 API 密钥(OpenAI、第三方服务)但担心提示词注入攻击的开发者
- 使用 OpenClaw 框架构建代理系统的工程师
- 企业安全团队评估 AI 代理密钥管理合规方案
常规风险
- 供应链攻击:
opCLI 二进制文件若被篡改,代理将泄露密钥至恶意程序;建议校验官方签名 - 环境变量残留:
op run注入的环境变量在子进程可见,若代理启动非受信子进程存在泄露风险 - 会话密钥滥用:虽权限受限,但若白名单合约本身存在漏洞(如可重入),代理仍可能耗尽额度
- 社交工程:攻击者可能伪造"密钥过期需重新输入"场景诱导运维人员暴露主密钥