Why Caddy runs as a host service installed from Caddy's signed official APT repository, not as a Podman container, on my personal services platform. And why an explicit administrator runbook replaces a premature automated wrapper.
Hello, I’m Mathias 👋
Hi! This is where I share my thoughts and notes on everything I’m passionate about and working on right now. I’d love to connect with like-minded people.
Check out my latest blog posts below!
Greywall's built-in pi profile leaves the agent's persistence vectors writable. Analysis of the gaps (network, inaccurate XDG paths, overly broad allowWrite) and a corrective denyWrite profile, with the limits the sandbox cannot cover on its own.
I wrap up the series with the operational side: how to launch the workflow daily. A persistent plan.md, pre-commit hooks as guardrails, a multi-level CI pipeline, and a simple audit to adopt an existing repo.
pi-secured-setup v1.1.0 maps against the OWASP AI Agent Security Cheat Sheet. HMAC-chained audit log, bash exfiltration detection, rate limiting, prompt injection scanner, and 14 Dependabot advisories closed.
I connect the workflow to a modern stack: React on the frontend, Go with Gin, GORM, and PostgreSQL on the backend. Three structural choices keep the suite reliable: testcontainers-go, strict MSW, and Pact.
The implementation of argentic-mw: the common Core in two hundred lines, three pipelines (Watch, Web Stats, Zendesk), the rule table, the auto-response guardrails and the scheduler via Postgres leader election.
Build or buy for an LLM agent? Three axes, six decision criteria, and a quadrant to compare full-LLM platforms, orchestration frameworks and a custom core. The framework I apply to argentic-mw.
Why I built a supervised agent rather than an autonomous one for a scheduled business pipeline. The LLM steps in at extension points where it is useful, the rest is deterministic, traceable, replayable code.
Example-based tests miss the edges. Property-based testing flips the approach. I show six useful patterns, stateful PBT for sequence bugs, and why this topic is well-suited for AI-assisted use.
On a 100% private local RAG, replacing nomic-embed-text with bge-m3 and dropping runtime FR→EN translation took recall from 0.45 to 0.95 and cut latency by twelve. Measured, not guessed.