多个 tool_calls 聚合产生损坏的输出
□ 说明
当模型在流化响应中返回多个"tool calls"时,工具调用数据会被错误地调用,导致输出不正确并导致无法可靠地解析单个函数调用.
-- -- . . .
□ 预期行为
答复应包含三个独立的工具:
• 工具1
贾森 { "函数":"执行 shell command", "论语":{ "shell command":"dotnet-version 2>/dev/null QQ回声"dotnet没有找到" {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
• 工具2
贾森
{
"函数":"执行 shell command",
"论语":{
"shell command":"sw vers 2>/dev/null &&-uname-a" (中文(简体) ).
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?工具 3
贾森 { "函数":"执行 shell command", "论语":{ "shell command":"ls -la *.csproj 2>/dev/null QQ 找到. -name\ *.csproj" -最大深度 3 2>/dev/null QQ头 -5" {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
-- -- . . .
□ 实际行为
多个工具调用被合并为单个已损坏的字符串 :
页:1
执行 shell 命令
({"shell command":"dotnet-version...")).
{"shell command":"sw vers 2>/dev/null {{{同-a'}
{"shell command":"ls-la *.csproj..."〕结果产出包括:
- 意外重复函数名称
- 来自不同工具的论据 组合在一起
- 无效的 JSON 碎片
- 被腐蚀的字符(QQM'、被损坏的引号、错误的命令字符串)
- 失去“工具”边界
被损坏的输出示例 :
页:1 执行 shell command ({"shell command"): "dotnet-version 2>/dev/null QQ回声"dotnet没有找到"}).
{"shell command":"sw vers 2>/dev/null {{{同-a'}
{"shell command":"ls-la ^M *.csproj 2>/dev/null → 找到. ^M-name" *.csproj" -最大深度 3 2>/dev/null → 头 -5"]
-- -- . . .
□ 影响
- 无法可靠地重建来自流块的工具呼叫.
- JSON分析失败了
- 多工具执行工作流程中断。
- 工具参数可能会被不同函数调用相混合。
- 无法保证工具引用令。
-- -- . . .
□ 根源分析
流线解析器似乎不正确汇总了“delta.tool calls”。
每个流块都包含一个"工具"调用. 索引“ 识别哪个工具叫做三角洲。
示例
### 1
贾森
{
"工具 调用":[
{
"指数":0,
"函数":{
"论语":"道网".
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
[ . ]
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?###春克 二.
贾森 { "工具 调用":[ { "指数": 1, "函数":{ "论语":"s". {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? [ . ] {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
3号
贾森
{
"工具 调用":[
{
"索引": 二,
"函数":{
"论语":"尔-拉".
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
[ . ]
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?当前聚合结果
页:1 点网w vers-la
++ 预期聚合结果
贾森
{
"工具 调用":[
{
"指数":0,
"论语":"道网......
{\fn华文楷体\fs16\1cHE0E0E0}
{
"指数": 1,
"论语":"s. "
{\fn华文楷体\fs16\1cHE0E0E0}
{
"索引": 二,
"论语":"尔-拉-."
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
[ . ]
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?-- -- . . .
□ 建议的修补
由“tool call.index”生成的串流式工具调用碎片。
实例执行
. . . . . . .内容来源: TheR1D/shell_gpt