Traditional "LLM-direct-to-hardware" approaches tightly couple reasoning to execution β switching robots means rewriting the entire pipeline. PhyAgentOS changes this through Cognitive-Physical Decoupling + Session-Centered Runtime:
| π | One Codebase, Any Hardware β Adding a new robot means implementing one Target Adapter (~100 lines); zero changes to the scheduling layer. |
| π‘οΈ | Three Safety Layers β Critic validation β Strict Preflight β Target-side SafetyGuard; mandatory for real-robot deployment. |
| π | Fully Auditable β State, actions, and perception results are written to Markdown + YAML files; every step is traceable and reproducible. |
| π | Zero-Friction Migration β The same Session protocol runs identically across sim and real targets. |
| π | Session-Centered Runtime | WatchdogSupervisor β SessionRunner β SkillRuntime β TargetSessionHandle execution pipeline, replacing the legacy Driver-Center architecture |
| π― | Target-Configured | Three target kinds β debug / simulation / real_robot β registered in TARGETS.md, adapters attached on demand |
| π§© | Adapter + Bridge | TargetAdapter + PolicyAdapter + ActionBridge three-way decoupling with explicit observation/action contracts; AdapterPlan auto-composed, eliminating targetΓskill combinatorial explosion |
| β‘ | Dual Skill Runtimes | PolicySkillRuntime maintains the policy closed loop + BuiltinSkillRuntime manages built-in loops such as target-native benchmarks and constrained agent interaction |
| π‘οΈ | Strict Preflight | Runtime validation checks (target / sensor / perception / adapter contract / action contract / tool); failures are rejected before execution starts |
| π | File Protocol Matrix | TARGETS.md Β· SKILLRUNTIME.md Β· SESSIONS.md Β· ENVIRONMENT.md Β· LESSONS.md + external YAML configs |
| π | Multi-Layer Safety | Critic validation β Preflight contract checks β Target-side SafetyGuard β Operator Override |
| π | Fleet Mode | Multi-robot coordination with shared + per-robot workspaces, priority-based serial scheduling |
| 1 |
Install git clone https://github.com/PhyAgentOS/PhyAgentOS.git && cd PhyAgentOS
pip install -e . # Python β₯ 3.11
pip install -e ".[dev]" # Dev dependencies
|
| 2 |
Initialize Workspace paos onboard |
| 3 |
Start Agent paos agent |
| 4 |
Optional: Connect Runtime Services The following example evaluates the official PI0.5 policy on the
# Terminal 1: LIBERO TargetWS
MUJOCO_GL=egl PYTHONWARNINGS=ignore \
conda run --no-capture-output -n libero \
python PhyAgentOS/runtime/targets/remote/libero/server.py \
--host 0.0.0.0 --port 9002 \
--camera-height 256 --camera-width 256 \
--max-steps 300 --num-steps-wait 10 \
--control-mode relative --seed 7
# Terminal 2: official OpenPI PI0.5 policy server
conda run --no-capture-output -n openpi \
python -m PhyAgentOS.runtime.policy.openpi.native_openpi_server \
--policy-config pi05_libero \
--checkpoint-dir gs://openpi-assets/checkpoints/pi05_libero \
--host 0.0.0.0 --port 8000
# Terminal 3: Agent, Watchdog, and Verification Service
paos agent --workspace ~/.PhyAgentOS/workspace -m \
"Evaluate PI0.5 on LIBERO suite libero_spatial. Use target libero_real_remote, the libero_target_benchmark builtin runtime, target_native execution, recovery verification, task ids 0-9, init-state ids 0-49, max_steps 300, replan_every_steps 5, and policy endpoint openpi://127.0.0.1:8000." |
Before starting Terminal 3, enable libero_real_remote, configure Runtime
verification, and set the Target configuration to
retry_instruction_mode: original. The latter keeps the original task
instruction on recovery attempts; use verifier_rewrite when the policy should
receive the verifier's nonempty rewrite instead. See the
Runtime configuration reference
for the complete global, Target, SkillRuntime, Session, benchmark,
verification, and remote-host parameter reference. The LIBERO setup is
included as an example.
| Context Loading | File | Owner | Purpose |
|---|---|---|---|
| Always loaded into the agent system prompt | AGENTS.md |
Agent workspace | Project-level operating rules for the agent |
| Always loaded into the agent system prompt | SOUL.md |
Agent workspace | Identity, high-level behavior, and assistant style |
| Always loaded into the agent system prompt | USER.md |
Agent workspace | User preferences and durable profile notes |
| Always loaded into the agent system prompt | TOOLS.md |
Agent workspace | Tool usage policy and available tool guidance |
| Always loaded into the agent system prompt | SKILLS.md |
Agent workspace | Agent-facing skill discovery and loading rules |
| Loaded when present; filtered by enabled runtime targets where applicable | EMBODIED.md |
Agent workspace | Human-readable target capability descriptions |
| Loaded when present as state, not bootstrap policy | ENVIRONMENT.md |
Agent/runtime workspace | Current target and scene/environment state |
| Loaded when present as memory/state | LESSONS.md |
Agent workspace | Operational lessons and failure notes |
| Loaded when present as task state | TASK.md |
Agent workspace | Multi-step task decomposition and progress |
| Runtime protocol; read before scheduling sessions | RUNTIME.md |
Runtime workspace | Instructions for writing valid runtime sessions |
| Runtime protocol; read before scheduling sessions | TARGETS.md |
Runtime workspace | Enabled targets, endpoint/adapter/config references, supported skill runtimes |
| Runtime protocol; read before scheduling sessions | SKILLRUNTIME.md |
Runtime workspace | Policy/builtin skill runtime registry and execution contracts |
| Runtime queue/state; written by Agent and watchdog | SESSIONS.md |
Runtime workspace | Pending/running/completed execution sessions and results |
SKILLS.md is for agent capabilities and skill discovery. SKILLRUNTIME.md is
for runtime execution contracts; it is paired with TARGETS.md and SESSIONS.md.
PhyAgentOS/
β
βββ PhyAgentOS/agent/ # Track A β Planner / Critic / Memory
β
βββ PhyAgentOS/runtime/ # Track B β Execution Plane
β βββ watchdog/ # WatchdogSupervisor
β βββ sessions/ # SessionRunner / TargetSessionHandle
β βββ targets/ # RolloutTarget (debugΒ·simΒ·real)
β β βββ remote/libero/ # LIBERO benchmark TargetWS server + proxy
β βββ skillruntime/ # PolicySkillRuntime / BuiltinSkillRuntime
β βββ adapters/ # TargetAdapter / PolicyAdapter / Bridge
β β βββ libero/ # LIBERO target adapter
β β βββ openpi/ # OpenPI policy adapters
β βββ policy/openpi/ # OpenPI client + LeRobot pi0-family server
β βββ perception/ # Perception Runtime / EnvironmentWriter
β βββ preflight/ # RuntimeCompatibilityPreflight
β βββ schemas/ # Pydantic Schema
β
βββ configs/runtime/ # Sensor / Perception / Contract YAML
βββ scripts/ # Utility scripts
βββ workspace/ # Agent workspace; runtime files may share it by config
βββ docs/ # Documentation
βββ tests/ # Tests
| Kind | Location | Examples | |
|---|---|---|---|
| π | debug |
Local | echo / mock / dry-run β zero-hardware protocol pipeline validation |
| π§ͺ | simulation |
Remote | RoboCasa, LIBERO β benchmark evaluation & batch experience mining |
| π€ | real_robot |
Remote | Franka, Go2, XLeRobot, AgileX PIPER β real-world deployment |
All targets are registered in
TARGETS.md, identified bytarget_adapter://URI. More examples & demos β Project Website
| Document | Audience | Description |
|---|---|---|
| π Website | Everyone | Full docs, architecture details, demos |
| π User Manual | Users | Installation, deployment, and operation guide |
| π Dev Guide | Developers | Secondary development, hardware integration, plugin authoring |
PRs and Issues are welcome! Check our development roadmap here β Dev Plan.



