[Bug]: LLM 工具调用 XML 泄露导致快速无限膨胀污染上下文
I maintainer di solito rispondono entro 8 giorni
@wsp1911 ci sta già lavorando.
Dal 14/7/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Summary
LLM 推理异常时,将工具调用指令(<tool_calls> 等 XML 标签)以纯文本形式输出到对话区。系统未做防护,将其识别为合法调用继续执行,形成递归循环,导致上下文在数秒内无限膨胀直至撑爆。
预期行为: 系统应检测这种泄露并中断循环,而非无限递归。
Area
Desktop app
Reproduction or evidence
复现步骤:
发起对话触发 LLM 调用
模型某次推理异常,输出中出现本应是工具调用指令的 XML 标签(如 <tool_calls>...)作为自然语言回复内容
系统解析输出时检测到 <tool_calls>,将其作为合法调用执行
工具返回结果 → 再次喂给 LLM → LLM 再次输出同样的 XML 标签
循环往复,上下文飞速膨胀
示例:
<|DSML|tool_calls> <|DSML|invoke name="ExecCommand"> <|DSML|parameter name="cmd" string="false">Get<|DSML|tool_calls> <|DSML|invoke name="ExecCommand"> <|DSML|parameter name="cmd" string="false">Get-<|DSML|tool_calls> <|DSML|invoke name="ExecCommand"> <|DSML|parameter name="cmd" string="false">Get-Child<|DSML|tool_calls> <|DSML|invoke name="ExecCommand"> <|DSML|parameter name="cmd" string="false">Get-ChildItem<|DSML|tool_calls>
可见工具调用 XML 被当作纯文本输出到对话区,且 Get- 命令不断重复,形成死循环。
建议修复方向(供参考):
泄露检测:解析 LLM 输出时,若 <tool_calls> 出现在自然语言文本块中,判定异常并中断
递归熔断:单次请求最大工具调用嵌套深度限制在 10 层以内
死循环检测:连续 2-3 轮工具调用输出结构完全相同,判定为死循环并立即中断
Environment, if relevant
BitFun版本:0.2.12
平台:Win11
LLM:DeepSeekv4flash
- Lingua principale
- Rust
- Stelle
- 2.3k
- Fork
- 236
- Merge medio
- 2h 42m
- PR unite (30g)
- 572
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di GCWing/OpenBitFun
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
GCWing/OpenBitFun#3213 · 1 commento ·
I maintainer di solito rispondono entro 8 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
GCWing/OpenBitFun#2363 ·
I maintainer di solito rispondono entro 8 giorni
-
question
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
GCWing/OpenBitFun#2340 ·
I maintainer di solito rispondono entro 8 giorni
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
GCWing/OpenBitFun#3229 ·
I maintainer di solito rispondono entro 8 giorni
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
GCWing/OpenBitFun#3226 ·
I maintainer di solito rispondono entro 8 giorni
Tutte le issue di GCWing/OpenBitFun
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
arkworks-rs/algebra#1161 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
lbjlaq/Antigravity-Manager#3525 · 2 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Registry Scheduling: startup logging goes to stdout, colliding with a stdout audit destinationApertaagent-ready area:platform bug criticality:p3 rust triage:needs-implementation
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
registrystack/registry-stack#1583 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
Docs: "Work with Codex from anywhere" page still claims Windows mobile support is "coming soon"Apertaapp documentation remote windows-os
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno