mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-29 18:46:59 +00:00
perf(relay): bypass inactive execution adapters
Signed-off-by: Alex Fournier <afournier@nvidia.com>
This commit is contained in:
parent
4fe4b0dca7
commit
bc597571fe
2 changed files with 47 additions and 1 deletions
|
|
@ -794,9 +794,14 @@ def resolve_execution_context(
|
|||
):
|
||||
session = turn.lease.session
|
||||
return turn.lease.host, session, turn.handle or session.handle
|
||||
runtime = get_runtime()
|
||||
# Managed-execution consumers create and retain the profile host before
|
||||
# reaching an out-of-turn adapter. Do not initialize Relay for the default
|
||||
# no-consumer path.
|
||||
runtime = get_runtime(create=False)
|
||||
if runtime is None:
|
||||
return None, None, None
|
||||
if not runtime.managed_execution_enabled():
|
||||
return None, None, None
|
||||
session = runtime.get_session(session_id)
|
||||
if session is None:
|
||||
session = runtime.ensure_session({"session_id": session_id})
|
||||
|
|
|
|||
|
|
@ -521,6 +521,47 @@ def test_tool_intercept_bypass_does_not_create_relay_host(monkeypatch):
|
|||
assert imports == []
|
||||
|
||||
|
||||
def test_execution_adapters_do_not_create_relay_host_without_a_consumer(
|
||||
monkeypatch,
|
||||
):
|
||||
from agent import relay_llm, relay_tools
|
||||
|
||||
relay_runtime._reset_for_tests()
|
||||
imports = []
|
||||
|
||||
def load_relay():
|
||||
imports.append("nemo_relay")
|
||||
raise AssertionError("disabled execution adapter created Relay host")
|
||||
|
||||
monkeypatch.setattr(relay_runtime, "_load_nemo_relay", load_relay)
|
||||
request = {"model": "test-model", "messages": []}
|
||||
response = object()
|
||||
tool_args = {"command": "true"}
|
||||
tool_result = object()
|
||||
|
||||
assert (
|
||||
relay_llm.execute(
|
||||
request,
|
||||
lambda observed: response if observed is request else None,
|
||||
session_id="llm-session",
|
||||
name="test-provider",
|
||||
model_name="test-model",
|
||||
)
|
||||
is response
|
||||
)
|
||||
result, observed_args = relay_tools.execute(
|
||||
"terminal",
|
||||
tool_args,
|
||||
lambda observed: tool_result if observed is tool_args else None,
|
||||
session_id="tool-session",
|
||||
)
|
||||
|
||||
assert result is tool_result
|
||||
assert observed_args is tool_args
|
||||
assert relay_runtime.get_host(create=False) is None
|
||||
assert imports == []
|
||||
|
||||
|
||||
def test_profile_key_caches_absolute_path_resolution(monkeypatch):
|
||||
relay_runtime._reset_for_tests()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue