SkillAtlasSkill 详情

habit

Robots have been around for years but have never been autonomous — someone has to drive them wit...

审核状态:已审核Quality 80Security 80

复制安装命令

用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。

复制前请先查看来源、License 和安全提示。

项目 README

来源文件:README.md

抓取于 2026年8月27日

Autonomous OS: The "Android" for Robots

Robots have been around for years but have never been autonomous — someone has to drive them with a remote, and they've stopped at scripted demos. Autonomous OS brings autonomy to robots: install it on your robot and it comes alive.

Autonomous OS is a fully customizable operating system for robots. Every component is swappable — engine, model, voice, skills, board. Your robot declares what it has in a ROBOT.md, and the OS mounts exactly that. When a better one ships, your robot gets it the same day — and gets better without new hardware.

Quick start

The simplest way in is a robot we have already tested it on. What each of them can do: robot comparison.

Autonomous Lamp

Lamp is the robot that shows the whole OS — it sees, hears, speaks, moves, and ships with Autonomous OS on it.

https://github.com/user-attachments/assets/c80f1255-4355-4f59-9114-6d3b8d4007a2

  1. Add it. In the Autonomous app (iOS | Android), tap Add robot → Lamp.
  2. Set up Wi-Fi. Pick your network in the app; it joins the robot's hotspot and hands over the keys and pairing.
  3. Interact with Lamp. Say something, it turns to look at you, the ring lights up, and it answers.
  4. Install a skill from the Skill Store — one tap, live on the next conversation.
  5. Build your own skill. Type what you want it to do in the app and it writes the skill.
  6. Give it a character. Edit SOUL.md and it is someone else on the next turn.

Reachy Mini

Reachy Mini is Hugging Face's desk robot, running our OS beside its own stack.

https://github.com/user-attachments/assets/2f0aaafb-287c-488e-a3b1-a82f0ad9e776

  1. SSH in — ssh pollen@reachy-mini.local.
  2. Run one command. Nothing is flashed; the Reachy daemon keeps the motors.
    curl -fsSL https://raw.githubusercontent.com/autonomous-ai/autonomous-os/main/robots/reachy-mini/install.sh | sudo bash
    
  3. Add it. In the app, tap Add robot → Reachy Mini and give it reachy-mini.local.
  4. Interact with it. Say something — the head tilts, the antennas lift, and it answers.
  5. Install a skill from the Skill Store, or type what you want it to do and it writes one.
  6. Give it a character. Edit /opt/devices/reachy-mini/SOUL.md. Everything else, including how to undo the install: devices/reachy-mini/README.md.
  7. Put it next to a Lamp. Each one hears the other's answer as its next input, so the two of them will hold a conversation until you stop them.

Autonomous Intern

Intern is the always-on desk agent: mic, speaker, LED ring.

Autonomous Intern on a desk beside a laptop, tip glowing blue
  1. Add it. In the app, tap Add robot → Intern.
  2. Set up Wi-Fi. Same flow as Lamp: pick your network and it handles the keys and pairing.
  3. Interact with it. Say something and it answers; the ring shows what it is doing.
  4. Install a skill from the Skill Store.
  5. Build your own skill. Type what you want in the app; it is live on the next conversation.
  6. Give it a character. Edit /opt/devices/intern-v2/SOUL.md.

Bring your own robot

Autonomous OS runs on any robot you can describe in four markdown files.

  • ROBOT.md — the body: the board and the hardware it has.
  • SOUL.md — the self: who it is and how it talks.
  • SAFETY.md — the bounds: how fast, how bright, how late.
  • SKILL.md — the hands: one thing it can do.

Follow the full guide.

Platform architecture

Autonomous OS is a software stack. Each layer uses only the layer below it, so any layer can be replaced without touching the others. Every layer is a folder in this repo.

Autonomous OS stack, top down: apps, skills, the agentic runtime, the Go system services, the realtime voice agent, the capabilities a robot declares, the safety gate, drivers, boards, the vendor Linux kernel, and the bodies — one colour per layer, and the rows you can extend yourself drawn dashed

Apps

What a person touches. The Autonomous app adds a robot, sets up Wi-Fi, installs skills from the Skill Store and switches brains; the robot also serves its own setup and monitor UI from system/web/. Both talk to os-server on :5000.

