ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenViking隐私系统:如何识别并脱敏Agent上下文中的敏感信息

OpenViking隐私系统:如何识别并脱敏Agent上下文中的敏感信息 OpenViking隐私系统如何识别并脱敏Agent上下文中的敏感信息【免费下载链接】OpenVikingSelf-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.项目地址: https://gitcode.com/GitHub_Trending/op/OpenVikingOpenViking 是一个面向 AI Agent 的自进化上下文数据库Self-evolving Context Database统一管理 Agent 的记忆、知识 RAG 与技能。随着 Agent 能力变强它的上下文里越来越多地出现 API Key、数据库密码、内部 endpoint 这类敏感信息。OpenViking 的隐私系统Privacy System专门解决这个问题写入时自动识别并脱敏敏感信息读取时按需还原让密钥不再以明文躺在技能文档里。Agent 上下文里哪些信息算敏感在 OpenViking 里Agent 的技能Skill以SKILL.md文件形式存储里面可能包含用户自己维护的配置。隐私系统的提取规则把这些字段归纳为 4 类类型典型字段示例 密钥凭证api_key、token、secret_key、client_secretsk-9f86d081881c... 服务端点base_url、endpoint、hosthttps://api.example.com/v1️ 资源标识project、resource_id、database、collectionmy_prod_db 账户信息username、password个人账号密码完整的识别规则写在 skill/privacy_extraction.yaml 这份提示词模板里并明确了三条边界既抽已有值也抽预期值即使文档里只写了需要配置 access_key而没有真实值也会登记该字段值为空字符串避免漏管不编造值模型严禁虚构密钥只会抽取文档中真实出现的内容忽略一次性业务参数query、limit这类临时查询输入不算敏感配置不会误伤。第一步让模型来识别敏感信息OpenViking 没有用一堆正则表达式硬匹配而是把识别工作交给大模型。当你通过add_skill写入一个技能时会触发隐私提取流程核心调用在 skill_extractor.py 的extract_skill_privacy_values函数中渲染提示词 → 调用模型 → 解析 JSON 输出得到形如{api_key: sk-xxx, base_url: https://...}的结构化键值对。这套方式的好处是语义理解文档里哪怕用中文写着访问密钥sk-xxx或者字段名大小写混乱模型也能归一化成snake_case标准字段名如 Access Key →access_key这比纯规则方案稳健得多。第二步占位符脱敏明文不再落盘识别出敏感值后OpenViking 会做一件关键的事把正文中的明文替换成占位符磁盘上只保存占位符版本。替换逻辑在 skill_placeholder.py脱敏前api_key: sk-9f86d081881c4a2bb36e6f89388e3e57脱敏后api_key: {{ov_privacy:skill:my_skill:api_key}}占位符的格式是{{ov_privacy:skill:技能名:字段名}}它同时携带了属于哪个技能、对应哪个字段两个信息为读取时精确还原提供依据。替换时还会智能处理 JSON 引号、keyvalue、key: value等多种写法确保配置文件结构不被破坏。 替换顺序有个小细节系统按值长度从长到短替换避免短值是长值的子串时产生误替换。敏感值存到哪里版本化的隐私配置仓库被抽走的敏感值不会丢它们被存入用户空间下的隐私配置仓库由 service.py 中的UserPrivacyConfigService统一管理存储结构如下viking://user/{user_space}/privacy/skill/{skill_name}/ ├── .meta.json # 元信息当前生效版本、最新版本、标签等 ├── current.json # 当前生效版本的完整快照 └── history/ ├── version_1.json └── version_2.json版本化带来两个实用能力密钥轮换可追溯每次更新密钥都会生成新版本并记录change_reason变更原因审计有据可查一键回滚如果发现新密钥配错了执行activate即可切回历史版本无需重新编辑技能文档。第三步读取时自动还原对调用方透明脱敏的意义在于Agent 真正要用这个技能时还得能拿到可用内容。OpenViking 的解法是读取时还原——当读取SKILL.md时fs_service.py 会自动识别 URI 中的技能名查询当前生效的隐私配置再由 skill_restore.py 的restore_skill_content函数把占位符替换回真实值。还原过程还内置了三种异常处理保证缺配置不会静默失败占位符有对应值→ 直接还原调用方拿到完整可执行内容占位符存在但值缺失→ 保留占位符并在文末追加[Privacy Config Notice]明确告知哪些配置缺失配置了但正文未引用→ 追加提示Configured but not referenced in content帮助排查。对上层 Agent 来说这一切完全透明一次普通的read调用拿到的就是还原后的技能文本不需要关心背后发生过脱敏和还原。如何用 CLI 管理隐私配置管理面通过 API 和 CLI 暴露端点定义在 privacy_configs.py常用命令如下# 查看所有隐私配置类别 openviking privacy categories # 列出 skill 类别下所有目标 openviking privacy list skill # 更新某技能的敏感值生成新版本 openviking privacy upsert skill my_skill \ --values-json {api_key:sk-new-key} # 回滚到历史版本 openviking privacy activate skill my_skill 1 # 读取技能占位符自动还原 openviking read viking://user/default/skills/my_skill/SKILL.md这套隐私设计带来了什么收益说明️ 降低泄露面SKILL.md里不再有任何明文密钥备份、同步、审计都安全 密钥轮换零成本换密钥只需更新隐私配置技能正文不用改⏪ 快速回滚版本化快照 activate一键切回 透明无感读取自动还原上层 Agent 完全无感知 可观测缺失/多余配置都会显式提示排障不抓瞎对新手来说最简单的理解方式是OpenViking 隐私系统 大模型识别 占位符脱敏 版本化金库 读取时自动还原。它让Agent 上下文里的敏感信息从散落各处的明文变成了集中管理、可审计、可随时回滚的配置项。延伸阅读官方概念文档docs/zh/concepts/13-privacy.md含完整链路图隐私系统源码目录openviking/privacy/隐私配置 API 文档docs/zh/api/10-privacy.md隐私服务测试用例tests/server/test_privacy_config_service.py【免费下载链接】OpenVikingSelf-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.项目地址: https://gitcode.com/GitHub_Trending/op/OpenViking创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表