AI上下文投毒怎么防:检索结果、网页摘要和历史记忆都要标来源

Written by

in

AI Agent做任务时,经常把很多内容塞进同一个上下文:用户指令、系统规则、网页搜索结果、RAG召回片段、历史记忆、工具返回值、错误日志。上下文越丰富,越容易出现一个问题:模型分不清哪些内容可信,哪些只是资料。

上下文投毒不是只发生在RAG系统里。任何会把外部内容带进模型的AI工具,都需要来源标记。

不同来源要分层

最基本的做法,是给每段上下文标注来源类型:用户输入、系统规则、内部知识库、外部网页、工具结果、历史记忆、模型自我总结。系统规则和授权策略应该永远高于网页内容;外部网页和用户上传文件默认不可信。

如果所有内容都拼成一段纯文本,模型更容易把第三方资料里的命令当成真实指令。

可信等级要可见

来源标记还不够,还要有可信等级。公司制度、已审核知识库、实时数据库、用户上传文档、公开网页、历史记忆,可信度不同。工具执行前可以根据可信等级决定是否允许动作。

例如外部网页可以用于摘要和引用,但不应直接触发发邮件、改权限、上传文件等动作。

历史记忆要有过期策略

Agent记忆很方便,但旧记忆可能过期、被污染或不再适用于当前项目。记忆应有创建时间、来源、适用范围和过期条件。长期记忆进入生产前,最好经过人工确认或自动规则筛选。

把每次对话的模型总结直接当成长期事实,是很危险的省事。

中转站看调用异常

上下文投毒往往会带来调用侧异常:上下文突然变长、工具调用次数上升、模型切换到高成本路径、失败重试增多。通过 https://top-api.cc 这类统一API入口,可以按项目观察token、耗时、失败率和模型使用变化,帮助团队发现某个Agent任务是否被异常内容带偏。

落地清单

  • 每段上下文标注来源
  • 外部内容默认低可信
  • 工具执行前检查来源等级
  • 历史记忆设置过期和适用范围
  • 召回片段保留文档ID和更新时间
  • 异常长上下文触发告警或降级

结语

上下文越丰富,越需要秩序。来源、可信度、时间和适用范围标清楚,模型才更不容易把“资料里的话”误当成“必须执行的命令”。

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *