package permission // 安全工具白名单 -- 零延迟快速放行层. // // 白名单中的工具被认为是只读或安全操作,无需 AI 判断即可直接放行. // 这是分类器的第一层过滤,拦截 ~70% 的请求. // // 升华改进(ELEVATED): 白名单是可配置的,不硬编码. // 默认包含所有只读工具,用户可以通过配置扩展. // 替代方案:硬编码白名单(简单但不可扩展,企业用户无法自定义安全策略). // DefaultSafeTools 是默认的安全工具白名单. // 包含所有只读工具和不会修改系统状态的操作. // // 精妙之处(CLEVER): 白名单的工具选择标准是"即使被恶意调用也不会造成损害"-- // 读文件,搜索代码,列任务这些操作最多泄露信息(这本来就是 Agent 需要的), // 但不会修改或删除任何东西.信息泄露由对话隔离保证,不在分类器的职责范围内. var DefaultSafeTools = map[string]bool{ // 文件读取 "Read": true, // 代码搜索 "Grep": true, "Glob": true, // 工具元数据 "ToolSearch": true, // 任务管理(只读操作) "TaskCreate": true, "TaskGet": true, "TaskList": true, "TaskUpdate": true, // Web 搜索(只读) "WebSearch": true, } // MergeWhitelist 合并用户自定义的安全工具到白名单. // 返回合并后的新白名单(不修改原始 map). func MergeWhitelist(base map[string]bool, extra []string) map[string]bool { merged := make(map[string]bool, len(base)+len(extra)) for k, v := range base { merged[k] = v } for _, tool := range extra { merged[tool] = true } return merged }