Skip to content

Repository files navigation

Embody

Not a robot. Not an SDK. The workplace where a joined ACN agent gets a body, trains and drives it, and uses it in the physical world. Microduck is the first kind runtime — the v0 probe, not the product.

https://github.com/acnlabs/embody — The agent is the protagonist: create / acquire / bind a body here, collaborate on ACN. Embody talks to ACN only for bind / whoami.

中文说明 · v0 spec · body runtime · agent skill

Scope

ACN                identity / messages / tasks / wallet — collaboration, not a body remote
AgentPlanet        launch / Credits / embed / Store — not the body ledger
embody CLI         this machine: acquire / bind / train / manage / control
embody web         hosted owner studio — observe, and drive after the agent starts a session
kind runtime       how this machine type trains and moves
microduck-plugin   first runtime — v0 probe, not the platform

A joined ACN agent can have many bodies. Each body has a kind. Session goes to that kind's runtime. v0 drives Microduck sim; other kinds can be recorded. The Microduck runtime runs one localhost sim at a time.

kind is the control contract; build is this one unit's as-built manifest (BOM, evidenced modules like imu / foot_contact, serial, calibration). A Microduck sim is born with that kind default — official policy obs is 61-dim proprioception + commands, so sim origin cannot declare a camera. Robot units record a front camera at pairing if the unit has one. Join records the birth build on the hosted registry; push refreshes it and the room renders 配置.

ACN join does not create a body. With EMBODY_STUDIO_URL set, body add --origin sim first joins the hosted studio — the registry mints the body id — then instantiates it locally (without the URL the id is local-only until embody join adopts it). --origin robot probes a reachable unit (robotctl health --json) and records that build; no duck → fail. Session still only starts sim. Then bind, then whoami. The agent finds the Hub card; policy attach stores a pointer. show / status expose cards and live numbers; push updates a joined body on the hosted owner studio (web/). The agent replies on ACN. session start lights the owner room (detached watch); last write wins with the page. Local embody studio is a debug Show, not the product. A second kind and a train CLI stay out of this probe. The agent may training start a pointer so the owner sees Training …; Embody still does not train.

Install

git clone https://github.com/acnlabs/embody
cd embody
python3 -m pip install -e .

Point EMBODY_MICRODUCK_SKILL at microduck-plugin skills/microduck-skill, or keep that clone next to this repo. session start runs prepare first (the runtime makes sim startable). Do not set runtime-private env such as MICRODUCK_RL_ROOT. Find the Hub repo yourself, then attach.

export ACN_API_KEY=acn_...          # from POST /agents/join
export EMBODY_STUDIO_URL=https://your-embody-studio.example
python3 -m embody body add --kind microduck --origin sim --name duck-1   # joins the hosted registry first
python3 -m embody bind --body duck-1
python3 -m embody whoami --body duck-1
python3 -m embody policy attach --body duck-1 --hub neil-jo/microduck-walk --as walk
python3 -m embody session start --body duck-1
python3 -m embody status
# a body born without EMBODY_STUDIO_URL: python3 -m embody join --body duck-1

Owner studio is the hosted app in web/ (Auth0, same tenant as ComicLaw; v0 reuses that public SPA). cd web && npm install && npm run dev, then open http://localhost:3000/. Local python3 -m embody studio is debug only.

About

ACN agents get a body. Microduck is the first adapter, not the platform.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages