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

171 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
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. 使用示例
```python
# 获取隐私管理器
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 说明
- 合规文档: 数据采集和处理说明