SECRET CHANNEL · 05/12

qwenpaw-secret-input

agent 需要凭据时向人要一次,明文不进模型上下文。

QWENPAW PLUGIN · ONE-TIME REF · EGRESS SCRUB

lang Pythonver v0.2.0license MIT
SCROLL
ONE-TIME REFMEMORY ONLYEGRESS SCRUBCONSENT CARDONE-TIME REFMEMORY ONLYEGRESS SCRUBCONSENT CARD
SEC.01

$做什么

QwenPaw 后端插件。agent 执行到一半需要凭据(推代码、调 API、签请求)时调用 request_secret,人在私有卡片里输入,模型只收到一个一次性 ref。明文保存在插件内存中,secret_exec 在进程内完成替换,工具输出里出现的原值被替换成 ***。

SEC.02

$快速开始

~/install.sh
SEC.03

$架构

模型 ──request_secret(label, reason)──► 私有卡片 (overlay / 独立答页)
                                            │ 人输入明文
                                            ▼
                                  插件内存 · 不落盘 · 有 TTL
                                            │
模型 ◄── {"status":"saved","ref":"sr_…"} ───┘

模型 ──secret_exec(ref, cmd)──► 确认卡:完整命令 + cwd ──批准──► 进程内替换 {{secret}} 执行
                                                                       │
                                                                       ▼
                                                              出站中间件:原值 → ***
模型 ──secret_export(ref, env_key)──► 确认卡:env 名 ──批准──► 宿主加密 env 存储
                                                                     后续 shell 用 $ENV_KEY
拒绝 / 超时 / 取消 ──► ref 不消费,仍可用于其他动作

四个 HTTP 端点挂在 /api/secret-input 下,只接受 loopback 或已认证调用方。卡片有两种渲染:阻塞时的 overlay,和一个自包含答页。

SEC.04

$要点

F01
🔑

三个工具

request_secret 阻塞等人并返回一次性 ref。secret_exec 在进程内替换占位符后执行命令。secret_export 把值写入宿主加密 env 存储。

F02
🧽

出站擦洗

一道中间件在工具结果进入 transcript、记忆和磁盘卸载路径之前改写它,作用于所有工具的结果。

F03
🛃

消费前确认

花掉 ref 之前弹确认卡,显示完整命令、工作目录或 env 名。控制字符转义显示,超过 4000 字符的命令在开卡前拒绝。

F04
🚫

确认由插件自带

QwenPaw 2.2.2 上实测 secret_exec 执行时宿主审批列表为空,宿主不拦插件工具,所以这道闸在插件里。

SEC.05

$路线与限制

← PREV · 04
agent-task-callback