Files
LocalAgent/docs/P1-06_隐私保护优化方案.md
Mimikko-zeus 8a538bb950 feat: refactor API key configuration and enhance application initialization
- Renamed `check_environment` to `check_api_key_configured` for clarity, simplifying the API key validation logic.
- Removed the blocking behavior of the API key check during application startup, allowing the app to run while providing a prompt for configuration.
- Updated `LocalAgentApp` to accept an `api_configured` parameter, enabling conditional messaging for API key setup.
- Enhanced the `SandboxRunner` to support backup management and improved execution result handling with detailed metrics.
- Integrated data governance strategies into the `HistoryManager`, ensuring compliance and improved data management.
- Added privacy settings and metrics tracking across various components to enhance user experience and application safety.
2026-02-27 14:32:30 +08:00

5.2 KiB
Raw Blame History

""" P1-06 隐私保护优化方案 问题:默认向 LLM 发送主目录/当前目录等环境信息,缺少最小化策略 """

优化方案总结

1. 核心改进

1.1 隐私配置管理模块 (app/privacy_config.py)

  • PrivacySettings: 数据类,定义所有隐私相关开关

    • 环境信息采集开关操作系统、Python版本、架构、主目录、工作空间、当前目录
    • 脱敏策略(路径脱敏、用户名脱敏)
    • 场景化策略(对话最小化、指导完整信息)
  • PrivacyManager: 隐私管理器

    • 加载/保存隐私配置到 .privacy_config.json
    • 提供 get_environment_info(scenario) 方法,按场景返回过滤后的环境信息
    • 实现路径脱敏:替换用户名为 <USER>,主目录为 <HOME>
    • 度量指标追踪:敏感字段上送次数、脱敏次数、用户关闭字段数

1.2 隐私设置 UI (ui/privacy_settings_view.py)

  • 可视化配置界面,用户可控制:
    • 哪些环境信息发送给 LLM
    • 是否启用脱敏策略
    • 场景化采集策略
  • 实时显示隐私度量指标(卡片式展示)
  • 支持导出隐私保护报告

1.3 集成到主应用 (app/agent.py)

  • 初始化 PrivacyManager 单例
  • 修改 _get_system_environment_info() 方法,接受 scenario 参数
  • 三个场景调用时传入不同场景标识:
    • chat: 对话场景(最小化信息)
    • guidance: 操作指导场景(完整信息)
    • execution: 执行场景(按需信息)
  • 在聊天视图添加"🔒 隐私"按钮,方便用户访问设置

2. 默认安全策略

2.1 默认关闭的敏感字段

  • 用户主目录(send_home_dir = False
  • 当前工作目录(send_current_dir = False

2.2 默认开启的脱敏

  • 路径脱敏(anonymize_paths = True
  • 用户名脱敏(anonymize_username = True

2.3 场景化最小化

  • 对话场景最小化(chat_minimal_info = True
    • 仅发送操作系统、Python版本
    • 不发送:任何路径信息
  • 指导场景完整信息(guidance_full_info = True
    • 操作指导需要完整环境信息以提供准确建议

3. 度量指标

3.1 追踪指标

  • sensitive_fields_sent: 敏感字段上送次数
  • anonymized_fields: 脱敏处理次数
  • user_disabled_fields: 用户关闭的字段数
  • total_requests: 总请求次数
  • sensitive_ratio: 敏感字段上送比率
  • anonymization_ratio: 脱敏处理比率

3.2 报告导出

  • 生成文本格式的隐私保护度量报告
  • 包含所有指标和当前设置详情
  • 支持一键导出到 workspace/privacy_report.txt

4. 用户体验

4.1 可控性

  • 用户可通过 UI 完全控制每个字段的采集
  • 实时预览当前设置状态
  • 保存后立即生效,无需重启

4.2 透明性

  • 度量指标可视化展示
  • 用户清楚知道发送了哪些信息
  • 支持导出报告用于审计

4.3 便捷性

  • 聊天界面直接访问隐私设置
  • 卡片式度量展示,一目了然
  • 智能默认值,开箱即用

5. 企业合规

5.1 最小化原则

  • 按场景采集,避免过度收集
  • 对话场景默认最小化信息

5.2 脱敏保护

  • 自动替换敏感路径信息
  • 用户名匿名化处理

5.3 审计支持

  • 完整的度量指标追踪
  • 可导出报告用于合规审计
  • 用户行为可追溯(关闭了哪些字段)

6. 技术实现亮点

6.1 单例模式

  • get_privacy_manager(workspace) 全局单例
  • 避免重复初始化,保证配置一致性

6.2 场景化设计

  • 不同场景传入不同 scenario 参数
  • 灵活控制信息粒度

6.3 持久化配置

  • JSON 格式存储在 workspace/.privacy_config.json
  • 跨会话保持用户设置

6.4 实时度量

  • 每次调用自动更新度量指标
  • 无需额外埋点代码

7. 使用示例

# 获取隐私管理器
privacy = get_privacy_manager(workspace)

# 对话场景(最小化)
env_info = privacy.get_environment_info(scenario='chat')
# 输出:操作系统: Windows\nPython版本: 3.11.0

# 指导场景(完整)
env_info = privacy.get_environment_info(scenario='guidance')
# 输出:操作系统: Windows 11 (...)\nPython版本: 3.11.0\n工作空间: <HOME>/workspace

# 更新设置
privacy.update_settings(send_home_dir=False, anonymize_paths=True)

# 查看度量
metrics = privacy.get_metrics()
print(f"敏感字段上送比率: {metrics['sensitive_ratio']:.1%}")

# 导出报告
report = privacy.export_metrics()

8. 后续优化建议

  1. 差分隐私: 对数值型信息(如文件数量)添加噪声
  2. 加密传输: 敏感信息端到端加密
  3. 本地模型: 支持完全本地运行,零数据上传
  4. 细粒度控制: 按 LLM 提供商设置不同策略
  5. 合规模板: 预设 GDPR、CCPA 等合规配置模板

9. 测试建议

  1. 验证默认配置下敏感字段不上送
  2. 验证脱敏功能正确替换路径
  3. 验证场景化策略生效
  4. 验证度量指标准确性
  5. 验证配置持久化和加载
  6. 验证 UI 交互和保存功能

10. 文档更新

需要更新以下文档:

  • README.md: 添加隐私保护说明
  • 用户手册: 隐私设置使用指南
  • 开发文档: 隐私管理器 API 说明
  • 合规文档: 数据采集和处理说明