Skip to content

jarvis_agent

jarvis_agent

Jarvis Agent backend — agent-level inference with tool calling.

Classes

JarvisAgentBackend

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)

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,
) -> 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
    self._system = builder.telemetry(telemetry).traces(telemetry).build()
Functions
set_task_metadata
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)