OpenSRE 交互式 Shell 隐私设置:命令历史与对话记录保护的完全指南
2026/9/15 20:06:51 网站建设 项目流程

OpenSRE 交互式 Shell 隐私设置:命令历史与对话记录保护的完全指南

【免费下载链接】opensreBuild your own AI SRE agents. The open source toolkit for the AI era.项目地址: https://gitcode.com/GitHub_Trending/op/opensre

使用 OpenSRE 交互式 Shell 排查线上事故时,你输入的命令和 AI 的对话记录默认都会写入本地文件。本指南带你快速掌握 OpenSRE 的隐私机制:命令历史脱敏、对话日志保护与云端遥测关闭,帮你安心使用这个开源 AI SRE 智能体框架。

OpenSRE 是一个开源的 AI SRE 智能体框架,帮助你连接已有的监控工具、定义工作流并在自有基础设施上回答生产环境问题。由于交互式 Shell 中经常包含密钥、令牌和敏感标识符,OpenSRE 内置了完整的隐私保护层,从"写入磁盘前脱敏"到"一键关闭持久化",每一步都有明确的控制开关。

隐私保护的两个层面:命令历史与对话日志 🛡️

OpenSRE 的隐私控制分为两条线,分别保护两类数据:

数据类型存储位置默认行为
命令历史(你敲入的每一行)~/.opensre/interactive_history开启持久化,写入前自动脱敏
对话日志(LLM 完整提示词与响应)~/.opensre/prompt_log.jsonl本地 JSONL 记录 + 云端分析转发

命令历史支持上箭头回看和跨会话/history查询;对话日志则用于本地调试和/resume恢复会话上下文。两者默认都启用脱敏,但保护范围不同——理解这一点是做好隐私设置的前提。

10 种内置脱敏模式:令牌写入磁盘前就被替换 🔐

OpenSRE 内置了一组针对"凭据形状"的正则脱敏规则,任何匹配内容在写入磁盘前都会被替换为带标签的占位符(如[REDACTED:aws_key])。覆盖的类型包括:

  • AWS 密钥AKIA…ASIA…aws_secret_access_key=…
  • GitHub 令牌ghp_…github_pat_…
  • AI 服务商密钥sk-ant-…(Anthropic)、sk-…(OpenAI)
  • Slack 令牌xoxb-…xoxp-…xoxa-…
  • Stripe 密钥sk_live_…sk_test_…
  • Bearer 头与 JWTBearer <opaque>eyJ…三段式令牌
  • 密码与私钥--password=…、PEM 格式私钥

这些规则定义在 config/secret_redaction.py,被命令历史与对话日志两个层面共用,保证保护口径一致。

⚠️ 注意:脱敏只针对"凭据形状"的子串,不会处理主机名、业务上下文等自由文本。不要粘贴你不会写进系统日志的机密内容。

常用隐私斜杠命令:/history 与 /privacy 速查

在交互式 Shell 中,你可以随时用斜杠命令管理隐私状态,无需退出重启:

命令作用
/history查看全部已持久化的历史条目
/history clear清空历史文件,下次启动后上箭头回看也会重置
/history off暂停当前会话的持久化(内存模式)
/history on恢复当前会话的持久化
/history retention <N>设置磁盘最多保留 N 条,超出立即裁剪
/privacy查看当前持久化、脱敏状态、保留上限与威胁模型

这些命令的实现位于 surfaces/interactive_shell/command_registry/privacy_cmds.py,其中/privacy的实现 还会主动提醒你:历史文件是明文存储,共享机器前记得执行/history clear

环境变量配置:一键关闭持久化与遥测的最快方法

如果你希望在配置层面锁定隐私行为,OpenSRE 提供两组环境变量(优先级:环境变量 > 配置文件~/.opensre/config.yml> 内置默认值):

命令历史三件套:

变量默认值效果
OPENSRE_HISTORY_ENABLED1设为0则完全不持久化(仅内存)
OPENSRE_HISTORY_REDACT1设为0则写入原始内容(不推荐)
OPENSRE_HISTORY_MAX_ENTRIES5000保留上限,0表示不限制

对话日志四件套:

变量默认值效果
OPENSRE_PROMPT_LOG_DISABLED0设为1同时关闭本地文件与云端转发
OPENSRE_PROMPT_LOG_LOCAL_DISABLED0只跳过本地 JSONL,保留远程转发
OPENSRE_PROMPT_LOG_REDACT1设为0则记录/发送原始文本
OPENSRE_PROMPT_LOG_PATH~/.opensre/prompt_log.jsonl覆盖本地日志路径

变量解析逻辑分别在 surfaces/interactive_shell/prompt_history/policy.py 与 surfaces/interactive_shell/telemetry/config.py。完整变量清单参见官方文档 docs/configuration/environment-variables.mdx。

遥测退出机制:让对话文本永远留在本机

这是最容易被忽略、却最关键的一点:默认情况下,脱敏后的对话文本仍会通过$ai_generation事件转发到 OpenSRE 的一方分析端点(用于跟踪用量与质量)。如果你的对话涉及机密系统,仅靠脱敏是不够的。

三种全局遥测退出开关,任一即可停止所有产品分析数据(包括对话转发),且不影响本地文件:

  • OPENSRE_NO_TELEMETRY=1
  • OPENSRE_ANALYTICS_DISABLED=1
  • DO_NOT_TRACK=1

另外,~/.opensre/operations_log.jsonl只记录代理与调度器生命周期事件(循环开始、迭代结果、投递状态等),不存储任何提示词或响应正文,可放心保留。

推荐配置清单:按风险等级选择你的隐私姿态 ✅

场景推荐设置代价
日常个人使用保持默认(脱敏 + 5000 条上限)
涉及敏感事故的会话会话内/history off,结束后/history clear该会话无历史回看
强隐私姿态(推荐)OPENSRE_HISTORY_ENABLED=0+OPENSRE_NO_TELEMETRY=1失去跨会话上箭头回看
极致本地化在上行基础上加OPENSRE_PROMPT_LOG_DISABLED=1/resume会话恢复能力失效

威胁模型:官方明确告诉你的边界

OpenSRE 在官方文档中坦诚说明了这套机制的边界(详见 docs/interactive-shell-privacy.mdx):

  • 历史文件是本地磁盘上的明文,使用你的默认文件权限;在启用脱敏之前写入的旧条目,拥有读权限的攻击者仍可直接读取
  • 脱敏无法识别"长得像普通文本"的令牌(例如自然语言形式的密码)
  • v1 版本不支持自定义脱敏模式,如需处理内部令牌形状,请用/history off+/history clear组合应对
  • 云端转发开启时,脱敏后的对话文本会离开你的机器——机密场景请务必设置遥测退出变量

掌握以上设置后,你就可以在 OpenSRE 交互式 Shell 中放心处理生产事故,同时把命令历史与对话记录的暴露面压缩到最小。更多会话与数据管理细节可参考 docs/sessions.mdx。

【免费下载链接】opensreBuild your own AI SRE agents. The open source toolkit for the AI era.项目地址: https://gitcode.com/GitHub_Trending/op/opensre

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询