Commit 6947904
committed
fix(openai): keep streamed reasoning out of text_content so reasoning-model agent loops don't terminate early; bump 4.2.5
complete_streaming merged each reasoning delta into BOTH reasoning_content_accum AND
text_content (via merge_stream_text). For a reasoning model (glm5.1/zhipu, DeepSeek-R1),
the chain-of-thought thus landed in the assistant message's text content. Consequences:
- response.text() returned the reasoning, so a pure 'thinking' turn (reasoning, no content,
no tool call) looked like a finished answer -> the agent loop's complete_no_tool_response
treated it as final (looks_incomplete(reasoning) is usually false) and TERMINATED instead
of giving the model another turn to act. In the multi-agent diagnose this is why workers
never reached generate_object -> '未返回结构化输出'.
- skip_content (= !text_content.is_empty()) tripped once reasoning arrived, dropping the
model's real content.
Fix: reasoning accumulates ONLY into reasoning_content (4 sites: message/delta branches of
both streaming fns); text_content holds real content only. A reasoning-only turn now yields
empty text() so looks_incomplete('')==true keeps the loop going. Two streaming regression
tests (mock SSE) lock it. Upstream agent-loop half of the same cross-model reasoning bug as
4.2.4's generate_object extraction fix.1 parent 69c6b29 commit 6947904
11 files changed
Lines changed: 165 additions & 43 deletions
File tree
- core
- src/llm
- sdk
- node
- examples
- python-bootstrap
- src/a3s_code
- python
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
731 | 731 | | |
732 | 732 | | |
733 | 733 | | |
734 | | - | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
735 | 743 | | |
736 | 744 | | |
737 | 745 | | |
738 | 746 | | |
739 | 747 | | |
740 | 748 | | |
741 | 749 | | |
742 | | - | |
| 750 | + | |
743 | 751 | | |
744 | 752 | | |
745 | 753 | | |
| |||
782 | 790 | | |
783 | 791 | | |
784 | 792 | | |
785 | | - | |
| 793 | + | |
| 794 | + | |
786 | 795 | | |
787 | 796 | | |
788 | 797 | | |
789 | 798 | | |
790 | 799 | | |
791 | 800 | | |
792 | | - | |
793 | | - | |
794 | | - | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
795 | 805 | | |
796 | 806 | | |
797 | 807 | | |
| |||
904 | 914 | | |
905 | 915 | | |
906 | 916 | | |
907 | | - | |
| 917 | + | |
| 918 | + | |
908 | 919 | | |
909 | 920 | | |
910 | 921 | | |
911 | 922 | | |
912 | | - | |
913 | | - | |
914 | | - | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
915 | 927 | | |
916 | 928 | | |
917 | 929 | | |
| |||
941 | 953 | | |
942 | 954 | | |
943 | 955 | | |
944 | | - | |
| 956 | + | |
| 957 | + | |
945 | 958 | | |
946 | 959 | | |
947 | 960 | | |
948 | 961 | | |
949 | 962 | | |
950 | | - | |
| 963 | + | |
951 | 964 | | |
952 | 965 | | |
953 | 966 | | |
| |||
1200 | 1213 | | |
1201 | 1214 | | |
1202 | 1215 | | |
| 1216 | + | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
| 1221 | + | |
| 1222 | + | |
| 1223 | + | |
| 1224 | + | |
| 1225 | + | |
| 1226 | + | |
| 1227 | + | |
| 1228 | + | |
| 1229 | + | |
| 1230 | + | |
| 1231 | + | |
| 1232 | + | |
| 1233 | + | |
| 1234 | + | |
| 1235 | + | |
| 1236 | + | |
| 1237 | + | |
| 1238 | + | |
| 1239 | + | |
| 1240 | + | |
| 1241 | + | |
| 1242 | + | |
| 1243 | + | |
| 1244 | + | |
| 1245 | + | |
| 1246 | + | |
| 1247 | + | |
| 1248 | + | |
| 1249 | + | |
| 1250 | + | |
| 1251 | + | |
| 1252 | + | |
| 1253 | + | |
| 1254 | + | |
| 1255 | + | |
| 1256 | + | |
| 1257 | + | |
| 1258 | + | |
| 1259 | + | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
| 1269 | + | |
| 1270 | + | |
| 1271 | + | |
| 1272 | + | |
| 1273 | + | |
| 1274 | + | |
| 1275 | + | |
| 1276 | + | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
| 1280 | + | |
| 1281 | + | |
| 1282 | + | |
| 1283 | + | |
| 1284 | + | |
| 1285 | + | |
| 1286 | + | |
| 1287 | + | |
| 1288 | + | |
| 1289 | + | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
| 1295 | + | |
| 1296 | + | |
| 1297 | + | |
| 1298 | + | |
| 1299 | + | |
| 1300 | + | |
| 1301 | + | |
| 1302 | + | |
| 1303 | + | |
| 1304 | + | |
| 1305 | + | |
| 1306 | + | |
| 1307 | + | |
| 1308 | + | |
| 1309 | + | |
| 1310 | + | |
| 1311 | + | |
| 1312 | + | |
| 1313 | + | |
| 1314 | + | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
| 1322 | + | |
| 1323 | + | |
| 1324 | + | |
1203 | 1325 | | |
1204 | 1326 | | |
1205 | 1327 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
52 | 52 | | |
53 | 53 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| |||
0 commit comments