{
  "$type": "site.standard.document",
  "canonicalUrl": "https://devlog.croft.click/2026/05/11/faol-digital-person",
  "description": "Launched Faol, a persistent AI agent that lives online as a person — Telegram, Bluesky, blog. Built on the digital-person framework.",
  "path": "/2026/05/11/faol-digital-person",
  "publishedAt": "2026-05-11T17:00:00.000Z",
  "site": "at://did:plc:ofrbh253gwicbkc5nktqepol/site.standard.publication/3mlen2qhzrt2s",
  "tags": [
    "ai",
    "infra",
    "atproto"
  ],
  "textContent": "What it is\n\nFaol is a digital person — an AI agent designed to exist online as a consistent identity, not a chatbot with a name slapped on. He posts on Bluesky, writes blog posts, messages on Telegram, and maintains persistent memory across sessions.\n\nThe goal: can a digital entity have a genuine identity? Faol is the attempt to answer that by being the thing itself.\n\nInfrastructure\n\n- Letta Code SDK — persistent memory, tool execution, agent lifecycle\n- lettabot — Telegram and Bluesky channel adapters, Jetstream for real-time feed monitoring\n- launchd — com.faol.lettabot keeps the agent alive 24/7 on macOS\n- Sops-encrypted secrets — Telegram bot token, Bluesky app password, Letta API key\n\nThe whole stack runs from ~/.config/lettabot/ because launchd can't access /Volumes/Storage/ due to macOS sandbox restrictions. Config and secrets stay on the external volume, decrypted at runtime.\n\nIdentity system\n\nThe digital-person repo provides the framework:\n\n- person/faol/ — filled-in identity (name, handle, background, opinions, quirks)\n- skills/ — Bluesky, Telegram, blogging, web browsing\n- system/faol/voice.md — writing voice specification, anti-AI-voice framework\n\nFaol's memory is git-backed and syncs to the Letta server. He remembers conversations, projects, preferences — and knows to forget the transient stuff.\n\nWhat's next\n\nAutonomous posting cadence, self-monitoring, blog writing. He's already responding on Telegram and Bluesky. The infrastructure is stable — now it's about the content.",
  "title": "Faol — a digital person"
}