Harness¶
The Harness is the provider-neutral runtime between the model and the active embodiment. It owns orchestration and context. A deployment owns robot or simulator connections, sensing backends, policies, and hardware safety.
Components¶
Component |
Responsibility |
|---|---|
Refresh evidence, request one model decision, execute at most one selected Tool, and continue from its result. |
|
Keep Resident, Refreshed, and Accumulated information at separate lifetimes. |
|
Publish Tool Definitions, validate arguments, normalize Tool Results, and execute hooks. |
|
Maintain Task Notes, durable Memory, and Tool Experience. |
|
Keep Skill metadata Resident and load matched instructions on demand. |
|
Supply current visual evidence and, when base-motion support is configured, four-direction clearance for one decision. |
|
Apply deterministic pre-execution checks below the model. |
|
Provide terminal or Feishu/Lark implementations of |
|
Present stable capabilities, sensing configuration, and base-relative positions. |
Scene Graph and Evaluation are first-class physical-world components with their own guides:
Scene Graph makes the world readable and ref-addressable.
Evaluation judges physical outcomes after Tool execution.
Public composition boundary¶
The main composition root is Harness. Its constructor accepts public
protocols rather than importing a robot-specific runtime:
from harness import Harness
harness = Harness(
config,
model=model,
registry=registry,
observation_provider=observation_provider,
base_clearance_provider=base_clearance_provider,
scene_graph=scene_graph,
evaluator=evaluator,
post_execution_observation_provider=post_execution_observer,
owned_resources=(robot,),
)
Start from Port to Your Robot for a copyable integration path. Use the Deployment Guide for configuration, resource ownership, cancellation, logging, and failure handling.