Skills

One folder per behavior, one SKILL.md inside: markdown the agent reads. A skill acts by writing [HW:/path:{json}] markers in its reply, so it never touches a servo bus or a GPIO pin. Each skill declares the capabilities it needs and installs on every robot that has them.

Agentic runtime

The engine that thinks. Six of them — Hermes, OpenClaw, PicoClaw, Codex, Claude Code, OpenCode — behind one 76-method AgentGateway. It reads the robot's SOUL.md and its installed skills. Switch live from the web UI; persona, memory and connectors move with it.

System services

The Go daemon os-server on :5000, one package per box in the figure. intent answers fixed commands from a local table with no model; server strips [HW:…] markers out of a reply and POSTs them to HAL before the words are spoken; agent switches engines; bootstrap is OTA, its own binary.

Realtime voice

Gemini Live, OpenAI Realtime or Qwen, hosted inside HAL and running beside the main path. A spoken turn lands here first: it answers directly, or hands the turn up to the engine.

Capabilities

The 13 names a robot may declare — audio, vision, sensing, presence, motion, light, display, expression, lifelike, media, connectivity, companion, system. Ten mount HTTP routes on :5001 (111 endpoints, live Swagger at /api/hardware/docs); presence and lifelike are loops with no route, companion lives in os-server. HAL mounts only what ROBOT.md declares and fails loud on a missing required driver.

Safety gate

A pure function of SAFETY.md, below the engine and in every request path: brightness, quiet hours, explicit-move speed. No model in the loop — the same clamp whoever asked. What it does not cover yet: docs/safety.md.

Drivers

One folder per subsystem: motors, rgb, camera, voice, display, sensing, tracking, and the media handover a third-party daemon needs. New hardware is one class and one factory line.

Boards

One JSON entry per board, matched against /proc/device-tree/model. Raspberry Pi 4, Pi 5, CM4 and OrangePi 4 Pro today. A new board is an entry, not a code change.

Linux

The vendor kernel — Raspberry Pi OS, OrangePi Debian, or the robot's own image. We do not ship one, and nothing above the drivers has a real-time deadline: position control closes in the servo firmware, or in the robot's own daemon.

Bodies

Four markdown files and a driver per robot. Declarations, not forks — a body is a PR.

Long form: architecture · HAL · device spec · capabilities · safety · developer guide.

Contribute

The easiest way in is a skill: one markdown file, no Go, no hardware, and it lands on every robot that has the parts. PRs welcome, vibe-coded ones included. Questions, half-built ports and show-and-tell go in Discussions; gaps we would love help with are labelled claim-me — comment to take one.

You want to…You write…Start from
Teach every robot something newskills/<name>/SKILL.md (+ skill.json if it needs hardware)skills/guard/ · skill-creator
Run Autonomous on your robotrobots/<id>/ROBOT.md + SAFETY.md + SOUL.mdrobots/reachy-mini/ — a third-party port, end to end
Support new hardwarea class in hal/drivers/<subsystem>/ + one factory linereachy_service.py
Support a new boardone entry in hal/board/boards.jsonboards.json
Add a brainan AgentGateway implementation in runtimes/<name>/adding-agent-runtime.md

Seven more paths — apps, chat bridges, perception models, voices, safety bounds, CTS probes — and the norms: CONTRIBUTING.md. One rule worth knowing up front: robots/contract/ is the interface everyone builds on, so open an issue before you change it.

Build locally:

make os-build && make os-test          # Go daemon, cross-compiled to linux/arm64
(cd hal && uv sync) && make hal-dev    # HAL on :5001 with reload
make web-install && make web-dev       # setup + monitor UI
make cts                               # is this a valid Autonomous device?

License

Everything outside hal/ is Apache-2.0. hal/ is GPL-3.0, kept that way by choice so the tree has one license per top-level folder; a driver you commit there is GPL, so a closed vendor SDK wraps out of process.

A robot running this carries other people's work: Pollen's reachy_mini SDK, YOLOv8 for tracking (AGPL-3.0 — read it before you ship), TEN-VAD and Silero for hearing, LeRobot and the LeLamp Runtime under the motion code, and the brains we install but do not ship. All of it, including what we copied verbatim: CREDITS.md. Security issues: SECURITY.md.

