JSON 荷载自愈与 Surrogate 代理对清洗
解密 agent/message_sanitization.py 参数纠正、控制字符逃逸与图片标签移除细节
📊 图 3-2-1:损坏 JSON 荷载自愈、括号匹配与 Surrogate 代替清洗流图
🩹 1. JSON 损坏自动修复 (_repair_tool_call_arguments)
大模型可能因为输出被突然截断、或者是因框架缺陷产生畸形的 JSON 参数段。在 agent/message_sanitization.py 的 _repair_tool_call_arguments() 方法中,系统提供了多级防御修复,计算左右大括号和右大括号的数量差值,自动在字符串结尾补齐相应数量 of } 和 ]。
📊 图 3-2-2:工具执行流程、参数净化与错误重试控制架构图
🔒 2. Surrogate 代理对清洗与图片处理
- Surrogate 代理对清洗 (_sanitize_surrogates):部分模型的 Byte-level 输出会在遇到中文或特殊符号时意外抛出孤立的代理对(lone surrogates,如
\ud800到\udfff),系统将它们强制替换,保障了系统稳定性。 - 不支持图片时的降级 (_strip_images_from_messages):当大模型返回不支持图片上传报错时,系统会自动剔除消息列表里的图片部分。