<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Agentic on jeeVee Blog</title>
    <link>https://blog.jeevee.dev/agentic/</link>
    <description>Recent content in Agentic on jeeVee Blog</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <copyright>Copyright © 2025, GV.</copyright>
    <lastBuildDate>Sun, 15 Mar 2026 13:12:45 +0000</lastBuildDate>
    <atom:link href="https://blog.jeevee.dev/agentic/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Mobile Coder</title>
      <link>https://blog.jeevee.dev/agentic/mobile_coder/</link>
      <pubDate>Sun, 15 Mar 2026 13:12:45 +0000</pubDate>
      <guid>https://blog.jeevee.dev/agentic/mobile_coder/</guid>
      <description>&lt;h2 id=&#34;mobile-coder&#34;&gt;Mobile Coder&lt;/h2&gt;&#xA;&lt;h3 id=&#34;use-case&#34;&gt;Use Case&lt;/h3&gt;&#xA;&lt;p&gt;Adding a small feature or fixing a bug. No agentic planning needed - I already know exactly which files I want to change.&lt;/p&gt;&#xA;&lt;div class=&#34;video-container&#34; style=&#34;max-width: 100%; margin: 1rem 0;&#34;&gt;&#xA;    &lt;video &#xA;        id=&#34;video-mobile_coder&#34; &#xA;        controls &#xA;        preload=&#34;metadata&#34; &#xA;        poster=&#34;/images/mobile_coder/poster.png&#34;&#xA;        style=&#34;width: 70%; border-radius: 8px; background-color: #000;&#34;&gt;&#xA;        &lt;source src=&#34;https://blog.jeevee.dev/images/mobile_coder/mobile_code_480.webm&#34; type=&#34;video/webm&#34;&gt;&#xA;    &lt;/video&gt;&#xA;    &lt;div style=&#34;margin-top: 0.5rem; font-family: sans-serif; font-size: 0.8rem;&#34;&gt;&#xA;        Quality: &#xA;        &lt;button onclick=&#34;switchQual(&#39;video-mobile_coder&#39;, &#39;\/images\/mobile_coder\/mobile_code_480.webm&#39;)&#34;&gt;High (1080p)&lt;/button&gt;&#xA;        &lt;button onclick=&#34;switchQual(&#39;video-mobile_coder&#39;, &#39;\/images\/mobile_coder\/mobile_code_480.webm&#39;)&#34;&gt;Low (480p)&lt;/button&gt;&#xA;    &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;script&gt;&#xA;function switchQual(id, src) {&#xA;    const v = document.getElementById(id);&#xA;    const time = v.currentTime;&#xA;    const paused = v.paused;&#xA;    v.src = src;&#xA;    v.load();&#xA;    v.currentTime = time;&#xA;    if (!paused) v.play();&#xA;}&#xA;&lt;/script&gt;&#xA;&#xA;&lt;h3 id=&#34;steps&#34;&gt;Steps&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Open file&lt;/li&gt;&#xA;&lt;li&gt;Add comments to the file to indicate what needs to be done&lt;/li&gt;&#xA;&lt;li&gt;Launch the &lt;code&gt;Coder&lt;/code&gt; flow&lt;/li&gt;&#xA;&lt;li&gt;Select the option to &lt;code&gt;Verify Objective&lt;/code&gt;. This option will run compile, test, etc, whatever the acceptance criteria is for that project after the code changes are applied.&lt;/li&gt;&#xA;&lt;li&gt;Accept the file edits&lt;/li&gt;&#xA;&lt;li&gt;Review the outcome (e.g. build or test results) in the &lt;code&gt;Memento&lt;/code&gt; tab (tag &lt;code&gt;#objective&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;handling-incorrect-solutions&#34;&gt;Handling incorrect solutions&lt;/h3&gt;&#xA;&lt;p&gt;Sometimes the LLMs will produce a solution that does not yield the desired outcome. And it can be because I underspecified the request.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reflecting on Agentic Workflows</title>
      <link>https://blog.jeevee.dev/agentic/reflecting/</link>
      <pubDate>Thu, 01 Jan 2026 13:12:45 +0000</pubDate>
      <guid>https://blog.jeevee.dev/agentic/reflecting/</guid>
      <description>&lt;h2 id=&#34;a-hybrid-system&#34;&gt;A hybrid system&lt;/h2&gt;&#xA;&lt;p&gt;Reflecting on my work from the past year, I have achieved the primary goal: a modular system with support for human-in-the-loop steering. This allows for a hybrid workflow: autonomous for some tasks, but steerable when necessary.&lt;/p&gt;&#xA;&lt;p&gt;My experience with fully autonomous modes highlights the following challenges:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;em&gt;Review Complexity:&lt;/em&gt; It is difficult to review a large diff for a finished product. I find incremental code reviews to be a much safer and effective approach for important projects.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Specification Drift:&lt;/em&gt; The original task must be incredibly well-specified. Otherwise, the agent might spend a long time building an incorrect implementation based on a minor misunderstanding.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Cost:&lt;/em&gt; Unsupervised trial-and-error is expensive. Long-running tasks that rely on inference to self-correct often cost more than a steered session.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Similar to robots using odometry encoders for localization—where small errors accrue until they lead to significant drift—early divergence in LLM planning leads to dead ends. Without the ability to intervene, the only recovery mechanism is often a brute-force restart. By sticking to my principles of &lt;em&gt;Manual Steering&lt;/em&gt; and &lt;em&gt;Observability&lt;/em&gt;, I can correct this drift in real-time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Memento</title>
      <link>https://blog.jeevee.dev/agentic/memento/</link>
      <pubDate>Mon, 29 Dec 2025 13:12:45 +0000</pubDate>
      <guid>https://blog.jeevee.dev/agentic/memento/</guid>
      <description>&lt;p&gt;I wanted to share some notes on how I use the &lt;code&gt;Memento&lt;/code&gt; component.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;code&gt;Memento&lt;/code&gt; holds two types of artifacts:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;TextLocations -  this is mostly structured text, e.g LSP symbol definitions, LSP symbol references, etc.&lt;/li&gt;&#xA;&lt;li&gt;Fragments - this is unstructured text, e.g. the result of a web search, a note to remember, etc.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://blog.jeevee.dev/images/frugal/memento_text_location.png&#34; alt=&#34;LLM-log&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;agentic-use-case&#34;&gt;Agentic use-case&lt;/h1&gt;&#xA;&lt;p&gt;This is one use-case for the &lt;code&gt;Memento&lt;/code&gt;. Instead of maintaining a long-context LLMs outputs and tool results (e.g. LSP) are added to the &lt;code&gt;Memento&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Local Search</title>
      <link>https://blog.jeevee.dev/agentic/local-search/</link>
      <pubDate>Fri, 26 Dec 2025 13:12:45 +0000</pubDate>
      <guid>https://blog.jeevee.dev/agentic/local-search/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been working on implementing two types of searches: (a) web search and (b) local search. This post covers my approach to the latter.&lt;/p&gt;&#xA;&lt;p&gt;Local search helps find relevant text or code in local files. The search scope is limited to a single project rather than being global. Effectively the planning first identifies the project, and then it does a local search in the context of that project.&lt;/p&gt;&#xA;&lt;p&gt;Given an overarching goal, the planning agent can break down multiple local searches as needed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Modularity</title>
      <link>https://blog.jeevee.dev/agentic/modularity/</link>
      <pubDate>Sun, 12 Oct 2025 13:12:45 +0000</pubDate>
      <guid>https://blog.jeevee.dev/agentic/modularity/</guid>
      <description>&lt;p&gt;My setup is built around docker compose, with a web app using the Monaco editor as the main interface.&lt;/p&gt;&#xA;&lt;p&gt;Because my app runs in the browser, I keep several tabs open and work on multiple tasks in parallel. When a task needs my attention, I review the progress, approve it or add additional guidance, and then let it carry on while I switch to another tab.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://blog.jeevee.dev/images/jeevee_full.png&#34; alt=&#34;img&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;isolation&#34;&gt;Isolation&lt;/h2&gt;&#xA;&lt;p&gt;Each application under development gets its own docker container. The same goes for supporting services like LSPs and the LLM gateway—they each live in their own container too. This modular approach makes it easy to add new capabilities, even when they have different runtime requirements.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Weniger, Aber Besser (Meta-Programming with Agents)</title>
      <link>https://blog.jeevee.dev/agentic/weniger_aber_besser/</link>
      <pubDate>Sat, 20 Sep 2025 13:12:45 +0000</pubDate>
      <guid>https://blog.jeevee.dev/agentic/weniger_aber_besser/</guid>
      <description>&lt;p&gt;This post is about coding workflow and Tool use with agents. To set the context, it&amp;rsquo;s worth a brief reminder on my approach. As I mentioned in another post, the solution I evolved and refined over time is to &amp;ldquo;chip&amp;rdquo; at the problem. Solve intermediary goals, evaluate, see what&amp;rsquo;s left, and repeat until the entire problem is solved. I suppose in a way it&amp;rsquo;s similar to how diffusion works for image generation: incrementally add and refine until the task is solved.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Frugal</title>
      <link>https://blog.jeevee.dev/agentic/frugal/</link>
      <pubDate>Thu, 26 Jun 2025 13:12:45 +0000</pubDate>
      <guid>https://blog.jeevee.dev/agentic/frugal/</guid>
      <description>&lt;p&gt;Being frugal has benefits in terms of the effectiveness of the LLMs responses and the LLM API usage cost.&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-single-turn-context&#34;&gt;1. Single turn context&lt;/h2&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been tinkering with LLMs since the early days of GPT-4. My experience is that single turn prompts are more effective than long contexts.&lt;/p&gt;&#xA;&lt;p&gt;The way my system works is that the &lt;code&gt;Memento&lt;/code&gt; holds LSP references (e.g. symbol definitions, symbol references, etc.) or more general text fragments, and then a Classifier selects from the &lt;code&gt;Memento&lt;/code&gt; which items are relevant for a given LLM prompt.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Observability</title>
      <link>https://blog.jeevee.dev/agentic/observability/</link>
      <pubDate>Sat, 10 May 2025 13:12:45 +0000</pubDate>
      <guid>https://blog.jeevee.dev/agentic/observability/</guid>
      <description>&lt;h2 id=&#34;observability&#34;&gt;Observability&lt;/h2&gt;&#xA;&lt;p&gt;I have not seen this feature highlighted in other agentic systems, but my own experience building my system was that it is paramount to be able to see what the LLM conversation was, and even more, to be able to make amendments to the conversations.&lt;/p&gt;&#xA;&lt;h3 id=&#34;reviewing-the-detailed-llm-log&#34;&gt;Reviewing the detailed LLM log&lt;/h3&gt;&#xA;&lt;p&gt;This is incredibly valuable, as many problems can be traced to prompt and context engineering. The log shows what was actually sent to the LLM and I can review if I missed anything salient to the task I asked to be solved. The logs live locally in a WASM SQLite database in the browser.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Planning</title>
      <link>https://blog.jeevee.dev/agentic/planning/</link>
      <pubDate>Sat, 03 May 2025 13:12:45 +0000</pubDate>
      <guid>https://blog.jeevee.dev/agentic/planning/</guid>
      <description>&lt;p&gt;My approach to planning takes a somewhat different direction compared to other agentic platforms.&lt;/p&gt;&#xA;&lt;h2 id=&#34;chipper&#34;&gt;Chipper&lt;/h2&gt;&#xA;&lt;p&gt;Instead of generating a large md file describing a plan, I use what I call the &lt;code&gt;chipper&lt;/code&gt; approach.&lt;/p&gt;&#xA;&lt;p&gt;It works like this:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Define a sub-goal&lt;/li&gt;&#xA;&lt;li&gt;Plan for the sub-goal&lt;/li&gt;&#xA;&lt;li&gt;Implement code for the sub-goal&lt;/li&gt;&#xA;&lt;li&gt;Run the Objective (e.g. compile, tests, etc)&lt;/li&gt;&#xA;&lt;li&gt;Summarize (a) what we&amp;rsquo;ve done so far (b) is the Objective satisfied&lt;/li&gt;&#xA;&lt;li&gt;If DONE exit, if not return to #1. (i.e. continue chipping at the problem)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;In practice the structure of the Planner is a behavior tree that looks like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Motivation</title>
      <link>https://blog.jeevee.dev/agentic/intro/</link>
      <pubDate>Fri, 24 Jan 2025 13:12:45 +0000</pubDate>
      <guid>https://blog.jeevee.dev/agentic/intro/</guid>
      <description>&lt;p&gt;The primary goal of this project is to build a semi-autonomous agentic system with rich support for human-in-the-loop steering. I believe that I must perfect this foundation before layering on top the &amp;ldquo;Critic&amp;rdquo; agents necessary to drive the system autonomously.&lt;/p&gt;&#xA;&lt;p&gt;For the foundation layer the following capabilities are important to me:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;em&gt;Full Configurability:&lt;/em&gt; The ability to configure every aspect of the end-to-end system, right down to the LLM system prompts.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Manual Steering:&lt;/em&gt; The ability to review code changes incrementally and steer all decisions in a granular &amp;ldquo;manual mode.&amp;rdquo;&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Observability:&lt;/em&gt; Deep introspection into the system, including the ability to review, edit, and interact with the underlying LLM layer directly.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;I believe that a tunable, ground-up system is a necessary stepping stone for building truly autonomous agents on top of that foundation.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
