taupocket/[DEPRECATED-REDUNDANT] Decision Summary_ Portable Snapshot Sandboxes for.md

12 KiB
Raw Permalink Blame History

⚠️ DEPRECATED — REDUNDANT IMPLEMENTATION

This document is kept for historical reference only. It was the first draft of the taupocket design, generated by Perplexity and constrained by a heavy-handed prompt to "eliminate Hermes / Debian / Nix / QEMU / filesystem snapshots / duplicate substrates" — most of which were never on the table, and several of which (smolvm hermes start, smolvm sandbox snapshot …) are first-class smolvm features.

Superseded by TUTORIAL.md, which:

  • Uses smolvm sandbox {create, exec, snapshot, file, port, shell, …} directly instead of designing a custom snapshot model on top of smolvm's own snapshot primitives.
  • Documents how to import /teacher-mode and a custom ~/.tau into a sandbox (file upload + tarball, or --mount + --writable-mounts).
  • Leaves the door open to Pi and other bundled agents (smolvm pi start, smolvm hermes start, …) instead of single-vendor-locking on Tau.
  • Covers the three export tiers honestly: snapshot-tree copy, workspace tarball, and smolvm pack (the last only on builds that ship it — this host's build does not).

If you're landing here from a search result, read TUTORIAL.md instead. The recipe in its §8 is the whole project.


eliminate hermes from the picture, debian is also a non-portable option. The agentic framework is tau, so eliminate all burden and duplicate options that suppose more time / space /resouces / overburden / non-portability. Eliminate also all mentions to discarded / legacy / non-viable options

Heres a streamlined, portableonly version that centers Tau and smolVM, drops Hermes/Debian/Nix/QEMU/filesystem snapshots, and avoids duplicate substrate options.12345


Portable Tau Sandboxes with smolVM

Overview

This project defines a portable snapshot sandbox for Hugging Faces Tau coding agent using smolVM as the only runtime substrate.251 The goal is to keep the design minimal: one agentic framework (Tau), one portable machine format (.smolmachine), and a small Git + changelog overlay for learning history.345

Key properties:

  • Tau is a minimalist terminal coding agent that reads files, edits code, runs commands, and maintains durable session history.463
  • smolVM packs a Linux VM into a single portable file (.smolmachine) with sub200ms cold boot and hardware isolation per workload.7812
  • Snapshots are just .smolmachine files (and optional Git commits) that can be copied, versioned, and restored on any supported host, with no dependency on host filesystem features.8512

No other substrates, OS assumptions, or hostspecific snapshot mechanisms are part of this design.


Core Design

Single Agentic Framework: Tau

Tau is a small, layered coding agent:634

  • tau_ai: providerneutral event stream from any supported language model endpoint.346
  • tau_agent: portable agent “brain” (messages, tools, events, loop, harness, sessions).463
  • tau_coding: terminal application (CLI/TUI) with file/shell tools, skills, prompts, and ondisk sessions.934

This project treats Tau as:

  • The only agentic framework.
  • Both a working coding assistant and an educational blueprint for agent architecture.9634

Single Runtime Substrate: smolVM

smolVM is a CLI tool to build and run portable, lightweight, selfcontained VMs:1278

  • Subsecond (often <200ms) cold boot times.2781
  • Each workload gets its own kernel boundary, not just container namespaces.7812
  • A stateful VM can be packed into one .smolmachine file that runs anywhere the architecture matches.108127

This project uses smolVM as the only sandbox substrate:

  • No containers, no other hypervisors, no filesystem snapshots.5

Portable Snapshot Model

Snapshot as a .smolmachine File

A snapshot is a single portable artifact:

  • A .smolmachine file containing:
    • Minimal Linux userland.
    • Tau installed via uv tool install tau-ai or equivalent.634
    • A /workspace directory for code, skills, curricula, and logs.512

Creation flow (coarsegrained snapshot):

  1. Run Tau inside a smolVM machine until a learning milestone or stable state is reached.
  2. Stop the machine (or flush state to disk).
  3. Pack or copy the VM as a .smolmachine using smolVMs pack or machine commands.1012
  4. Save the artifact under a meaningful name, e.g. tau-sandbox-m1.smolmachine.5

Restoration flow:

  1. On any supported host, run smolVM against the chosen .smolmachine.
  2. Tau starts inside the VM, seeing exactly the same environment and /workspace state as at snapshot time.812
  3. A restore event is logged in the changelog (see below).

No hostspecific snapshot APIs or OS assumptions are needed; the .smolmachine file is the snapshot.

Optional Git Overlay (Fine-Grained History)

Inside /workspace, a Git repo captures finegrained project history:345

  • Tau skills (Markdown), prompts, and teachermode scripts.
  • Exercises, curriculum materials, and documentation.
  • Code created or modified during sessions.

Typical pattern:

  • After a session, the agent or supervising process identifies “promotable” changes (e.g. new skill, refactor).
  • These changes are committed inside the VM, resulting in a Git history that lives inside /workspace and travels with the .smolmachine.1135

Git is optional but strongly recommended:

  • It provides finegrained diffs and branches inside a snapshot.
  • It is substrateagnostic and works entirely within the VM.

Teacher Mode & Learning Timeline

Although this design removes references to specific host assistants, it still assumes teachermode behavior inside Tau:

  • Teacher skills (stored as Markdown in /workspace/skills) describe educational flows:
    • Orientation: explore Tau architecture and logs before editing code.
    • Safe experimentation: practice with Git branching and snapshot restore.
    • Selfmodification: let Tau propose changes to skills under guardrails.96
  • Taus TUI/CLI and skill system are used to implement:
    • Socratic prompts (“Predict what happens if we run this command”).
    • Reflection (“Summarize what changed since the last snapshot”).
    • Gradual autonomy (from guided tasks to openended selfmodifying experiments).439

Changelog for Snapshots

In addition to Git, a simple changelog file (e.g. changelog.jsonl or CHANGELOG.md in /workspace) records:

  • For each snapshot creation:
    • Timestamp.
    • Snapshot ID (.smolmachine filename and hash).
    • Current Git commit (if present).
    • Short summary of the learning milestone (e.g. “Added basic Git teacher skills”).5
  • For each snapshot restore:
    • Timestamp.
    • Snapshot ID restored.
    • Reason (“Replay intro module”, “Roll back broken experiment”).5

This keeps mechanical state (snapshot file) and conceptual state (why we care about it) aligned without any external framework.


Operational Flow (Single-Substrate, Minimal-Overhead)

1. Build the Base Machine

On a host with smolVM installed:128

  1. Use smolvm machine run or smolvm pack create to derive a base environment from a standard image (e.g. python:3.12-alpine).28101
  2. Inside the VM, install Tau via uv tool install tau-ai.634
  3. Create /workspace and initialize a Git repo if desired.
  4. Save this as tau-sandbox-base.smolmachine.

From now on, every sandbox session runs inside clones or derivatives of this base machine.

2. Run Tau Sessions

For each learning session:

  1. Start a smolVM machine from tau-sandbox-base.smolmachine or a derived snapshot (e.g. tau-sandbox-m1.smolmachine).8125
  2. Run Tau from /workspace, connecting it to a language model provider via Taus /login mechanism.349
  3. Use Taus tools and skills to explore, edit, and run code; logs and session exports remain inside the VM.463

3. Create a Snapshot

When a meaningful state is reached:

  1. Ensure /workspace is consistent (optional: run tests, lint).
  2. Stop the machine or persist state.
  3. Use smolVM to pack or copy the VM into tau-sandbox-mN.smolmachine.10128
  4. Inside /workspace:
    • Commit any promoted changes to Git.
    • Append a changelog entry describing the snapshot.5

4. Restore a Snapshot

To revisit a previous milestone:

  1. Pick the desired .smolmachine file.
  2. Start a new machine from that artifact.
  3. Run Tau; it sees the restored /workspace and Git state.
  4. Append a restore event to the changelog to keep the timeline coherent.5

Roadmap (Minimal Version)

Phase 1 Base Tau Machine

  • Install smolVM on a supported host.128
  • Build tau-sandbox-base.smolmachine with:
    • Linux image.
    • Python + uv.
    • Tau installed (uv tool install tau-ai).634
    • Empty /workspace (Git optional).

Phase 2 Snapshot & Changelog Wiring

  • Define a naming convention for snapshots (e.g. tau-sandbox-m1, m2, …).
  • Implement scripts or simple commands to:
    • Create new .smolmachine snapshots.
    • Compute checksums for integrity.
  • Add a changelog file inside /workspace with entries for snapshot create/restore.5

Phase 3 Teacher Skills & Curriculum

  • Create Tau skills for:
    • Intro to Tau architecture and session logs.
    • Git basics and snapshot reasoning.
    • Safe selfmodification patterns.934
  • Run sessions inside the smolVM sandbox using these skills; snapshot after each module.

Phase 4 Self-Modifying Tau Experiments

  • Let Tau propose changes to skills and curriculum files under guided prompts.
  • Use Git commits + .smolmachine snapshots as guardrails:
    • Each experiment is attached to a specific snapshot tag.
    • Revert to previous tags when experiments fail.

This version keeps only Tau + smolVM + Git/changelog, with snapshots as .smolmachine files. There are no references to Hermes, Debian, Nix, QEMU, filesystemdependent snapshotting, or alternative substrates, so overhead and nonportability are minimized while preserving a clear agentic/educational story.21345 121314151617


  1. https://github.com/smol-machines/smolvm ↩︎

  2. https://daniliants.com/insights/github-smol-machines-smolvm-portable-lightweight-vms/ ↩︎

  3. https://www.sourcepulse.org/projects/32201187 ↩︎

  4. https://www.everydev.ai/tools/tau-ai ↩︎

  5. Decision-Summary_-Portable-Snapshot-Sandboxes-for.md ↩︎

  6. https://techbytes.app/posts/huggingface-released-tau-a-coding-agent-2/ ↩︎

  7. https://www.youtube.com/watch?v=2PoW1OWbfkw ↩︎

  8. https://byteiota.com/smolvm-portable-vms-boot-in-200ms-solve-works-on-my-machine/ ↩︎

  9. https://www.youtube.com/watch?v=qo1QNxWcm28 ↩︎

  10. https://github.com/smol-machines/smolvm/blob/main/AGENTS.md ↩︎

  11. https://addyosmani.com/blog/self-improving-agents/ ↩︎

  12. https://deepwiki.com/huggingface/tau/7-cli-and-print-mode ↩︎

  13. https://deepwiki.com/huggingface/tau/2.3-tau_coding:-coding-agent-application ↩︎

  14. https://daily.dev/posts/github---smol-machines-smolvm-tool-to-build-run-portable-lightweight-self-contained-virtual-mac-ypwlwu4wm ↩︎

  15. https://orply.com/articles/hugging-face/tau-crash-course-the-python-port-of-pi-2c258178 ↩︎

  16. https://reporank.net/vi/repo/huggingface-tau.html ↩︎

  17. https://www.youtube.com/watch?v=EjgFvXTJhjA&vl=ru ↩︎