preserve output budget for artifact body recovery

This commit is contained in:
pewdiepie-archdaemon
2026-09-18 16:29:04 +00:00
parent a394ea25d3
commit 629bd32d03
2 changed files with 8 additions and 5 deletions
+5 -4
View File
@@ -4393,10 +4393,11 @@ async def stream_preview(*, endpoint_url, model, messages, headers, turn_contrac
retrievals=successful_web_retrievals,
search_limit=2,
)
round_max_tokens = (
min(request_max_tokens, 4096)
if artifact_body_handoff_target else request_max_tokens
)
# Thinking providers can consume several thousand tokens before
# emitting the requested body. Reusing the configured output
# budget avoids a reasoning-only response that leaves the
# required artifact unwritten.
round_max_tokens = request_max_tokens
request = {'model': model, 'messages': request_messages, 'temperature': temperature,
'max_tokens': round_max_tokens, 'stream': True,
'stream_options': {'include_usage': True},
+3 -1
View File
@@ -613,7 +613,7 @@ async def test_repeated_off_contract_calls_recover_via_required_artifact_body(mo
'completion_requirements': {
'required_artifacts': ['/workspace/output.html'],
},
}, max_rounds=5,
}, max_tokens=8192, max_rounds=5,
)]
assert [block.tool_type for block in executed] == ['write_file']
@@ -622,6 +622,8 @@ async def test_repeated_off_contract_calls_recover_via_required_artifact_body(mo
if message.get('role') == 'assistant' and message.get('tool_calls')
)
assert prior_tool_turn['reasoning_content'] == 'reasoning-one'
assert requests[2]['max_tokens'] == 8192
assert requests[3]['max_tokens'] == 8192
assert executed[0].content == (
'/workspace/output.html\n<html><body>Recovered</body></html>'
)