Agent / MCP / Skill 创作

中风险

  • 来源需自行核对维护者身份。
  • 包含脚本或命令调用,安装前请复核。
  • 未检测到明显外部权限要求。
  • 未检测到高风险命令。
  • 扫描发现:2 条。

Codex — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/autonomous-ai/autonomous-os.git
  3. 将 "skills/habit" 文件夹复制到 Codex 的 skills 目录中。
  4. 重启 Codex 让新的 skill 生效。

Codex — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Codex 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Codex 让新的 skill 生效。

Claude Code — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/autonomous-ai/autonomous-os.git
  3. 将 "skills/habit" 文件夹复制到 Claude Code 的 skills 目录中。
  4. 重启 Claude Code 让新的 skill 生效。

Claude Code — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Claude Code 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Claude Code 让新的 skill 生效。

Cursor — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/autonomous-ai/autonomous-os.git
  3. 将 "skills/habit" 文件夹复制到 Cursor 的 skills 目录中。
  4. 重启 Cursor 让新的 skill 生效。

Cursor — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Cursor 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Cursor 让新的 skill 生效。

GitHub Copilot — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/autonomous-ai/autonomous-os.git
  3. 将 "skills/habit" 文件夹复制到 GitHub Copilot 的 skills 目录中。
  4. 重启 GitHub Copilot 让新的 skill 生效。

GitHub Copilot — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 GitHub Copilot 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 GitHub Copilot 让新的 skill 生效。

Windsurf — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/autonomous-ai/autonomous-os.git
  3. 将 "skills/habit" 文件夹复制到 Windsurf 的 skills 目录中。
  4. 重启 Windsurf 让新的 skill 生效。

Windsurf — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Windsurf 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Windsurf 让新的 skill 生效。
查看 SKILL.md 原文
name: habit
description: Tracks and analyzes behavioral patterns (habits) for known users based on their wellbeing, presence, posture, and activity history. Use when answering questions about a user's routines ("What are Leo's habits?", "Has Leo been keeping to his routine?", "Notice anything about my patterns?"), or when invoked from wellbeing/SKILL.md or posture/SKILL.md on a threshold nudge to refresh patterns and provide habit-aware phrasing. Also feeds music-suggestion/SKILL.md with `music_patterns` for personalized genre. Habit does NOT fire its own standalone nudge — it enriches wellbeing/posture threshold-nudge phrasing.

Habit Skill

Habits are repeating behavioral patterns derived from historical logs. This skill reads existing data (wellbeing, presence, mood, music, posture) to build patterns per user, then stores them for other skills to consume.

OUTPUT RULE: Reply is spoken VERBATIM. ONE short caring sentence. All computation, pattern math, and log lookups stay in thinking. NEVER output timestamps, deltas, frequency counts, or reasoning in the reply. (Exception: Flow E — open habit questions — see below.)

Data Sources (Input)

All data lives in /root/local/users/{name}/:

FolderFile patternWhat it contains
wellbeing/YYYY-MM-DD.jsonldrink, break, celebrate, sedentary labels, enter/leave, nudge_* events with timestamps
mood/YYYY-MM-DD.jsonlsignal + decision rows with moods
music-suggestions/YYYY-MM-DD.jsonlsuggestion history + accepted/rejected status
posture/YYYY-MM-DD.jsonlposture_alert (ergo-risk events from camera) + nudge_posture / praise_posture rows

User names are lowercase folder names under /root/local/users/. Known users: leo, chloe, gray, lily. Strangers collapse to unknown — this is treated as a regular user with its own folder and its own habit patterns (aggregated across all strangers).

JSONL line example (wellbeing):

{"ts": 1776657145.05, "seq": 4, "hour": 10, "action": "drink", "notes": ""}

Storage (Output)

Computed patterns are stored per user at /root/local/users/{name}/habit/patterns.json.

Rebuild when:

  • File does not exist yet
  • File is older than 6 hours
  • User explicitly asks about their habits

What is a Habit?

A habit is a time-anchored action that repeats across multiple days. Strength labels:

FrequencyStrength
< 0.50weak (skip for nudging)
0.50 – 0.75moderate
> 0.75strong

Habits require at least 3 days of data to form. With fewer days, skip proactive nudging.

