JarvisAgentBackend(engine_key: Optional[str] = None, agent_name: str = 'orchestrator', tools: Optional[List[str]] = None, telemetry: bool = False, gpu_metrics: bool = False, model: Optional[str] = None, max_turns: Optional[int] = None, skills_enabled: bool = True, overlay_dir: Optional[Path] = None)
Bases: InferenceBackend
Agent-level inference via SystemBuilder + JarvisSystem.ask().
Supports tool calling via the agent harness. Works for both local
and cloud models.
Source code in src/openjarvis/evals/backends/jarvis_agent.py
| def __init__(
self,
engine_key: Optional[str] = None,
agent_name: str = "orchestrator",
tools: Optional[List[str]] = None,
telemetry: bool = False,
gpu_metrics: bool = False,
model: Optional[str] = None,
max_turns: Optional[int] = None,
skills_enabled: bool = True,
overlay_dir: Optional[Path] = None,
) -> None:
from openjarvis.system import SystemBuilder
self._agent_name = agent_name
self._tools = tools or []
self._telemetry = telemetry
self._gpu_metrics = gpu_metrics
builder = SystemBuilder()
if engine_key:
builder.engine(engine_key)
if model:
builder.model(model)
builder.agent(agent_name)
if tools:
builder.tools(tools)
# Propagate gpu_metrics to the runtime config so SystemBuilder
# creates a GpuMonitor when building the InstrumentedEngine.
if gpu_metrics:
builder._config.telemetry.gpu_metrics = True
# Override the agent's per-run turn budget. JarvisConfig.agent.max_turns
# defaults to 10, which is too low for thinking/reasoning models on
# multi-step agentic benchmarks (Trinity-Large hit the cap on 25/50
# GAIA tasks before this was configurable per-eval).
if max_turns is not None:
builder._config.agent.max_turns = max_turns
# Plan 2B: per-condition skill switches. Mutate the builder's
# config directly so SystemBuilder picks them up at build time.
builder._config.skills.enabled = skills_enabled
if overlay_dir is not None:
builder._config.learning.skills.overlay_dir = str(overlay_dir)
self._system = builder.telemetry(telemetry).traces(True).build()
|
Functions
set_task_metadata(metadata: dict) -> None
Forward task environment metadata to the underlying agent.
Source code in src/openjarvis/evals/backends/jarvis_agent.py
| def set_task_metadata(self, metadata: dict) -> None:
"""Forward task environment metadata to the underlying agent."""
agent = getattr(self._system, "_agent", None)
if agent and hasattr(agent, "set_task_metadata"):
agent.set_task_metadata(metadata)
|