跳转至

Pi/OMP 状态工具输入脱敏

生成的 tool_call 和 tool_execution_start 钩子会在代理的执行主机上对输入进行脱敏,然后再将其传递给现有的状态传输层。引用 .ssh、.ssh-mcp、.mcp-secrets.env 或 .omp-backups-archive/omp-bak-keyfile 的输入会变成 { redacted: true }。匹配包括嵌套值、属性名、Windows 分隔符、大小写变体以及 shell 令牌边界。诸如 .ssh-backup 之类的同级名称仍为普通数据。

脱敏器将数据描述符复制到无原型对象中。它从不将源对象的 toJSON 或 getter 传递给传输层。循环引用、访问器、类实例、符号、函数和非 JSON 原始值会导致整个输入被脱敏。允许重复的普通对象引用。深度、已访问值、保留数组槽位(包括空位)以及被检查的文本都具有保守边界,以避免将无界工作转移到同步 JSON 序列化中。

该策略针对状态工具输入中的凭据路径引用。它不扫描转录文件、工具输出、提示词或任意秘密值,也不会擦除先前已持久化的状态。当 JavaScript 检查代理对象时,代理反射陷阱仍可能运行;脱敏器不是针对同一进程中恶意扩展的隔离边界。

普通问题信封和预览输入形状保持不变。旧版客户端已经接受对象类型的 tool_input;不更改任何 RPC 字段或操作码。相同的生成代码在本地、WSL 和 SSH 代理主机上运行;不会引入本地文件系统查找或替换。文件夹工作区无需特殊路径。

这遵循 PR #9554 的凭据引用策略,通过描述符复制和有界序列化,修正其先验证后使用原始对象的做法。

使用只读检出运行实际的 OMP 加载器/原生 HTTP 冒烟测试:

ORCA_BACKGROUND_LAUNCH=1 bun tests/tools/omp-status-input-redaction-smoke.mjs /path/to/oh-my-pi

它通过 OMP 加载 Orca 生成的扩展,触发合成工具事件,并检查三个真实的环回 HTTP 负载。主目录、配置和数据根目录均可丢弃;它不发起模型请求,也不声称执行交互式工具运行。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 orca48/orca