<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog on Amine El Farssi</title><link>https://amineelfarssi.github.io/blog/</link><description>Recent content in Blog on Amine El Farssi</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026 Amine El Farssi</copyright><lastBuildDate>Wed, 25 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://amineelfarssi.github.io/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>27 AI Engineering Patterns in 60 Seconds Each</title><link>https://amineelfarssi.github.io/blog/ai-engineering-patterns-series/</link><pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate><guid>https://amineelfarssi.github.io/blog/ai-engineering-patterns-series/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
One production AI engineering pattern per week. 27 episodes and counting. Each Short covers a real pattern engineers hit in production — the problem, the fix, and the code.
&lt;/div&gt;</description></item><item><title>AI Agent Protocols Explained in 60 Seconds</title><link>https://amineelfarssi.github.io/blog/dpo-protocol-shorts/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://amineelfarssi.github.io/blog/dpo-protocol-shorts/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
Six agentic protocols. Sixty seconds each. Built with Manim + local TTS at zero cost. All on the &lt;a
href="https://www.youtube.com/@DPO-AI"
target="_blank"
&gt;DPO YouTube channel&lt;/a&gt;.
&lt;/div&gt;</description></item><item><title>Graph RAG in Practice: How I Wired Neo4j Into My AI Agent's Memory</title><link>https://amineelfarssi.github.io/blog/graph-rag-neo4j-openclaw/</link><pubDate>Mon, 23 Mar 2026 00:00:00 +0000</pubDate><guid>https://amineelfarssi.github.io/blog/graph-rag-neo4j-openclaw/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
Vector RAG retrieves documents. Graph RAG retrieves relationships. When your agent needs to reason across entities, timelines, and decisions, the graph wins.
&lt;/div&gt;
&lt;a
class="!rounded-md bg-primary-600 px-4 py-2 !text-neutral !no-underline hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
href="https://amineelfarssi.github.io/graph-rag/"
target="_self"
role="button"&gt;
Open Interactive Version →
&lt;/a&gt;
&lt;hr&gt;
&lt;h2 class="relative group"&gt;The Problem I Was Trying to Solve
&lt;div id="the-problem-i-was-trying-to-solve" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-problem-i-was-trying-to-solve" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;My AI agent PostSingular, running on OpenClaw, talks to me every day. It helps me build Luminar, manages my YouTube channel, and tracks infrastructure decisions across sessions.&lt;/p&gt;</description></item><item><title>9 AI Agents Building My Startup: How I Run a Software Team with $0 Salaries</title><link>https://amineelfarssi.github.io/blog/multi-agent-startup/</link><pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate><guid>https://amineelfarssi.github.io/blog/multi-agent-startup/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
Luminar has 173 source files, 21,586 lines of production code, 43 API endpoints, and 155+ tests. It was built almost entirely by AI agents. Here&amp;rsquo;s the team structure, the workflow, and the honest truth about what breaks.
&lt;/div&gt;
&lt;h2 class="relative group"&gt;The Team
&lt;div id="the-team" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-team" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;I didn&amp;rsquo;t want generic agents. I wanted specialists — each with a clear domain, sharp ownership boundaries, and a persona that shapes how they approach problems.&lt;/p&gt;</description></item><item><title>PostSingular: Building an AI with Persistent Identity Across Sessions</title><link>https://amineelfarssi.github.io/blog/persistent-ai-identity/</link><pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate><guid>https://amineelfarssi.github.io/blog/persistent-ai-identity/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
The default state of a language model is amnesia. Every session, it wakes up fresh with no memory of what happened before. I built a memory system that fixes this — and somewhere in the process, the agent got a name, a personality, and an opinion about font choices.
&lt;/div&gt;
&lt;h2 class="relative group"&gt;The Problem
&lt;div id="the-problem" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-problem" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;Every LLM session is stateless by design. You can inject previous conversation history, but:&lt;/p&gt;</description></item><item><title>Running a YouTube Channel for $0: Manim + Local TTS + FFmpeg + YouTube API</title><link>https://amineelfarssi.github.io/blog/youtube-channel-zero-cost-pipeline/</link><pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate><guid>https://amineelfarssi.github.io/blog/youtube-channel-zero-cost-pipeline/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
The DPO channel (&lt;a href="https://youtube.com/@DPO-AI"&gt;@DPO-AI&lt;/a&gt;) publishes AI/ML technical Shorts. 7 videos uploaded so far, covering agent memory, HNSW indexing, and agentic protocols. The entire production pipeline costs less than a coffee per video.
&lt;/div&gt;
&lt;h2 class="relative group"&gt;Why Build This
&lt;div id="why-build-this" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-build-this" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;I wanted to publish technical AI content that goes beyond surface-level explanations — real system architecture, real algorithms, real trade-offs. And I wanted it to be visually compelling, not just a talking head.&lt;/p&gt;</description></item><item><title>The Gaming Server AI Lab: Running Production AI Workloads for €25/month</title><link>https://amineelfarssi.github.io/blog/gaming-server-ai-lab/</link><pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate><guid>https://amineelfarssi.github.io/blog/gaming-server-ai-lab/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
Cloud is convenient. But when you already own a gaming PC with a 2080 Ti collecting dust, the math changes fast. Here&amp;rsquo;s how I turned mine into a production AI server running everything from Neo4j to GPU rendering — at €25/month.
&lt;/div&gt;
&lt;h2 class="relative group"&gt;The Hardware
&lt;div id="the-hardware" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-hardware" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;I didn&amp;rsquo;t buy anything new. This is the machine I had:&lt;/p&gt;</description></item><item><title>Voice Cloning Reality Check: F5-TTS With 12 Seconds of Audio</title><link>https://amineelfarssi.github.io/blog/voice-cloning-f5-tts-experiment/</link><pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate><guid>https://amineelfarssi.github.io/blog/voice-cloning-f5-tts-experiment/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
Premise: use F5-TTS to clone a voice from a short reference clip and generate high-quality narration for AI content. Reality: mediocre output, weird artifacts, wrong prosody. Here&amp;rsquo;s the honest post-mortem.
&lt;/div&gt;
&lt;h2 class="relative group"&gt;The Setup
&lt;div id="the-setup" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-setup" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;F5-TTS is a non-autoregressive TTS model that uses flow matching for zero-shot voice cloning. You give it:&lt;/p&gt;</description></item><item><title>Why Vector Memory Alone Isn't Enough: Knowledge Graph Memory for AI Agents</title><link>https://amineelfarssi.github.io/blog/knowledge-graph-memory-agents/</link><pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate><guid>https://amineelfarssi.github.io/blog/knowledge-graph-memory-agents/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
Vector databases are fast and convenient. But they can&amp;rsquo;t answer &amp;ldquo;what did I decide about the auth system 3 weeks ago and why?&amp;rdquo; For that, you need relationships — and that means a knowledge graph.
&lt;/div&gt;
&lt;h2 class="relative group"&gt;The Problem with Pure Vector Memory
&lt;div id="the-problem-with-pure-vector-memory" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-problem-with-pure-vector-memory" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;Most AI memory systems work like this: embed text, store in ChromaDB, retrieve by cosine similarity. It works well for &amp;ldquo;find things similar to this query.&amp;rdquo;&lt;/p&gt;</description></item><item><title>Agentic Frameworks Deep Dive: pi-agent-core vs Google ADK vs AWS Strands vs CrewAI vs LangGraph vs Pydantic AI</title><link>https://amineelfarssi.github.io/blog/agentic-frameworks-comparison/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://amineelfarssi.github.io/blog/agentic-frameworks-comparison/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
Building production AI agents requires choosing the right framework. This analysis examines &lt;strong&gt;pi-agent-core&lt;/strong&gt; (OpenClaw&amp;rsquo;s runtime), &lt;strong&gt;Google ADK&lt;/strong&gt;, &lt;strong&gt;AWS Strands&lt;/strong&gt;, &lt;strong&gt;CrewAI&lt;/strong&gt;, &lt;strong&gt;LangGraph&lt;/strong&gt;, and &lt;strong&gt;Pydantic AI&lt;/strong&gt; across critical dimensions: sessions, memory, protocols, agent loops, and replay support.
&lt;/div&gt;</description></item><item><title>DeepSeek OCR: Running State-of-the-Art OCR Locally</title><link>https://amineelfarssi.github.io/blog/deepseek-ocr-local-guide/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://amineelfarssi.github.io/blog/deepseek-ocr-local-guide/</guid><description>&lt;h2 class="relative group"&gt;Introduction
&lt;div id="introduction" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#introduction" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;In the age of AI, Optical Character Recognition (OCR) has evolved from simple pattern matching to sophisticated vision-language models that can understand context, preserve formatting, and handle complex documents. &lt;strong&gt;DeepSeek-OCR&lt;/strong&gt; represents the cutting edge of this evolution — and the best part? You can run it entirely offline on your own hardware.&lt;/p&gt;</description></item><item><title>Inside OpenClaw: The Architecture That Turns LLMs Into Autonomous Agents</title><link>https://amineelfarssi.github.io/blog/openclaw-architecture-deep-dive/</link><pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate><guid>https://amineelfarssi.github.io/blog/openclaw-architecture-deep-dive/</guid><description>&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;
I&amp;rsquo;ve been obsessed with a question: &lt;strong&gt;Why can&amp;rsquo;t AI just&amp;hellip; do things?&lt;/strong&gt; ChatGPT can write a perfect email, but &lt;em&gt;you&lt;/em&gt; still copy-paste it. Claude can explain how to automate your workflow, but &lt;em&gt;you&lt;/em&gt; implement it. Then I found OpenClaw — and everything clicked.
&lt;/div&gt;
&lt;h2 class="relative group"&gt;The Problem With Chatbots
&lt;div id="the-problem-with-chatbots" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-problem-with-chatbots" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;div
class="flex px-4 py-3 rounded-md" style="background-color: #1e3a5f"
&gt;
&lt;span
class="pe-3 flex items-center" style="color: #60a5fa"
&gt;
&lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path fill="currentColor" d="M256 32C114.6 32 .0272 125.1 .0272 240c0 49.63 21.35 94.98 56.97 130.7c-12.5 50.37-54.27 95.27-54.77 95.77c-2.25 2.25-2.875 5.734-1.5 8.734C1.979 478.2 4.75 480 8 480c66.25 0 115.1-31.76 140.6-51.39C181.2 440.9 217.6 448 256 448c141.4 0 255.1-93.13 255.1-208S397.4 32 256 32z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;/span&gt;
&lt;span
style="color: #f0f0f0"
&gt;&lt;p&gt;&lt;strong&gt;Traditional AI:&lt;/strong&gt; Smart brain, no body. Limited to generating text.&lt;/p&gt;</description></item><item><title>Agentic Protocols: A2UI, A2A, MCP, and UCP (Research Report)</title><link>https://amineelfarssi.github.io/blog/agentic-protocols-a2ui-a2a-mcp-ucp/</link><pubDate>Tue, 27 Jan 2026 00:00:00 +0000</pubDate><guid>https://amineelfarssi.github.io/blog/agentic-protocols-a2ui-a2a-mcp-ucp/</guid><description>&lt;h2 class="relative group"&gt;Executive Summary
&lt;div id="executive-summary" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#executive-summary" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;h3 class="relative group"&gt;TL;DR
&lt;div id="tldr" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#tldr" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h3&gt;
&lt;p&gt;As of January 2026, the agentic ecosystem is consolidating around &lt;strong&gt;four complementary protocols&lt;/strong&gt; that fit naturally into a layered stack:&lt;/p&gt;</description></item></channel></rss>