基于脱敏的内部智能代理系统设计方案
系统概述
核心需求
- 目标用户: 缺乏大型LLM部署能力的小公司
- 技术路径: 外部API + 内部MCP Tools + 数据脱敏
- 使用场景: 处理敏感数据的内部智能代理系统
系统架构原则
- 数据安全: 敏感数据不出本地环境
- 成本控制: 利用外部API降低基础设施成本
- 灵活扩展: 模块化设计支持功能扩展
三大核心模块
1. 脱敏映射转换模块 (Data Anonymization & Mapping)
1.1 数据提取引擎
-
小型LLM方案
- 使用轻量级本地模型(如Phi-3、Qwen等)
- 专门针对数值提取进行微调
- 支持多种数据类型识别(金额、日期、比例等)
-
正则表达式方案
- 预定义数值模式库
- 支持自定义规则配置
- 多语言数值格式支持
1.2 映射生成策略
-
UUID生成
- 使用UUID4确保唯一性
- 可选择性添加语义前缀(如NUM_、AMT_等)
- 支持批量生成和管理
-
Hash映射
- 使用安全哈希算法(SHA-256)
- 可配置盐值增强安全性
- 支持一致性哈希确保稳定性
1.3 本地数据库设计
-- 映射关系表
CREATE TABLE anonymization_mapping (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
original_value TEXT NOT NULL,
anonymized_id VARCHAR(64) UNIQUE NOT NULL,
data_type VARCHAR(32) NOT NULL,
context_info JSON,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_anonymized_id (anonymized_id),
INDEX idx_data_type (data_type)
);
-- 计算结果缓存表
CREATE TABLE calculation_cache (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
input_mapping_ids JSON NOT NULL,
operation_type VARCHAR(32) NOT NULL,
result_value TEXT NOT NULL,
result_anonymized_id VARCHAR(64) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_result_id (result_anonymized_id)
);
2. MCP计算工具模块 (MCP Calculation Tools)
2.1 工具类型设计
-
基础数学运算
- 四则运算(+、-、×、÷)
- 百分比计算
- 平均值、求和、最值
-
高级计算功能
- 统计分析(方差、标准差)
- 金融计算(利率、现值、未来值)
- 时间序列分析
-
批量处理工具
- 数组操作
- 矩阵运算
- 数据聚合
2.2 MCP工具接口规范
{
"tools": [
{
"name": "secure_calculate",
"description": "执行基于脱敏数据的安全计算",
"inputSchema": {
"type": "object",
"properties": {
"anonymized_ids": {
"type": "array",
"items": {"type": "string"},
"description": "脱敏后的数据标识符数组"
},
"operation": {
"type": "string",
"enum": ["add", "subtract", "multiply", "divide", "average", "sum"],
"description": "计算操作类型"
},
"parameters": {
"type": "object",
"description": "额外参数"
}
}
}
}
]
}
2.3 计算流程设计
- 接收请求: 解析LLM发送的脱敏标识符
- 数据还原: 查询本地数据库获取真实数值
- 执行计算: 使用内部计算引擎处理
- 结果脱敏: 为计算结果生成新的脱敏标识符
- 返回响应: 向LLM返回脱敏后的结果标识符
3. 模糊搜索算法模块 (Fuzzy Search Algorithm)
3.1 相似度计算算法
-
字符串相似度
- Levenshtein距离
- Jaro-Winkler相似度
- 最长公共子序列(LCS)
-
语义相似度
- 字符n-gram匹配
- 音节相似度
- 结构化相似度
3.2 搜索策略
-
多级搜索
- 精确匹配(优先级最高)
- 高相似度匹配(相似度>0.85)
- 模糊匹配(相似度>0.6)
-
上下文感知
- 结合数据类型进行匹配
- 考虑时间窗口相关性
- 利用历史匹配记录
3.3 算法实现示例
def fuzzy_search_mapping(query_id, threshold=0.6):
"""
模糊搜索映射关系
"""
candidates = get_all_anonymized_ids()
matches = []
for candidate in candidates:
# 计算相似度
similarity = calculate_similarity(query_id, candidate)
if similarity >= threshold:
matches.append({
'id': candidate,
'similarity': similarity,
'original_value': get_original_value(candidate)
})
# 按相似度排序
matches.sort(key=lambda x: x['similarity'], reverse=True)
return matches
系统集成架构
数据流向图
文件输入 → 脱敏模块 → 外部LLM API → MCP工具 → 模糊搜索 → 结果返回
↓ ↓ ↓ ↓ ↓
本地存储 ← 映射数据库 ← 计算请求 ← 数据还原 ← 相似匹配
安全边界
- 内部边界: 原始数据、映射关系、计算结果
- 外部边界: 脱敏标识符、计算指令、抽象结果
技术选型建议
核心技术栈
- 数据库: SQLite/PostgreSQL
- MCP框架: 官方MCP SDK
- 搜索引擎: Elasticsearch/Whoosh
- 机器学习: scikit-learn/transformers
部署建议
- 容器化: Docker + Docker Compose
- 监控: Prometheus + Grafana
- 日志: ELK Stack
- 备份: 定期数据库备份和恢复测试
预期收益
安全性提升
敏感数据100%本地化零原始数据泄露风险完整的审计追踪
成本优化
降低基础设施投入提高API使用效率减少合规性成本
扩展性保障
模块化架构易于维护支持多种数据类型可适配不同业务场景
实施路线图
第一阶段(MVP)
基础脱敏模块开发核心MCP工具实现简单模糊搜索功能
第二阶段(增强)
高级计算功能扩展智能模糊搜索优化性能和安全性提升
第三阶段(优化)
机器学习增强可视化管理界面企业级功能完善