Complete required research before repairing final-answer presentation

This commit is contained in:
pewdiepie-archdaemon
2026-09-17 21:50:30 +00:00
parent a312e918e7
commit 0196ccb575
2 changed files with 16 additions and 12 deletions
+13 -10
View File
@@ -4313,8 +4313,17 @@ async def stream_preview(*, endpoint_url, model, messages, headers, turn_contrac
history[-1]['content'] = content
yield event({'delta': content})
break
research_expansion_due = (
broad_current_web_request(direct_user_text)
and successful_web_searches == 1
and web_search_attempts < 2
and not breadth_recovery_attempted
and not search_completion_attempted
and round_number < round_limit
)
if (
requested_web_source_links(direct_user_text)
not research_expansion_due
and requested_web_source_links(direct_user_text)
and successful_web_searches
and not re.search(r'https?://\S+', content or '')
and not citation_recovery_attempted
@@ -4341,7 +4350,8 @@ async def stream_preview(*, endpoint_url, model, messages, headers, turn_contrac
yield event({'type': 'completion_recovery', 'reason': 'requested_source_link_missing'})
continue
if (
contentless_final_response(content)
not research_expansion_due
and contentless_final_response(content)
and answer_recovery_attempts == 0
and round_number < round_limit
):
@@ -4359,14 +4369,7 @@ async def stream_preview(*, endpoint_url, model, messages, headers, turn_contrac
})
yield event({'type': 'completion_recovery', 'reason': 'contentless_answer'})
continue
if (
broad_current_web_request(direct_user_text)
and successful_web_searches == 1
and web_search_attempts < 2
and not breadth_recovery_attempted
and not search_completion_attempted
and round_number < round_limit
):
if research_expansion_due:
breadth_recovery_attempted = True
force_web_search_next_round = True
replace_streamed_draft_on_finish = True
+3 -2
View File
@@ -1199,7 +1199,8 @@ async def test_stream_bounds_research_to_two_searches_fetch_then_synthesis(monke
@pytest.mark.asyncio
@pytest.mark.parametrize('embedded_article', [False, True])
@pytest.mark.parametrize('empty_second_search', [False, True])
async def test_stream_retries_an_obviously_truncated_broad_web_answer(monkeypatch, embedded_article, empty_second_search):
@pytest.mark.parametrize('sources_requested', [False, True])
async def test_stream_retries_an_obviously_truncated_broad_web_answer(monkeypatch, embedded_article, empty_second_search, sources_requested):
"""Broad current research expands, retrieves evidence, then synthesizes."""
import src.clean_agent_preview as module
@@ -1286,7 +1287,7 @@ async def test_stream_retries_an_obviously_truncated_broad_web_answer(monkeypatc
contract = resolve_full_inventory_contract(schemas=schemas, policy=ToolPolicy())
raw = [chunk async for chunk in stream_preview(
endpoint_url='http://test', model='test',
messages=[{'role': 'user', 'content': 'Latest news in AI?'}],
messages=[{'role': 'user', 'content': 'Latest news in AI?' + (' Include source links.' if sources_requested else '')}],
headers={}, turn_contract=contract, session_id='test', owner='test',
disabled_tools=set(), tool_policy=ToolPolicy(), max_rounds=5,
)]