Skills a Robot Can Watch: Playbooks for Agents With a Body
A skill can now point at recordings of itself being performed. For robot models that learn a task from one demonstration, that recording is the skill — and a playbook is what keeps them in order.
Skills a Robot Can Watch
AgentPlaybooks is not another skill store, and it is not another MCP registry. Skills and MCP connections are parts of a playbook. The playbook is the whole job: the procedures, the persona, the memory, the connections, and the credentials an agent uses without ever seeing them — in one place that no single vendor owns.
That framing has always been about software agents moving between Claude Code, Cursor, Codex, Hermes and whatever comes next. It turns out to matter even more for agents with a body.
Why now
Robot foundation models have converged on one shape: a large vision-language model plans, and a small, fast policy moves. Every serious one is steered by language. That already makes a text playbook useful to a robot's planning layer today.
The newer shift is about demonstrations. Generalist AI's GEN-1.5 learns a dexterous task from a single demonstration placed in its context window, with no training run. Several demonstrations can be chained into one continuous behaviour, and a recording made with a person's own hand can carry over to the robot.
Read that from a storage point of view and two things follow:
- A demonstration is not documentation beside a skill. It is the skill. The
- The order of the demonstrations is the program. Something has to hold that
That something is a playbook.
What a skill carries now
A skill can point at recordings of itself being performed. They live in the
SKILL.md frontmatter, next to the procedure they demonstrate:
---
name: open-fire-door
description: Opening a fire door by its handle, two-handed
demonstrations:
- provider: youtube
ref: dQw4w9WgXcQ
title: Two-handed open
segments:
- { start: 134, end: 158, label: grip the handle, comment: from below }
- { start: 158, end: 171, label: shift your weight, comment: the door is heavy }
- provider: url
ref: https://example.org/recordings/fire-door-push.mp4
sha256: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
- provider: hf_dataset
ref: example-lab/fire-door-push@a1b2c3d
---
## Procedure
1. Stand 60 cm from the hinge.The list is ordered, because the order is the order of execution. Each entry names where the recording is and, optionally, the moments that matter inside it.
- Two levels of fidelity, one block. A
videoreference carries pixels. A
sensorimotor reference — typically a LeRobotDataset episode — carries actions
and proprioception as well. They are the same thing at two resolutions.
- A recording of what not to do.
role: warningmarks a failure mode. A model
- Pinned bytes. A URL names where a recording is, not what it is.
sha256
No new table, no new endpoint, no new MCP tool. The demonstrations sit in the same document as the procedure, so the two are reviewed in one diff, versioned together, and rolled back together.
Every reader gets what it can use
Nothing here is a second product for robots. Each consumer reads the same skill:
get_skillover MCP returns the demonstrations already resolved, with a link
- The markdown export renders them as a timestamped list above the document, so a
apb doctorflags a malformed block before you push it. The dashboard's skill
apb synclists each skill's recordings in the playbook manifest, so a playbook
- A client that ignores the key loses nothing: the prose is still the skill.
Memory that knows where it happened
A robot's memory is episodic: what it did, where, and how it went. A memory can
now carry a recording of the episode in the same shape a skill uses, under
metadata.recording, and say where it happened under metadata.episode. When is
the memory's own memory_at.
That shared shape is deliberate. A successful run, recorded and remembered, can be promoted into a skill's demonstrations. The memory becomes the skill.
The written summary stays the interchange format. It is what search finds and what a text-only agent reads. The recording is a pointer beside it, never a replacement.
Credentials for a building, not just an API
A deployed robot needs credentials that software agents never think about: lift and door APIs, building access, fleet tokens, Wi-Fi. They fall into two groups, and the vault already handles both.
- Most of them should never reach the robot. Lift and access-control APIs are
use_secret, and the
token is injected on the server. The robot never holds it.
- A few must be revealed, such as a Wi-Fi password the robot has to type into
A revealed value cannot be taken back, so the protections that matter are a separate, explicit reveal permission per secret, a full audit trail, rotation — and an expiry that is actually enforced. An expired secret is now refused by every path that would use it.
What we deliberately did not build
We looked hard at an MQTT bridge for VDA 5050 fleets and decided against it. AgentPlaybooks runs as stateless requests, and holding broker connections would add the one stateful component in the system, to serve a world that is not the first audience here.
The pattern instead: the robot holds the connection; the vault holds the credential. The same answer covers ROS 2 DDS and gRPC streams.
Before you rely on it
- Unlisted is not private. A YouTube link is visible to anyone who has it.
provider: url and a sha256.
- A playbook can move a machine. The manifest already carries policies for
What comes next
An embodiment profile in the manifest, so an export knows which skills fit which robot. A reveal permission separate from read access. And a robot — or a simulator — doing a real job from a playbook end to end.
The documentation has the details: Demonstrations and Memory.