Better Harness 隐私与证据边界指南如何确保原始提示词、凭证与密钥绝不出现在报告里【免费下载链接】better-harnessAn open-source Harness Engineering platform for coding agents—define harnesses as code, run controlled experiments, inspect evidence, and compare outcomes. Turn task evidence into actionable team and organization insights.项目地址: https://gitcode.com/gh_mirrors/be/better-harness在使用 Better Harness 这类 Harness 工程平台分析 Coding Agent 会话时最让人担心的问题是报告会不会把我们的原始提示词、API 密钥、密码或内部路径泄露出去答案是否定的。Better Harness 是一个面向 Coding Agent 的开源 Harness 工程平台它将任务证据转化为可行动的团队洞察而证据链的第一原则就是隐私边界——所有进入报告和检查器的文本都会先经过脱敏层凭证、密钥与敏感路径在落盘之前就被替换为redacted、secret或path占位符。一、为什么证据必须先过隐私关Better Harness 的核心工作是把 Coding Agent 的会话记录Session Evidence加工成可读的检查器视图、HTML 报告和组织级洞察。这意味着系统必须读你的用户提示词你写给 Agent 的每一句话工具调用轨迹执行过的命令、读过的文件会话元数据session ID、项目路径、时间戳。这些数据单独看都有泄露风险。因此 Better Harness 没有采用事后删的思路而是在证据投影evidence projection的入口处统一设卡渲染器拿到的永远是已经脱敏过的文本。这一设计在 session-notebook-evidence-projection.md 中有架构层面的说明。二、第一道防线提示词截断与回合选择 并非用了脱敏就原样输出。Better Harness 对原始提示词的第一层处理是最小化保留privacy-safe-text.mjs 中的privacySafeUserInputEvidence函数只从整段对话里挑选至多三个回合进入证据包保留位置内容默认截断长度request第一个用户请求220 字符intermediate中间最长的一轮120 字符followUp最后一轮追问160 字符其余回合不会被丢弃不留痕——证据包里会记录observedTurns观察到的总回合数和omittedTurns省略的回合数让报告既诚实又不冗余。更巧妙的是排除名单。isExcludedUserInput 会直接拒绝把以下内容当作用户提示词收录工具结果回显tool_result、tool_resultJSON注入的系统上下文AGENTS.md指令块、environment_context用户中断标记[Request interrupted by user]。因为这些伪用户输入往往是整段命令输出或配置文件内容的搬运最可能夹带敏感数据——直接从源头拒收比事后清洗更可靠。三、第二道防线凭证与密钥的定点清除 真正点名式的脱敏发生在 sanitizePrivateReviewText。它是一串按序执行的正则替换覆盖真实世界中绝大多数凭证形态敏感形态脱敏后对应代码位置Bearer eyJhbGciOi...Bearer redactedL64api_key: sk-xxx/passwordabcapi_keyredactedL65sk-…、ghp_…、glpat-…、xoxb-…secretL66-L67URL 内嵌凭据postgres://user:passhostpostgres://redactedhostL68AWS 密钥AKIA...secretL69其中 URL userinfo 凭据的清洗是被专门强化过的——security-reliability-boundaries 规格书 的验收条件 AC-4 明确要求脱敏必须覆盖 HTTP、数据库、SSH 等分层 URL 协议下的用户名字符串包括百分号编码和只有 username/token的变体。 设计原则一句话总结宁可损失诊断细节也要清除凭证材料Redaction must favor removing credential material over preserving diagnostic fidelity这条原则写在 规格书的风险备注 里。四、第三道防线本地路径与身份标识的匿名化 比密钥更日常的泄露是本地路径和会话标识。你的 home 目录结构、项目绝对路径、UUID 形式的 session ID同样会被 sanitizePrivateReviewText 统一替换/Users/xxx/project/src/...、C:\Users\...、~/...→path标准 UUID →idsession_xxx、task-xxxx形式的标识符 →id所有输出还强制截断到长度上限L80超长部分以省略号收尾防止整段日志涌入报告。此外Markdown 图片语法会被整体移除、链接只保留文字——这是为了堵住通过图片 URL 或深链夹带数据的隐蔽通道L62-L63。五、共享脱敏层不止一处防线而是同一把锁隐私边界不是一个模块的私事而是跨功能共享的同一套契约。会话分析与提交关联是两条独立的证据管线但共用同一脱敏标准会话分析管线privacy-safe-text.mjs提交-会话关联管线redaction.mjs 中的redactTranscriptText其文件注释直言不讳——Shared privacy boundary for local transcript-derived views面向本地转录视图的共享隐私边界在进入任何渲染器之前先移除凭证形态的值仓库侧还有独立的密钥扫描守护 secret-scan.mjs并且遵循**失败关闭fail-closed**策略扫描不完整时绝不报告成功而是返回独立非零退出码见 规格书 AC-3。也就是说即使某条证据链路有疏漏其他链路的脱敏仍然独立生效即使密钥扫描扫不全它也会明确告诉你没扫完而不是假装干净。六、安全地看证据Harness Inspector 长什么样 脱敏之后你依然能获得足够丰富的证据体验。在 Harness Inspector 的会话视图中用户提示词以短摘要卡片形式出现工具调用则按类型聚合展示展开检查时你会注意到图例里有一个明确的redacted detail项——系统会向用户透明地展示这里曾有细节已被脱敏而不是偷偷隐藏这套检查器的使用细节可以参考 harness-inspector 概念文档。七、如何验证这些隐私承诺Better Harness 对隐私边界的承诺不是口号而是可回归测试的契约2026-07-31-security-reliability-boundaries.md —— 专门记录凭证脱敏加固的规格书含 AC-4 验收条件test/sessions/ —— 会话分析管线的隐私与会话测试集test/agent-guardrails-secret-scan.test.mjs —— 密钥扫描的失败关闭行为测试。回归测试会逐字断言精确的凭证值不得出现在任何输出中exact credential non-retention覆盖从 GitLab token 到分层 URL 各种形态。八、小结隐私是证据链的地基 Better Harness 对原始提示词、凭证、密钥绝不进入报告的实现可以浓缩为四条原则源头最小化只保留 1N 个提示词回合其余留痕但不收录定点清除Bearer、API Key、Git/AWS 令牌、URL 凭据等 6 类以上形态逐一替换匿名化路径、UUID、会话 ID 全部抽象为占位符并强制截断失败关闭扫描不全就明说绝不假装安全。作为新手你不需要自己写任何过滤规则——只要通过正常流程生成报告这些防线就已经默认生效。你唯一要做的是在 references/session-evidence/ 的阅读材料里花十分钟理解证据包的保留与省略语义然后放心地把团队会话数据交给 Better Harness 分析。【免费下载链接】better-harnessAn open-source Harness Engineering platform for coding agents—define harnesses as code, run controlled experiments, inspect evidence, and compare outcomes. Turn task evidence into actionable team and organization insights.项目地址: https://gitcode.com/gh_mirrors/be/better-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考