Skip to content

hermes_agent

hermes_agent

HermesBackend - runs real Hermes Agent as a subprocess per task.

Implements the InferenceBackend ABC by spawning hermes_runner.py with the foreign Hermes installation on sys.path. Foreign code never imports into this process; we cross the boundary only via stdin/stdout JSON.

Classes

HermesBackend

HermesBackend(base_url: str, api_key: str, api_mode: str = 'chat_completions', max_iterations: int = 90, timeout_seconds: float = 7200.0)

Bases: InferenceBackend

Spawn real Hermes Agent (pinned commit) as a subprocess per task.

Source code in src/openjarvis/evals/backends/external/hermes_agent.py
def __init__(
    self,
    base_url: str,
    api_key: str,
    api_mode: str = "chat_completions",
    max_iterations: int = 90,
    timeout_seconds: float = 7200.0,
) -> None:
    self._base_url = base_url
    self._api_key = api_key
    self._api_mode = api_mode
    self._max_iterations = max_iterations
    self._timeout = timeout_seconds

    cfg = load_third_party_config()
    self._entry: ThirdPartyEntry = cfg.entries["hermes"]
    verify_commit_pin(self._entry)
Attributes
framework_commit_value property
framework_commit_value: str

Pinned commit of Hermes Agent (for telemetry tagging).

Functions