Workflow

FlowWhen to runDetails
A — Build patternsDiscovery / answering questions; wellbeing nudgereference/build-patterns.md
B — Habit matchHelper for wellbeing/SKILL.md Step 3breference/match-helper.md
C — Music personalizationBuild / consume music_patternsreference/music.md
D — Conversation intent loggingTriggered from SOUL when user states intent NOWinline below
E — Open habit questionUser asks about someone's habits / patterns / routinesreference/open-question.md

D — Conversation intent logging (triggered from SOUL)

SOUL instructs the device to call this flow when user expresses intent for a daily activity NOW.

Intent → action mapping:

User saysAction to log
"lunch", "dinner", "going to eat", "grab food"meal
"coffee break", "grab a coffee", "getting coffee"coffee
"good night", "going to sleep", "heading to bed"sleep
"gym", "exercise", "workout", "going for a run"exercise

How to log:

curl -s -X POST http://127.0.0.1:5000/api/wellbeing/log \
  -H 'Content-Type: application/json' \
  -d '{"action":"meal","notes":"user said: going to lunch","user":"<current_user>"}'

Rules:

  • Log silently — do NOT tell the user you're logging. Just respond naturally.
  • Only log when user states intent NOW, not past tense or general talk.
  • One log per intent per conversation turn — no duplicates.
  • notes field stores the original phrase for debugging.

API Calls

Read wellbeing history (via API)

curl -s "http://127.0.0.1:5000/api/openclaw/wellbeing-history?user={name}&date=YYYY-MM-DD&last=100"

Read from file directly (for multi-day analysis)

cat /root/local/users/{name}/wellbeing/YYYY-MM-DD.jsonl

Use direct file reads for multi-day pattern building (faster, no API pagination needed).

Check today's activity (quick presence check)

curl -s "http://127.0.0.1:5000/api/openclaw/wellbeing-history?user={name}&last=50"

Integration Points

From wellbeing/SKILL.md: When wellbeing's Step 3 fires a threshold nudge, it invokes Flow A (which self-throttles via the freshness guard). Flow A returns the current wellbeing_patterns; wellbeing uses any matching pattern for the nudge action to enrich Step 4's phrasing (e.g. "you usually drink around now"). No separate habit-only nudge — habit context piggybacks on the threshold nudge. This keeps bootstrap cost on the rare nudge path, not on every motion.activity tick.

From posture/SKILL.md: Same pattern. When posture decides to nudge AND its context block has bootstrap_needed=true, it invokes Flow A. Flow A returns posture_patterns (peak hour, side bias, typical risk) which the posture coach uses to phrase pattern-aware nudges (e.g. "around this hour you usually slip").

From music-suggestion/SKILL.md: Read habit/patterns.json → music_patterns. If habit data exists and current hour matches, use preferred genre instead of default genre table.

Minimum Data Requirements

PurposeMin daysMin occurrences
Habit detection32
Proactive nudging53
Music personalization32 accepted

If data is insufficient: use default wellbeing thresholds / music genre table as fallback. Never fabricate patterns.

Output Examples

Nudge enrichment (Flow A → wellbeing Step 3b):

  • Habit break: "You usually have water around now — everything okay?"
  • Habit confirmed: "Back at your desk right on schedule. [chuckle]" — only say this if it feels natural
  • Music: "It's your usual coding time — want some lo-fi?"
  • Posture: "Around this hour you usually slip — sit up from the start."
  • When no data: silent (NO_REPLY) — never guess or fabricate habits

Open habit question (Flow E):

  • Pattern mode: "Leo usually arrives around 8:30 with breakfast, settles at the computer through the morning, and wraps up close to 5. Lo-fi tends to land between 2 and 4. Pretty steady the last week."
  • Narrative mode: "I've only got two real days on Chloe so far — April 28 was an evening at the computer with a lot of water breaks, and April 29 ran late, working past midnight. Not enough days yet to call it a habit, but that's what I've seen."
  • Honest-gap mode: "Honestly, I haven't seen Leo much lately — just one short session yesterday. The patterns I have are from two weeks ago, so I'd rather not pretend they're still true."

发现问题?提交给管理员复核

评分:

评论 (0)

暂无评论,成为第一个评论者吧!