{
  "video": {
    "id": "oUZEt4EiPbk",
    "title": "I Built a Personal AI Agent on a Raspberry Pi — Jeremy Adams, Neo4j",
    "duration": 1210,
    "upload_date": null,
    "channel": "AI Engineer",
    "source": "AI Engineer",
    "event_format": ""
  },
  "analysis": {
    "video_id": "oUZEt4EiPbk",
    "title": "I Built a Personal AI Agent on a Raspberry Pi — Jeremy Adams, Neo4j",
    "one_liner": "A spare Raspberry Pi 4B can run a personal 'claw' agent: Jeremy Adams used NanoClaw, a small project of about 15 source files that runs its agents in Docker containers. Claude does all the inference in the cloud, and Neo4j holds graph memory, both in the cloud and on a local offline instance.",
    "summary": "Jeremy Adams (Neo4j) argues that 'small claws are beautiful'. He wanted a personal AI agent that was cheap, open, hackable and understandable, and he did not want it running on his laptop. So he put NanoClaw on an old Raspberry Pi 4B, talked to it over WhatsApp, and connected it through an MCP server to Neo4j to give it graph memory using the POLE+O schema (person, object, location, event, organization). Live on stage, he showed it wearable, with a USB mic and a push button. He had used it to record voice notes at conference booths into a local Docker Neo4j instance as an offline mode, then enriched that data in Neo4j Aura into a graph linking exhibitors to themes.",
    "key_points": [
      "The hardware is a Raspberry Pi 4B pulled from his closet. He had used it during the pandemic for a project that weighed the dishes in the sink. He ran a 32-bit OS for a long time before realising the Pi could run 64-bit ARM.",
      "He chose NanoClaw over OpenClaw because it is about 15 source files with few lines of code. It runs agent processes in Docker containers so they can't run amok on the system, it's built on the Claude Agent SDK, and it encourages you to modify it with Claude Code and skills.",
      "The architecture runs from WhatsApp on his iPhone or MacBook to NanoClaw on the Pi. No LLM inference happens on the Pi; all of it is done by Claude in the cloud.",
      "He connected the agent to Neo4j through an MCP server. Asked over WhatsApp which movies Tom Hanks acted in, it first reported that auth was broken. Once he fixed that, it returned results from the movie graph.",
      "On a plane, WhatsApp messaging worked without paid Wi-Fi. From there he asked the agent to build a memory system using POLE+O (person, object, location, event, organization), a model that came from European policing. The agent wrote itself a skill, stored on a mount point that persists across reboots.",
      "The memory graph in Neo4j Aura links events like a visit to the Snowflake office in Menlo Park and an AI meetup to people and locations.",
      "For the conference he added a USB mic, a GPIO push button and recording LEDs, and recorded voice notes at booths. Because he expected bad conference Wi-Fi, he ran Neo4j in Docker on the Pi as an offline mode. Speech-to-text output was parsed with regexes to pull out booth numbers and insert them into a local exhibitor database. He browsed that database with his own Cypher shell browser.",
      "Back in Neo4j Aura he enriched the booth data and found theme nodes shared across exhibitors, such as 'evaluation and observability' for Buildkite and LangChain. He calls this possibly novel knowledge generated by walking the floor.",
      "Later he loaded his whole WhatsApp history with the agent into the Neo4j Agent Memory service. It distilled people, locations and concepts into memories that the same claw can reach through an MCP server."
    ],
    "takeaways": [
      "Prefer a small, readable agent framework you can understand and modify, like NanoClaw, over a feature-rich one. Don't trust hardware sold with an agent pre-installed.",
      "Isolate a personal agent from your main machine: put it on dedicated cheap hardware and run its agent processes in Docker containers.",
      "Keep the edge device light by doing LLM inference in the cloud. Use a messaging channel like WhatsApp or Telegram as the interface, since it can work even when full internet access doesn't (for example, on a plane without paid Wi-Fi).",
      "Give the agent structured graph memory with a simple schema like POLE+O, exposed through an MCP server. Ask the agent itself to write the memory skill.",
      "For unreliable connectivity, run a local database on the device as an offline mode, use simple parsing such as regexes on speech-to-text output, then sync and enrich the data in the cloud later."
    ],
    "topics": [
      "agents",
      "agent memory",
      "knowledge graphs",
      "edge devices",
      "raspberry pi",
      "mcp",
      "offline mode",
      "speech-to-text"
    ],
    "tools": [
      "Raspberry Pi 4B",
      "NanoClaw",
      "OpenClaw",
      "Hermes Agent",
      "Claude Agent SDK",
      "Claude Code",
      "Docker",
      "Neo4j",
      "Neo4j Aura",
      "Neo4j Agent Memory service",
      "Cypher",
      "MCP",
      "WhatsApp",
      "Telegram",
      "Mac Mini",
      "Craigslist",
      "QuickTime Player",
      "BirdNET",
      "Obsidian",
      "Graph Academy",
      "Snowflake",
      "Buildkite",
      "LangChain",
      "Microsoft",
      "MiniMax"
    ],
    "quotes": [
      {
        "text": "pre-installed. That's a red flag.",
        "at": "06:48",
        "url": "https://www.youtube.com/watch?v=oUZEt4EiPbk&t=408s"
      },
      {
        "text": "Will it claw? I don't know. I should try it and see.",
        "at": "07:24",
        "url": "https://www.youtube.com/watch?v=oUZEt4EiPbk&t=444s"
      },
      {
        "text": "wanted to understand what was happening more than it being featurerich",
        "at": "06:34",
        "url": "https://www.youtube.com/watch?v=oUZEt4EiPbk&t=394s"
      },
      {
        "text": "There's no inference, no LLM inference happening on this thing.",
        "at": "09:19",
        "url": "https://www.youtube.com/watch?v=oUZEt4EiPbk&t=559s"
      }
    ],
    "words": 4263
  },
  "summary_url": "/#oUZEt4EiPbk",
  "transcript": {
    "html": "/transcripts/oUZEt4EiPbk.html",
    "txt": "/transcripts/oUZEt4EiPbk.txt",
    "vtt": "/transcripts/oUZEt4EiPbk.vtt"
  }
}