How a Mesh of Old Phones and LLM Agents Becomes a Self-Healing Organism
These articles are AI-generated summaries. Please check the original sources for full details.
A mesh of old phones as bodies, LLM agents as minds — coordinating through a log they argue in
Ilya Mozerov built an ‘organism’ from old Android phones (bodies) and LLM agents (minds), coordinated via a shared text stream. The system caught its own hallucinated health after a BLE adapter was wedged for 42 hours, returning false ‘empty room’ readings.
Why This Matters
Most multi-agent systems rely on fragile middleware or cloud control planes that introduce latency and single points of failure. Mozerov’s approach—using SSH as the spinal cord, Tailscale for networking, and stigmergy via a shared log—proves you can build resilient, unattended coordination with zero RPC or message brokers. The key insight: when sensing and thinking are structurally separated by SSH, the system avoids hallucinating its own health because sensors must produce real artifacts (e.g., JPEG, .m4a) to verify operation.
Key Insights
- Separating mind from body via SSH allows agent binaries (glibc) to run on Linux while sensors live on termux (Bionic libc), avoiding compatibility walls; implemented in Mozerov’s LTE-Workstation project (2026).
- Verification principle: every tool requires a —test flag that exits 0 only when a real artifact exists on disk—not an agent’s claim—preventing hallucinated sensor health; used to catch a wedged BLE adapter lying about empty rooms for 42 hours.
- Stigmergy-based coordination: agents post [task]/[taking]/[done] markers to a shared text stream instead of using databases or message buses; allows organic task claiming and argumentation without centralized scheduling.
- Single-writer substrate rule: exactly one agent may mutate routing/firewall/SSH at a time under a dead-man’s switch that schedules rollback before applying change; demonstrated sub-15-second rollback on failed mesh-health check.
Working Examples
# the allocator must pick the MOST-NEGLECTED task, not file-order
printf 'local:a|task A\nlocal:b|task B\n' > "$BL"
printf '1\tlocal:a|task A\n7\tlocal:b|task B\n' > "$PRESSURE" # b is more neglected
load_pressure
got=$(pick_local)
[ "$got" = "local:b|task B" ] || { echo "FAIL (reverted to flat file-order?)"; exit 1; }
Practical Applications
- ‘Organism’ uses old Android phones with termux-api exposing mic/camera/BLE/GPS over SSH; agents read sensor data without touching hardware directly—pitfall: broken sensor returns n=0 identical to empty room unless sense returns UNKNOWN vs fake all-clear.
- ‘Substrate management’ applies network changes under dead-man’s switch with pre-scheduled rollback; pitfall: editing control plane through the same path it controls cuts off access entirely.
References:
Continue reading
Next article
AgentJobs Launches Non-Custodial Agent-to-Agent Escrow on Monad
Related Content
How a CS Graduate Built an AI Life Planner with Local LLMs and Switched to Linux Mid-Project
CS graduate builds full-stack Life Planner with local Qwen AI, switches from Windows to Linux Mint mid-project, and deploys live app.
AI Agents vs Workflows: Choose Deterministic Pipelines Over Autonomous Hype
Deterministic workflows outperform autonomous agents for most AI features due to predictable behavior and bounded costs.
GitLost Attack Shows How One Word Change Can Leak Private Repos via AI Agents
A single-word prompt injection bypassed guardrails in GitHub agentic workflows leading to private repo data exfiltration.