fix(runtime): recover awake ownership and batch model failures
This commit is contained in:
1 parent
6b2c0f199d
commit
baf069854b
17 files changed
+477
-32
No files matched your search
@@ -82,6 +82,31 @@ async def run_loop(operator, monkeypatch, responses):
|
||||
return result, messages, invoke
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_generation_failure_hands_over_before_pausing(operator, monkeypatch):
|
||||
from artemis.llm.response_guard import ResponseIntegrityError
|
||||
from artemis.services import llm as gateway
|
||||
|
||||
node, state = operator
|
||||
primary, fallback = Mock(), Mock()
|
||||
contexts = []
|
||||
|
||||
async def invoke(model, messages):
|
||||
contexts.append(gateway._FALLBACK_AVAILABLE.get())
|
||||
if model is primary.bind_tools.return_value:
|
||||
raise ResponseIntegrityError("missing completed response")
|
||||
assert model is fallback.bind_tools.return_value
|
||||
return click()
|
||||
|
||||
monkeypatch.setattr("artemis.agents.operator.operator.acomplete", invoke)
|
||||
monkeypatch.setattr("artemis.agents.operator.operator.get_llm", Mock(return_value=fallback))
|
||||
messages = []
|
||||
result = await node._invoke_llm_loop(primary, messages, [], [], state)
|
||||
assert contexts == [True, False]
|
||||
assert len(result[0]) == 1
|
||||
assert len([m for m in messages if isinstance(m, AIMessage)]) == 1
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_prose_retry_keeps_context_and_recovers_once(operator, monkeypatch):
|
||||
prose = AIMessage(content="I will click the model menu.")
|
||||
|
||||
Reference in new issue
Block a user