核心用法
Confidant 是一款专为 AI Agent 设计的敏感信息接收工具,解决"如何安全获取用户 API Key、密码、Token"这一关键场景。其核心流程为:Agent 执行脚本 → 生成安全 URL → 将 URL 发送给用户 → 用户在浏览器中提交敏感信息 → 脚本自动接收并保存至本地文件。
主要脚本 request-secret.sh 支持多种模式:
--service <name>:按约定保存至~/.config/<name>/api_key--save <path>:指定显式文件路径--env <varname>:同时设置环境变量--tunnel:为远程用户自动启动 localtunnel 公网隧道--json:结构化输出便于自动化处理
针对 Agent 运行时的超时限制,文档强调必须使用 tmux 保持长轮询进程存活,避免在 exec 中直接执行导致被 SIGKILL。
显著优点
1. 零聊天暴露:敏感信息全程不经过对话历史,杜绝日志残留
2. 自动化闭环:从 URL 生成、隧道建立、轮询等待到文件保存 (chmod 600) 一气呵成
3. 双隧道支持:localtunnel(免账号)与 ngrok(需账号)自动检测,适应内外网场景
4. 人机协作设计:明确区分 Agent 动作(生成/等待)与用户动作(浏览器提交),流程清晰
5. 工程规范:提供完整 exit code 体系、JSON 错误格式、依赖检查与服务器诊断脚本
潜在缺点与局限性
- 依赖链较重:需预装
curl、jq、npm,且需全局安装 Confidant CLI - Node.js 生态:基于 npm/npx,对纯 Python/Go 环境不够友好
- 隧道可靠性:localtunnel 为社区服务,无 SLA 保障,可能偶发不稳定
- 单点阻塞:
--poll模式必须等待用户交互,不适合完全无人值守场景 - 无加密传输说明:文档未明确说明浏览器→隧道的 TLS 细节,假设依赖 localtunnel/ngrok 的默认加密
适合人群
- 开发 AI Agent 的工程师,需安全集成第三方 API 凭证
- 远程运维场景,需让用户安全提交服务器密码或 Token
- 注重审计合规、要求敏感信息不落日志的企业环境
常规风险
| 风险类型 | 说明 |
|---------|------|
| 隧道中间人 | 使用公共 tunnel 服务时,理论上存在 DNS 劫持或服务商嗅探风险 |
| 文件权限误配 | 虽默认 `chmod 600`,但若用户手动修改或 umask 异常,可能导致凭证泄露 |
| 服务器残留 | 未正确关闭的 Confidant 进程可能成为本地攻击面 |
| 社交工程 | 恶意 Agent 可能伪造 Confidant URL 诱导用户提交凭证至钓鱼站点 |
| 超时处理 | 未按文档使用 tmux 时,进程被 kill 后用户提交成功但 Agent 无法感知,造成状态不一致 |