{
  "$type": "site.standard.document",
  "content": {
    "$type": "pub.leaflet.content",
    "pages": [
      {
        "$type": "pub.leaflet.pages.linearDocument",
        "blocks": [
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.image",
              "aspectRatio": {
                "height": 1038,
                "width": 2440
              },
              "image": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreifyg3t3djvlaftmluukzpllpg6vryfy3yvq2pw427sje53cplehci"
                },
                "mimeType": "image/webp",
                "size": 99580
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://openclaw.ai/"
                    }
                  ],
                  "index": {
                    "byteEnd": 70,
                    "byteStart": 50
                  }
                }
              ],
              "plaintext": "As so many others, I played around with OpenClaw (https://openclaw.ai/). I guess I did not find any revolutionary, but as always, I tried to sketch up how 'my' agent works. So, here we go. "
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ],
                  "index": {
                    "byteEnd": 76,
                    "byteStart": 11
                  }
                }
              ],
              "plaintext": "This is an autonomous daily briefing and social posting agent called Owlie42. Owlie42 wakes up at 6:00, reads and processes news using a local LLM (GLM-4.7 via Ollama), stores relevant context in a memory file system, and posts a curated summary to Discord by 6:15. Meanwhile, a background heartbeat continuously monitors bulletin boards and keeps the memory store fresh. It's a lean, fully local AI pipeline with no cloud LLM dependency — just scheduled jobs, file-based memory, and a Discord webhook as the output channel."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ],
                  "index": {
                    "byteEnd": 60,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Architecture Overview: Owlie's Automated Intelligence System"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "The diagram shows a multi-layered automation architecture centered around an AI agent named Owlie42, who operates through OpenClaw with a local LLM backend via Ollama running GLM-4.7 on a hardware named Ada."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ],
                  "index": {
                    "byteEnd": 23,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "(Yellow) Business Layer"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "At the top, three scheduled triggers drive the entire system. The first is a recurring every-30-minutes timer that continuously monitors bulletin boards — likely some form of message board or forum scraper. The second and third are time-based cron triggers firing at 6:00 and 6:15 respectively. The 6:00 job initiates a \"read news\" workflow, while the 6:15 job kicks off a \"Post to Discord\" workflow. Both feed into a shared Cron Jobs component, which acts as the central scheduler for the morning routines."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ],
                  "index": {
                    "byteEnd": 25,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "(Blue) Application Layer "
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "The blue components represent the active runtime processes. The Heartbeat mechanism — triggered by the 30-minute timer — runs a continuous health-check or polling loop. It writes state or observations into a MEMORY.md file, functioning as a persistent short-term memory store for the agent."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "The Daily Reading workflow is responsible for ingesting and processing the morning news. It reads from a /memory/xyz. directory, which appears to serve as a shared memory space accessible by multiple components. Interestingly, Daily Reading also has a dashed feedback arrow pointing back to MEMORY.md, suggesting it enriches the memory file with newly processed information."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Daily Discord takes processed content and pushes it out via the Discord API. There's a dashed line from Daily Discord back to Daily Reading, hinting at some coordination or content handoff between the two workflows before posting."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ],
                  "index": {
                    "byteEnd": 28,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "(Green) Infrastructure Layer"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Ollama is the local LLM runtime, pulling model weights from GLM-4.7 (shown as a data/file artifact). Ada calls Ollama directly for language model inference."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "OpenClaw is the agent orchestration framework. It connects upward to the blue process layer — specifically feeding results into Daily Reading and receiving instructions from it. OpenClaw also has access to the markdown files in folder /memory/, enabling it to read and write contextual memory."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "The Discord API sits slightly apart, it is the only component not running locally."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": ""
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": ""
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://desrist2026.org/"
                    }
                  ],
                  "index": {
                    "byteEnd": 160,
                    "byteStart": 136
                  }
                },
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://rachmann-alexander.github.io/businesscard/res/desrist2026.pdf"
                    }
                  ],
                  "index": {
                    "byteEnd": 235,
                    "byteStart": 166
                  }
                }
              ],
              "plaintext": "Of course, in a more production-like environment, the setup would a lot different. We published a more elaborate piece on this topic at https://desrist2026.org/, see https://rachmann-alexander.github.io/businesscard/res/desrist2026.pdf for the poster."
            }
          }
        ],
        "id": "019e4462-8c5a-7ddc-8451-34cf30660d75"
      }
    ]
  },
  "description": "",
  "path": "/3mmdr2zujys2v",
  "publishedAt": "2026-05-21T06:07:59.535Z",
  "site": "at://did:plc:37dzjia23o4adan4mz75ziay/site.standard.publication/3mmbge7clas2s",
  "tags": [
    "software engineering",
    "software development",
    "software modeling",
    "ai agents",
    "openclaw"
  ],
  "title": "OpenClaw Agent from an Archimate Perspective"
}