<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: cucoleadan</title>
    <description>The latest articles on DEV Community by cucoleadan (@cucoleadan).</description>
    <link>https://dev.to/cucoleadan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1392305%2Fb8e28d8c-8302-4fe8-86e5-d09186c09b75.png</url>
      <title>DEV Community: cucoleadan</title>
      <link>https://dev.to/cucoleadan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cucoleadan"/>
    <language>en</language>
    <item>
      <title>How Pangram Decides What Looks Like AI</title>
      <dc:creator>cucoleadan</dc:creator>
      <pubDate>Tue, 28 Jul 2026 12:37:08 +0000</pubDate>
      <link>https://dev.to/cucoleadan/how-pangram-decides-what-looks-like-ai-n9j</link>
      <guid>https://dev.to/cucoleadan/how-pangram-decides-what-looks-like-ai-n9j</guid>
      <description>&lt;p&gt;&lt;em&gt;This was originally published on &lt;a href="https://allagentsconsidered.substack.com/p/how-pangram-decides-what-looks-like" rel="noopener noreferrer"&gt;All Agents Considered&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;I have no doubt you already know that last week Substack just attached an AI detector to every article on the platform.&lt;/p&gt;

&lt;p&gt;The new &lt;a href="https://support.substack.com/hc/en-us/articles/50891130623508-How-can-I-detect-AI-on-Substack" rel="noopener noreferrer"&gt;“Scan for AI” feature&lt;/a&gt; lets readers analyze a post, Note, comment, or reply with &lt;a href="https://www.pangram.com/research/how-it-works" rel="noopener noreferrer"&gt;Pangram&lt;/a&gt;, which estimates how much of the writing is human, AI-assisted or written by AI.&lt;/p&gt;

&lt;p&gt;And the percentage it returns might looks precise, like a speed camera telling you exactly how fast you were going.&lt;/p&gt;

&lt;p&gt;But Pangram did not watch the person type, check their browsing history, or find a hidden signature left by ChatGPT or Claude. It looked at the finished text and decided what the writing resembled.&lt;/p&gt;

&lt;p&gt;That distinction sits at the center of the argument happening across the &lt;a href="https://www.reddit.com/r/Substack/comments/1v2pokv/substack_now_works_with_pangram_to_let_readers/" rel="noopener noreferrer"&gt;Substack&lt;/a&gt;, &lt;a href="https://www.reddit.com/r/Professors/comments/1nr17ue/thoughts_on_pangram/" rel="noopener noreferrer"&gt;professor&lt;/a&gt;, and &lt;a href="https://www.reddit.com/r/slatestarcodex/comments/1v2p1b8/substack_partners_with_pangram_to_offer_oneclick/" rel="noopener noreferrer"&gt;AI research&lt;/a&gt; subreddits.&lt;/p&gt;

&lt;p&gt;Some people think these detectors generate little more than a random number. Others treat the score like a confession.&lt;/p&gt;

&lt;p&gt;Both sides are missing the point.&lt;/p&gt;

&lt;p&gt;Pangram is pretty good at identifying obvious AI writing, and it has more behind it than the early tools that made AI detection a laughing stock. In &lt;a href="https://www.nber.org/papers/w34223" rel="noopener noreferrer"&gt;independent testing from the University of Chicago&lt;/a&gt;, it identified writing from widely available AI models with low error rates under the conditions studied.&lt;/p&gt;

&lt;p&gt;But it is not perfect. &lt;a href="https://arxiv.org/abs/2605.19516" rel="noopener noreferrer"&gt;Some model output and repeated paraphrasing can evade it&lt;/a&gt;, and human writing can still be classified incorrectly.&lt;/p&gt;

&lt;p&gt;A low AI score does not prove that no AI was used, just as a high score does not prove an algo wrote the text. Pangram is a serious pattern detector, not a yes-or-no authorship test. It cannot magically settle the question of authorship. So today I am going a bit out of the way with the main topics of AAC to show you the truth behind Pangram and AI detectors.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiyfowjz2ndo56howk8wx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiyfowjz2ndo56howk8wx.png" alt="Pangram AI detection interface showing a text analysis with human and AI-assisted percentage breakdown" width="800" height="417"&gt;&lt;/a&gt;&lt;br&gt;
In this edition I’ll cover how Pangram is trained, what its score measures, why it differs from older detectors, and where it fails, without pretending the tool can prove with 100% certainty who wrote a piece a text.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In this article:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Why older AI detectors earned so much distrust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How Pangram learns to identify AI patterns&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What its percentage does and does not mean&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The strongest evidence that it works&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The known ways it can fail&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How to use a result without accusing the wrong person&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Everyone Hates AI Detectors
&lt;/h2&gt;

&lt;p&gt;Early AI detectors often leaned heavily on two ideas called &lt;strong&gt;perplexity&lt;/strong&gt; (&lt;em&gt;not the tool&lt;/em&gt;) and &lt;strong&gt;burstiness&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Perplexity&lt;/strong&gt; asks how surprised a language model is by the next word. AIs are trained to predict the next word, that’s literally written in the DNA of all LLMs. On the other hand, our human writing patterns are less predictable just because our writing tends to be messier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Burstiness&lt;/strong&gt; asks whether sentence lengths and structures vary. Humans may write one clipped sentence, then an overgrown paragraph, followed by a shorter sentences. AI models usually settle into a steady rhythm (like the Rule of 3’s).&lt;/p&gt;

&lt;p&gt;You don’t need me to point out that these “AI detection” techniques are fundamentally flawed. Imagine judging whether bread came from a factory by checking whether every slice has the same thickness. That clue may help in some cases, but it doesn’t tell you exactly who baked the loaf.&lt;/p&gt;

&lt;p&gt;A safety manual is predictable because it needs to be. A legal form repeats itself because consistency matters. A non-native writer may use simpler sentence patterns.&lt;/p&gt;

&lt;p&gt;A poet may produce language so unusual that the detector has little familiar ground beneath it.&lt;/p&gt;

&lt;p&gt;This is why old detectors produced absurd headlines. In 2023, &lt;a href="https://arstechnica.com/information-technology/2023/07/why-ai-detectors-think-the-us-constitution-was-written-by-ai/" rel="noopener noreferrer"&gt;Ars Technica reported&lt;/a&gt; that one detector labeled part of the US Constitution as likely AI-generated. A &lt;a href="https://link.springer.com/article/10.1007/s40979-023-00146-z" rel="noopener noreferrer"&gt;2023 academic review of detection tools&lt;/a&gt; also found serious reliability problems, especially after text was edited or paraphrased. Pangram argues that those two measures alone &lt;a href="https://www.pangram.com/blog/why-perplexity-and-burstiness-fail-to-detect-ai" rel="noopener noreferrer"&gt;fail as a basis for detection&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Thus an online myth was born: AI detectors don’t work.&lt;/p&gt;

&lt;p&gt;Before we go into why Pangram is truly different, we really have to get this out of the way. Pangram is not the only trained detector in 2026. GPTZero describes a multiclass model for human, mixed, polished, generated, and paraphrased text. Originality says its &lt;a href="https://originality.ai/blog/how-does-ai-content-detection-work" rel="noopener noreferrer"&gt;current detector uses a trained transformer model&lt;/a&gt; built from human and generated examples.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pangram Does Not Search for an Em Dash
&lt;/h2&gt;

&lt;p&gt;Pangram is a trained classifier.&lt;/p&gt;

&lt;p&gt;Researchers train it on many documents labeled by source: human-written or AI-generated. From those examples, the detector learns which combinations of patterns tend to distinguish one group from the other.&lt;/p&gt;

&lt;p&gt;Think of it like teaching someone to recognize counterfeit passports rather than giving them a checklist of what a document should contain. &lt;em&gt;Side note: this reminded me of the game Papers, Please.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Pangram says its flagship detector uses a transformer model adapted to classify sequences of text. Its &lt;a href="https://www.pangram.com/research/how-it-works" rel="noopener noreferrer"&gt;technical explanation&lt;/a&gt; and &lt;a href="https://arxiv.org/abs/2402.14873" rel="noopener noreferrer"&gt;original research paper&lt;/a&gt; describe a system that learns from human writing and model-generated writing. Basically they created an AI that can detect AIs.&lt;/p&gt;

&lt;p&gt;It does not call OpenAI to ask whether ChatGPT wrote the paragraph. It does not recover the prompt. It does not compare the post with a giant database of every answer an AI company has produced. There’s literally no need for that.&lt;/p&gt;

&lt;p&gt;Pangram learns what different kinds of writing tend to look like, then it analyzes the text you feed it against that map.&lt;/p&gt;

&lt;p&gt;This should also clear up the em dash frenzy.&lt;/p&gt;

&lt;p&gt;Pangram can show human-readable supporting clues such as em dashes, lists, headings, stock phrases, Markdown, and groups of. But Pangram says those visible clues &lt;a href="https://www.pangram.com/supporting-evidence" rel="noopener noreferrer"&gt;are separate from the flagship detector&lt;/a&gt;. They help a reader inspect the text and show that they are not the inputs driving the main model.&lt;/p&gt;

&lt;p&gt;To better put this into perspective, imagine a prisoner just escaped from incarceration. Deleting every em dash is like removing their striped shirt before a facial-recognition scan. The prisoner changed something visible without necessarily changing what the system recognizes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pangram Trains on Twins
&lt;/h2&gt;

&lt;p&gt;The most interesting difference is how Pangram constructs its training set.&lt;/p&gt;

&lt;p&gt;Suppose we trained a detector using personal diaries as the human examples and software landing pages as the AI examples. It might appear accurate while learning the wrong lesson. Instead of detecting AI, it could learn that feelings are human and product features are synthetic.&lt;/p&gt;

&lt;p&gt;Pangram tries to prevent that shortcut with what it calls &lt;strong&gt;synthetic mirroring&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For each human document, it creates an AI counterpart about the same subject, in a similar tone and style, carrying similar information. A human book review is compared with an AI book review of the same material. A human essay is paired with its AI twin.&lt;/p&gt;

&lt;p&gt;The detector must find differences between twins rather than compare a shopping list with a sales page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3baafnledk74gs1i04ce.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3baafnledk74gs1i04ce.png" alt="Diagram showing Pangram's synthetic mirroring training method where human text is paired with AI-generated counterparts" width="800" height="220"&gt;&lt;/a&gt;&lt;br&gt;
Pangram’s &lt;a href="https://www.pangram.com/research/model-card/pangram-3-1" rel="noopener noreferrer"&gt;model card&lt;/a&gt; says its human training material covers essays, reviews, books, creative writing, news, scientific papers, Wikipedia, and general web text. Its AI side is generated in-house to create those matched comparisons. Then it makes the exam even harder.&lt;/p&gt;

&lt;p&gt;Pangram scans large collections of known human writing and looks for passages the detector wrongly calls AI. Researchers add those mistakes back into the training data, create AI mirrors for them, and train again.&lt;/p&gt;

&lt;p&gt;This technique is called &lt;strong&gt;hard-negative mining&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;There’s a famous story from World War II based on the statistician Abraham Wald. The military engineers were asked to examine aircraft that returned from battle and map where they had been hit. In most cases, the wings and fuselage were covered in bullet holes, so the obvious response was to reinforce those areas.&lt;/p&gt;

&lt;p&gt;Wald argued that the military was looking only at surviving aircraft, but if those planes could return despite being hit in the wings and fuselage, then those areas were not the most vulnerable. That’s how he figured out the places with few bullet holes (like the engines) needed more protection.&lt;/p&gt;

&lt;p&gt;Hard-negative mining follows a similar principle. The most useful evidence often comes from the cases a system mishandles. So instead of repeatedly training a detector on obvious AI writing, researchers study the difficult human passages Pangram (&lt;em&gt;initially&lt;/em&gt;) falsely identified as AI and feed those mistakes back into the training process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pangram’s Open Model Is Not the Substack Model
&lt;/h2&gt;

&lt;p&gt;Pangram has released public code, data links, and model weights through its &lt;a href="https://github.com/pangramlabs/EditLens" rel="noopener noreferrer"&gt;EditLens repository&lt;/a&gt;. The project accompanies a paper accepted at ICLR 2026 on measuring degrees of AI editing.&lt;/p&gt;

&lt;p&gt;That is meaningful transparency. It lets researchers inspect and reproduce part of the method without trusting a marketing page.&lt;/p&gt;

&lt;p&gt;What it doesn’t reveal is the complete system running inside Pangram’s commercial product.&lt;/p&gt;

&lt;p&gt;The public repository contains two smaller research models and instructions for training them. Pangram’s &lt;a href="https://www.pangram.com/blog/introducing-open-pangram" rel="noopener noreferrer"&gt;Open Pangram announcement&lt;/a&gt; explicitly says the release is a research baseline and should not be used to enforce AI policies in schools or workplaces.&lt;/p&gt;

&lt;p&gt;The current commercial model described by Pangram is version 3.3. Its &lt;a href="https://www.pangram.com/research/model-card/pangram-3-3" rel="noopener noreferrer"&gt;model card&lt;/a&gt; documents a larger production system with later training and scanning changes. Substack publicly confirms the Pangram integration, but its help page does not name the exact model version or threshold it uses.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Percentage Means
&lt;/h2&gt;

&lt;p&gt;We can all agree that teal writing has made binary detection obsolete.&lt;/p&gt;

&lt;p&gt;A writer may create the first draft, ask Claude to tighten one section, run the result through Grammarly, dictate a new ending, and then rewrite every sentence by hand. Which words belong to whom?&lt;/p&gt;

&lt;p&gt;Pangram’s EditLens research tries to measure that grey area. Researchers begin with human text, ask models to edit it at different intensities, and compare each edited version with the original. A classifier then learns to estimate the degree of editing from the final text.&lt;/p&gt;

&lt;p&gt;The full &lt;a href="https://arxiv.org/abs/2510.03154" rel="noopener noreferrer"&gt;EditLens paper&lt;/a&gt; states the important limitation of its method. When the detector checks your article, it doesn’t receive your original draft. It only sees the final text.&lt;/p&gt;

&lt;p&gt;The estimate is like a restorer examining a painting and guessing how much has been retouched. They may recognize signs of later work, but they can’t count the extra brushstrokes.&lt;/p&gt;

&lt;p&gt;For long documents, Pangram breaks the text into overlapping windows, checks each window, then makes a finer pass near uncertain boundaries. Its &lt;a href="https://www.pangram.com/research/model-card/pangram-3-2" rel="noopener noreferrer"&gt;3.2 model card&lt;/a&gt; describes an approximate resolution of 50 words.&lt;/p&gt;

&lt;p&gt;Pangram can then describe shares of a document as Human, Lightly AI-assisted, Moderately AI-assisted, or AI. A result such as 30% AI refers to the share of classified text segments assigned to that category.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fit5mxs4e7r0kjwmgomwl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fit5mxs4e7r0kjwmgomwl.png" alt="Chart showing Pangram's overlapping window analysis method for breaking long documents into text segments" width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
It does not mean:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;There is a 30% chance the writer used AI&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A machine typed exactly 30% of the words&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pangram found the original prompt&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The writer contributed only 70% of the thinking&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ideas, wording, structure, research, and final judgment are different contributions. No detector can reduce all of them to one authorship percentage by reading the final copy.&lt;/p&gt;

&lt;p&gt;This is where Substack’s interface creates a social problem. A percentage looks like a measurement, but underneath it’s just a classification.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Evidence That Pangram Works
&lt;/h2&gt;

&lt;p&gt;The strongest independent evidence I found comes from the 2025 University of Chicago working paper &lt;a href="https://www.nber.org/papers/w34223" rel="noopener noreferrer"&gt;Artificial Writing and Automated Detection&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The researchers gathered 1,992 verified human passages across blogs, novels, résumés, essays, business writing, and other genres. They produced matched AI versions using GPT-4.1, Claude Opus 4, Claude Sonnet 4, and Gemini 2.0 Flash.&lt;/p&gt;

&lt;p&gt;On medium and long passages in that test, Pangram produced essentially zero false positives and false negatives. It outperformed GPTZero, OriginalityAI, and an open RoBERTa detector in the same experiment.&lt;/p&gt;

&lt;p&gt;That should clear up the myth that “AI detectors never work”.&lt;/p&gt;

&lt;p&gt;But this should also be taken with a grain of salt. The paper was, after all, a working paper. The test used a controlled set of matched human and synthetic documents. It evaluated the Pangram service available in May 2025 and it did not test every Substack voice, mixed editing workflow, new model, humanizer, or unusual format.&lt;/p&gt;

&lt;p&gt;Pangram’s current numbers come from Pangram. Its &lt;a href="https://www.pangram.com/research/model-card/pangram-3-3" rel="noopener noreferrer"&gt;3.3 model card&lt;/a&gt; reports a 0.01% false-positive rate for long-form creative writing, 0.02% for academic writing, 0.04% for multilingual how-to articles, and 0.49% for poetry.&lt;/p&gt;

&lt;p&gt;It also reports a 1.5% false-negative rate on a random Chatbot Arena set.&lt;/p&gt;

&lt;p&gt;Those are impressive company-reported results, but they shouldn’t be treated as promises about the next text you scan.&lt;/p&gt;

&lt;p&gt;The clearest warning comes from a competing test. In February 2026, &lt;a href="https://gptzero.me/news/gptzero-ai-detection-benchmarking-the-industry-standard-in-accuracy-transparency-and-fairness/" rel="noopener noreferrer"&gt;GPTZero published its own benchmark&lt;/a&gt; and reported that GPTZero 4.3b beat Pangram 3.2 on its datasets.&lt;/p&gt;

&lt;p&gt;That does not prove GPTZero is better. It proves the winner changes with the test set, model version, threshold, and person running the test.&lt;/p&gt;

&lt;p&gt;I made the same argument in &lt;a href="https://allagentsconsidered.substack.com/p/why-ai-benchmarks-fail-agent-workflows" rel="noopener noreferrer"&gt;my breakdown of why AI benchmarks fail real agent workflows&lt;/a&gt;. A leaderboard compresses the conditions into one number, but conditions change and can be picked arbitrarily.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where Pangram Messes Up
&lt;/h2&gt;

&lt;p&gt;Pangram’s own documentation says it works best on long-form prose written in complete sentences, like a Substack post.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsoa508bsrbyaxiy1v8dq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsoa508bsrbyaxiy1v8dq.png" alt="Diagram illustrating Pangram's limitations including bullet lists, technical instructions, poetry, and short text" width="800" height="220"&gt;&lt;/a&gt;&lt;br&gt;
Its &lt;a href="https://www.pangram.com/research/model-card/pangram-3-3" rel="noopener noreferrer"&gt;3.3 limitations&lt;/a&gt; warn about bullet lists, technical instructions, tables of contents, references, templates, equations, headers, and footers. Poetry has a much higher reported false-positive rate than long creative prose.&lt;/p&gt;

&lt;p&gt;Short text creates another problem. Just as a smoke detector cannot identify much from a few molecules in the air, Pangram can not correctly classify a short text.&lt;/p&gt;

&lt;p&gt;Then there are false negatives.&lt;/p&gt;

&lt;p&gt;A May 2026 preprint titled &lt;a href="https://arxiv.org/abs/2605.19516" rel="noopener noreferrer"&gt;Base Models Look Human To AI Detectors&lt;/a&gt; found that output from base language models often looked human to both Pangram and GPTZero. Instruction-tuned chat models were easier to identify than base models. Researchers also used repeated paraphrasing to make AI text appear more human to the detectors.&lt;/p&gt;

&lt;p&gt;That suggests detectors may be especially good at recognizing the habits produced by chat-model training, rather than detecting one universal substance called “AI writing.”&lt;/p&gt;

&lt;p&gt;The Atlantic found another crack. A reporter sent ChatGPT and Claude output through the &lt;a href="https://walterwrites.ai/" rel="noopener noreferrer"&gt;Walter Writes humanizer&lt;/a&gt;, then watched Pangram label the result human. Pangram has since described better humanizer detection in version 3.3, so one test does not freeze the system forever, but it does show the shape of the fight.&lt;/p&gt;

&lt;p&gt;The detector learns the disguise, and the disguise keeps changing. It’s just like with police figuring out a new way to transport illicit substances, then traffickers come up with something new and the wheel keeps spinning.&lt;/p&gt;

&lt;p&gt;This arms race creates an important asymmetry:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A result of “AI” can be a false accusation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A result of “Human” can be successfully disguised AI&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Neither side provides proof.&lt;/p&gt;

&lt;p&gt;Pangram CEO Max Spero told &lt;a href="https://www.theatlantic.com/technology/2026/05/pangram-ai-detection-accuracy/687381/" rel="noopener noreferrer"&gt;The Atlantic&lt;/a&gt; the detector should never be the final arbiter. The company setting limits on its own tool carries more weight than a critic attacking it from outside.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Read a Pangram Result
&lt;/h2&gt;

&lt;p&gt;A Pangram result is closer to weather radar than a fingerprint.&lt;/p&gt;

&lt;p&gt;Radar detects conditions associated with a storm. It can tell you when the signal is strong, where to look, and whether you should carry an umbrella. A fingerprint connects a person to an object through physical evidence, and Pangram has no such access to the writing process.&lt;/p&gt;

&lt;p&gt;I also don’t use Pangram as a moral scorecard. I write about technical subjects, and I use AI heavily to structure my thoughts and explain difficult concepts to less technical readers. My first question when I read something is much simpler: &lt;strong&gt;Did I get anything valuable from it?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If an article teaches me something new, gives me a useful idea, or makes a complicated subject easier to understand, I’m satisfied with the time I spent reading it; whether AI helped produce it comes second.&lt;/p&gt;

&lt;p&gt;I take the same approach to Duolingo, where I’m currently learning German. Duolingo has &lt;a href="https://investors.duolingo.com/node/10901/pdf" rel="noopener noreferrer"&gt;openly described using generative AI to create and validate course content&lt;/a&gt;. I also know that &lt;a href="https://blog.duolingo.com/ending-honoring-our-volunteer-contributor-program-2/" rel="noopener noreferrer"&gt;more than 1,000 volunteers helped create dozens of its original language courses&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have serious ethical problems with that history. I personally believe that Duolingo owes an enormous debt to the community that helped build it, and embracing automation does not erase that debt. But I cannot reverse the company’s decisions, and I still want to learn German, so I keep on using the app and embrace the technology for what it can do.&lt;/p&gt;

&lt;p&gt;That is roughly how I approach AI-assisted writing. I care about the quality of the thinking, the usefulness of the result, and whether the article rewards my attention. A detector score may tell me something about how the prose was produced, but it cannot decide whether the prose was worth reading.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx5xkncfzw80uwrop36j2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx5xkncfzw80uwrop36j2.png" alt="Four-step guide for interpreting Pangram results: check material type, read as resemblance, don't reconstruct process, ask what question to answer" width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
With that in mind, I use four rules when reading a Pangram result:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Check the material.&lt;/strong&gt; Is it long-form prose, or a short Note, poem, list, technical manual, reference section, or template? &lt;a href="https://www.pangram.com/research/model-card/pangram-3-2" rel="noopener noreferrer"&gt;Pangram’s own model card&lt;/a&gt; says the detector is intended for long-form writing in complete sentences and warns that lists, instructions, reference sections, templates, and dense equations are more susceptible to false positives.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Read the label as resemblance.&lt;/strong&gt; Pangram is a trained classifier. It studies patterns in human and AI writing and estimates which group a new passage most closely resembles. &lt;a href="https://www.pangram.com/research/how-it-works" rel="noopener noreferrer"&gt;Pangram describes the process&lt;/a&gt; as turning the text into a numerical representation and passing it through a classifier. It does not observe who typed the words or watch the document being created.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Do not mistake the score for a reconstruction of the writing process.&lt;/strong&gt; A high result does not tell me which ideas came from a model, how much work the writer contributed, or whether AI only helped with editing. A low result does not prove that no AI was involved. The detector sees the finished prose, not the conversation, research, prompting, or revision behind it. This is also why &lt;a href="https://allagentsconsidered.substack.com/p/why-my-best-agent-workflow-is-mostly-files" rel="noopener noreferrer"&gt;my best agent workflow is mostly files&lt;/a&gt;. Files preserve the trail between research, drafting, and editing, even when AI is part of the process.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ask what question I actually want answered.&lt;/strong&gt; If I want to know whether the prose resembles AI-generated writing, Pangram provides a useful signal. If I want to know whether the article is accurate, original, insightful, or worth reading, I have to judge those things myself. A strong idea does not become worthless because AI helped express it, just as a completely human-written article does not become valuable merely because a person typed every word.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I apply the same discipline when AI gives me a technical answer because &lt;a href="https://allagentsconsidered.substack.com/p/accepting-ais-first-answer-is-bad" rel="noopener noreferrer"&gt;accepting AI’s first answer without checking it&lt;/a&gt; replaces judgment with convenience. I do not reject an answer because a model produced it, and I do not trust it merely because it sounds polished. I ask whether it is accurate, useful, and worth my attention.&lt;/p&gt;

&lt;p&gt;A Pangram result can describe patterns in the writing, but it cannot tell me whether I learned something. That would be dystopian.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Verdict On Pangram
&lt;/h2&gt;

&lt;p&gt;Pangram is different from the crude detectors people remember.&lt;/p&gt;

&lt;p&gt;Its classifier learns from paired human and AI documents.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Its synthetic mirrors reduce topic shortcuts. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Its hard-negative mining feeds human false positives back into training. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Its calibration favors avoiding false accusations. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;EditLens attempts to model mixed editing rather than forcing every document into a human-or-machine box.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Independent researchers found that this approach performed extremely well on their tested medium and long passages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Those are facts.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pangram still sees only the finished text. It cannot observe the actual writing process.&lt;/p&gt;

&lt;p&gt;Its published research does not reveal every part of the production system, and its accuracy varies by domain. Short and formulaic formats remain particularly difficult.&lt;/p&gt;

&lt;p&gt;New model types and paraphrasing can also evade detection. Not to mention independent benchmarks do not always agree with Pangram’s own results.&lt;/p&gt;

&lt;p&gt;And even the percentage can be misleading. Readers may mistake it for a probability or a record of the writing process, but it is neither.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Those limitations are facts too.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The reasonable conclusion lies somewhere between “all detectors are useless” and “the algorithm knows the absolute truth”.&lt;/p&gt;

&lt;p&gt;Pangram has earned the right to be treated as evidence, but it hasn’t earned the right to be treated as a verdict.&lt;/p&gt;




</description>
      <category>pangram</category>
      <category>detectors</category>
      <category>substack</category>
      <category>authorship</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>cucoleadan</dc:creator>
      <pubDate>Wed, 22 Jul 2026 13:12:41 +0000</pubDate>
      <link>https://dev.to/cucoleadan/-1cdp</link>
      <guid>https://dev.to/cucoleadan/-1cdp</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/cucoleadan/how-i-built-a-substack-api-with-hermes-and-codex-43ho" class="crayons-story__hidden-navigation-link"&gt;How I Built A Substack API With Hermes And Codex&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/cucoleadan" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1392305%2Fb8e28d8c-8302-4fe8-86e5-d09186c09b75.png" alt="cucoleadan profile" class="crayons-avatar__image" width="460" height="460"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/cucoleadan" class="crayons-story__secondary fw-medium m:hidden"&gt;
              cucoleadan
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                cucoleadan
                
              
              &lt;div id="story-author-preview-content-4197566" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/cucoleadan" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1392305%2Fb8e28d8c-8302-4fe8-86e5-d09186c09b75.png" class="crayons-avatar__image" alt="" width="460" height="460"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;cucoleadan&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/cucoleadan/how-i-built-a-substack-api-with-hermes-and-codex-43ho" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 22&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/cucoleadan/how-i-built-a-substack-api-with-hermes-and-codex-43ho" id="article-link-4197566"&gt;
          How I Built A Substack API With Hermes And Codex
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/agents"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;agents&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/substack"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;substack&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/codex"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;codex&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/npm"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;npm&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/cucoleadan/how-i-built-a-substack-api-with-hermes-and-codex-43ho" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/cucoleadan/how-i-built-a-substack-api-with-hermes-and-codex-43ho#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            11 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>How I Built A Substack API With Hermes And Codex</title>
      <dc:creator>cucoleadan</dc:creator>
      <pubDate>Tue, 21 Jul 2026 12:53:31 +0000</pubDate>
      <link>https://dev.to/cucoleadan/how-i-built-a-substack-api-with-hermes-and-codex-43ho</link>
      <guid>https://dev.to/cucoleadan/how-i-built-a-substack-api-with-hermes-and-codex-43ho</guid>
      <description>&lt;p&gt;&lt;em&gt;This was originally published on &lt;a href="https://allagentsconsidered.substack.com/p/how-i-built-a-substack-api-with-hermes" rel="noopener noreferrer"&gt;All Agents Considered&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;By the middle of June, I had dozens of Substack Notes sitting in markdown files with dates and publishing times. I had rewritten the awkward ones, removed repeated ideas, and mixed the topics so two similar Notes wouldn’t appear one after another.&lt;/p&gt;

&lt;p&gt;But there was that one task I kept postponing in Asana: &lt;code&gt;Finish Notes Scheduled Setup&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Scheduling a single Note inside Substack takes about 30 seconds. Keeping several days’ worth of posts organized turns into admin work fast, especially when one edit changes the order and every publishing time after it.&lt;/p&gt;

&lt;p&gt;On June 12, I asked Hermes to find an old Substack tool installed somewhere in my Projects folder. Other software used it to talk to my Substack account, and I wanted to know whether it supported scheduled Notes. I expected a quick yes or no, followed by a small fix if I got lucky.&lt;/p&gt;

&lt;p&gt;Hermes found the forgotten package beside old test files and a database from my Notes analysis project. Publishing worked. Scheduling didn’t.&lt;/p&gt;

&lt;p&gt;One missing feature pulled me much further than expected. A few weeks later, I had published the &lt;a href="https://github.com/cucoleadan/unofficial-substack-sdk" rel="noopener noreferrer"&gt;Unofficial Substack SDK&lt;/a&gt;, a reusable Substack toolkit for other apps. Five versions shipped in three days, followed by 708 downloads during its first week.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fplwcrihwqobq1tx18ma0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fplwcrihwqobq1tx18ma0.png" alt="Illustration showing the Unofficial Substack SDK GitHub repository with download stats from its first week" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
I use two agents to run my workflows, and this project showed me why the split matters. One agent handling every stage carries its early assumptions all the way to the finish line.&lt;/p&gt;

&lt;p&gt;Hermes handled the messy beginning, pulling context from old conversations, forgotten files, licences, and competing projects. Codex stepped in once the work fit inside one project folder and I knew what a successful result looked like.&lt;/p&gt;

&lt;p&gt;In today’s edition, I’ll walk you through how I built the SDK and show why the handoff between Hermes and Codex mattered more than either agent working alone.&lt;/p&gt;
&lt;h2&gt;
  
  
  In this piece
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;How Hermes turned a half-remembered package into a real starting point&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Why Codex became more useful once the job got smaller&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How one wrong field name exposed the danger of plausible AI answers&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A handoff format for splitting your next build without losing context&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Package I Forgot
&lt;/h2&gt;

&lt;p&gt;I remembered using the old tool to collect Substack data, though I had forgotten its name, where it lived, and how much of it still worked. Hermes identified it as &lt;code&gt;substack-api&lt;/code&gt; and traced it back to an open-source project.&lt;/p&gt;

&lt;p&gt;Reading profiles, posts, comments, and Notes already worked. Publishing worked too. Scheduling notes support was missing.&lt;/p&gt;

&lt;p&gt;Hermes searched the project, looked through public clues left in Substack’s website, and checked similar tools. Instructions for publishing a Note were already known, while scheduling remained undocumented. Nobody had confirmed the label Substack expected for the publishing time.&lt;/p&gt;

&lt;p&gt;Hermes proposed &lt;code&gt;scheduled_at&lt;/code&gt;. Plenty of online services use a label like this, and it looked completely at home beside the existing instructions. Hermes still warned me about the missing proof and listed other names Substack might expect.&lt;/p&gt;

&lt;p&gt;I nearly ignored the warning because the feature looked finished. Doing so would’ve left me with a neat scheduling button sending a label Substack never promised to read.&lt;/p&gt;

&lt;p&gt;Version 0.2.2 uses &lt;code&gt;trigger_at&lt;/code&gt;. An automated check reads the exact instruction sent to Substack and fails if the label changes. Proof now lives outside the AI conversation.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Getting the first field wrong became the most useful part of the build because it forced me to separate finding an answer from earning trust in it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Hermes Found The Ground
&lt;/h2&gt;

&lt;p&gt;Starting from scratch would’ve been wasteful. Jakub Slys had already spent years learning how Substack’s private machinery worked, and his project carried working instructions plus a large set of checks.&lt;/p&gt;

&lt;p&gt;Hermes traced the installed tool back to &lt;a href="https://github.com/jakub-k-slys/substack-api" rel="noopener noreferrer"&gt;his GitHub project&lt;/a&gt;, checked the MIT licence, and kept the original credit. His research remains credited in the finished project.&lt;/p&gt;

&lt;p&gt;From there, Hermes compared the other available projects instead of treating the first one as the automatic winner. Some were ready-made services for apps and AI agents. Others only read public posts. I wanted a small building block speaking directly to Substack without sending a user’s login through somebody else’s server.&lt;/p&gt;

&lt;p&gt;An early experiment turned the inherited project into a small online service running on Cloudflare. Hermes removed parts tied to a traditional server and locked it to read-only access. All 230 automated checks passed before the project moved into my account.&lt;/p&gt;

&lt;p&gt;Substack blocked requests coming from Cloudflare, so the first version hit a dead end. I moved the SDK to my VPS and built a small server interface around it, giving my other apps a stable way to use it.&lt;/p&gt;

&lt;p&gt;Hermes handled this part well because the problem stretched beyond one project folder. Old conversations, forgotten files, licensing, and the safety of each user’s digital login key all affected the decision.&lt;/p&gt;

&lt;p&gt;A coding agent focused on one project sees the files in front of it. Hermes also saw why I had them, what I had tried before, and which surrounding work mattered.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd6i5yzm1u4jvdmg2dbue.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd6i5yzm1u4jvdmg2dbue.png" alt="Diagram comparing a wide-context agent and a focused coding agent with their respective strengths" width="800" height="343"&gt;&lt;/a&gt;&lt;br&gt;
I covered a similar choice in &lt;a href="https://allagentsconsidered.substack.com/p/when-to-use-mcps-clis-or-your-own" rel="noopener noreferrer"&gt;my guide to choosing AI tools&lt;/a&gt;. Tool choice starts before the interface. First decide whether the messy part is finding the work or doing it.&lt;/p&gt;
&lt;h2&gt;
  
  
  Codex Needed a More Targeted Job
&lt;/h2&gt;

&lt;p&gt;Once Hermes had found the right starting point and cleared up the wider questions, I moved the project into VS Code.&lt;/p&gt;

&lt;p&gt;I use Codex through the VS Code extension, and this is where it works best for me. I point it at a specific file, ask for one change, review the result, and keep moving without reopening the whole project discussion.&lt;/p&gt;

&lt;p&gt;I asked Codex to run the version Hermes had prepared beside my other services without rewriting anything. It downloaded the project, installed what it needed, passed the checks, and started the service.&lt;/p&gt;

&lt;p&gt;Then I opened my Files app and couldn’t see it.&lt;/p&gt;

&lt;p&gt;Codex had placed the project inside a private folder on the server, while my Files app only showed a different Projects folder. Every command had succeeded, yet the result still lived somewhere I didn’t use.&lt;/p&gt;

&lt;p&gt;I corrected the path, and Codex moved the project before restarting the service. One small mistake exposed a useful limit: a coding agent understands the project in front of it, while personal conventions still need to be stated clearly.&lt;/p&gt;

&lt;p&gt;Once everything ran from the right place, I asked Codex to launch Jakub’s newer project beside mine. His version already worked as a complete service for regular apps and AI agents. Mine did less, though its smaller size made it easier to reuse inside other products.&lt;/p&gt;

&lt;p&gt;Running both made the decision easier. Jakub’s project was the stronger ready-made service, while my smaller toolkit made more sense as a building block for the server I wanted to control.&lt;/p&gt;

&lt;p&gt;OpenAI had also given me banked resets, small refills for my Codex allowance whenever I reached the limit. Hermes burned through those resets much faster than Codex inside VS Code because it carried a wider working history into every session, including old conversations and surrounding files.&lt;/p&gt;

&lt;p&gt;Codex stayed focused on the active project and the exact edit in front of it. For small changes, this made the VS Code extension faster and cheaper to run.&lt;/p&gt;

&lt;p&gt;No model comparison or architecture discussion would’ve given me the same confidence. Hermes found and framed the right project, then Codex handled the precise edits without dragging the entire history behind it.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Server Had To Prove It
&lt;/h2&gt;

&lt;p&gt;Next came a small server for making the toolkit available to other apps through a web address. Codex downloaded it, ran its checks, started it locally, and confirmed it was healthy before I added my Substack login details.&lt;/p&gt;

&lt;p&gt;After setup, I asked for my latest Substack notification. A live video alert came back from my account. Five recent replies followed when I asked for my latest mentions.&lt;/p&gt;

&lt;p&gt;Documentation examples are easy to fake, so I had to know this would be working as expected. A response from my account proved the toolkit had completed the full trip to Substack and returned with real data.&lt;/p&gt;

&lt;p&gt;Live use also exposed a design problem. Loading one Substack login at startup meant every person using the service would’ve appeared as me. A multi-user app needed a private and secure way of storing each account's data and selecting the right login for every request.&lt;/p&gt;

&lt;p&gt;I am building an app for that and will soon have it ready. I’m thinking of calling it StackedHQ.&lt;/p&gt;




&lt;h2&gt;
  
  
  Let The Tests Argue
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;scheduled_at&lt;/code&gt; and &lt;code&gt;trigger_at&lt;/code&gt; both sound reasonable as labels for a publishing time. An AI has seen enough software to defend either one with enough detail to waste your afternoon and usage quota.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs7q8qyl8cpen2i53dbts.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs7q8qyl8cpen2i53dbts.png" alt="Illustration showing automated test results with trigger_at validation passing" width="800" height="343"&gt;&lt;/a&gt;&lt;br&gt;
Tests settle the argument by opening the instruction before it leaves the toolkit. One scheduling check expects &lt;code&gt;trigger_at&lt;/code&gt;. Another caught missing image information and led to a tiny correction.&lt;/p&gt;

&lt;p&gt;Version 0.2.2 passes 25 tests covering 52 expected behaviors. GitHub reruns them before every release, then publishes with one-time approval instead of storing a permanent publishing password.&lt;/p&gt;

&lt;p&gt;I don’t care which agent sounds more certain once a request has an observable answer. Real responses, changed files, and passing checks get the final vote.&lt;/p&gt;

&lt;p&gt;This is the part I missed inside one AI thread. Whoever researched the problem also wrote the code and explained why it looked correct. Moving the final decision into a check broke the loop.&lt;/p&gt;

&lt;p&gt;This habit follows the same direction as &lt;a href="https://allagentsconsidered.substack.com/p/the-agentic-engineering-shift" rel="noopener noreferrer"&gt;The Agentic Engineering Shift&lt;/a&gt;. More AI responsibility requires stronger proof outside the conversation.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Split I Use Now
&lt;/h2&gt;

&lt;p&gt;I didn’t sit down before this project and design a three-part method. Each phase kept failing for a different reason, and the split appeared from those failures.&lt;/p&gt;

&lt;p&gt;Hermes worked best while the starting point was messy. I use it when the request sounds like “find the package we used before,” “check what we decided last month,” or “compare this with the rest of my setup.” It searches across the wider project and brings back a prepared job.&lt;/p&gt;

&lt;p&gt;Codex worked best after the task fit inside one project folder. I use it once I know where the work lives, what needs to change, and what success looks like. “Improve the Substack tool” leaves too much room. “Run both versions and tell me which one fits an app used by AI agents” gives the work an edge.&lt;/p&gt;

&lt;p&gt;Tests take over wherever the answer belongs to the machine. A field name, an installable file, or a response from my real account shouldn’t end as a debate between two models.&lt;/p&gt;

&lt;p&gt;I think of those roles as scout, specialist, and referee.&lt;/p&gt;

&lt;p&gt;A scout finds the right ground. A specialist works inside a defined surface. A referee ignores confidence and checks what happened.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdwjwl444390bh0tpe02z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdwjwl444390bh0tpe02z.png" alt="Diagram mapping the three agent roles: scout, specialist, and referee" width="800" height="343"&gt;&lt;/a&gt;&lt;br&gt;
Choose the role before choosing the model. A stronger model won’t rescue a job whose boundaries are still mixed together.&lt;/p&gt;
&lt;h2&gt;
  
  
  Copy This Handoff
&lt;/h2&gt;

&lt;p&gt;My handoff between Hermes and Codex now fits inside one short file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Goal
[one result the project should produce]

Starting point
[where the work lives and what already works]

Known evidence
[useful files observations and previous attempts]

Limits
[what the AI must avoid]

Checks
[how we will prove the result works]

Stop and ask
[what needs my approval before continuing]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fik93859sl7twr1ltouth.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fik93859sl7twr1ltouth.png" alt="Screenshot showing the handoff document template with Goal, Starting point, Known evidence, Limits, Checks, and Stop and ask sections" width="800" height="343"&gt;&lt;/a&gt;&lt;br&gt;
Hermes fills the first version from the wider context. I remove weak assumptions, cut extra scope, and make the checks specific. Codex receives the file with the project and works until a check passes or it reaches something needing my approval.&lt;/p&gt;

&lt;p&gt;When a check fails, the next request gets smaller. I don’t reopen the whole project. I send the failed behavior back as one specific correction.&lt;/p&gt;

&lt;p&gt;This handoff works outside software too. Research produces a sourced brief, writing turns it into a draft, and a publication checklist checks the result. My article about &lt;a href="https://allagentsconsidered.substack.com/p/how-to-build-ai-workflows" rel="noopener noreferrer"&gt;file-based AI workflows&lt;/a&gt; covers the wider system.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Shipped
&lt;/h2&gt;

&lt;p&gt;Version 0.2.2 of the &lt;a href="https://www.npmjs.com/package/unofficial-substack-sdk" rel="noopener noreferrer"&gt;Unofficial Substack SDK&lt;/a&gt; gives other apps a reusable way to work with Substack. It reads profiles, posts, comments, engagement numbers, and subscriber data. It also publishes Notes, schedules them, edits drafts, and adds images.&lt;/p&gt;

&lt;p&gt;What feels crazy to me is that npm recorded 708 downloads from July 13 through July 19. Those are downloads rather than 708 individual people, and I won’t pretend otherwise. I still find the number encouraging for a new tool solving a problem I found in an old folder on my server.&lt;/p&gt;

&lt;p&gt;If you want to give this a test you must know that Substack might change its private API without warning. Tests make breakage easier to find, though they don’t turn an unofficial tool into a promise from Substack.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two Agents One Workflow
&lt;/h2&gt;

&lt;p&gt;This project started because I wanted Hermes to schedule my Substack Notes. It ended with an open-source SDK, a server running on my VPS, and a much clearer idea of where each agent belongs.&lt;/p&gt;

&lt;p&gt;Hermes earned its place at the messy beginning. It found the forgotten package, pulled in old conversations, compared the available projects, and followed the work when Cloudflare blocked the first version. Carrying all this context also made Hermes burn through my OpenAI-banked resets much faster.&lt;/p&gt;

&lt;p&gt;Codex worked better once the problem became smaller. In VS Code, it stayed close to the active files and handled precise edits without loading the full project history. This made it faster and cheaper for the small changes where a focused coding agent has the advantage.&lt;/p&gt;

&lt;p&gt;Independent checks sat between both agents and the finished package. Real account responses and passing tests overruled every confident answer before anything shipped.&lt;/p&gt;

&lt;p&gt;One setup detail matters if you want to try the SDK. I deliberately left the Substack cookie out of the npm package because it gives access to your account. Ask your agent to read the setup instructions and tell you what needs configuring, then add the value of your &lt;code&gt;substack.sid&lt;/code&gt; cookie yourself as a trusted server-side environment variable and pass it as &lt;code&gt;sessionToken&lt;/code&gt;. Never paste the cookie into your codebase or anywhere likely to save and share it.&lt;/p&gt;

&lt;p&gt;Substack blocked requests from Cloudflare during my build, which is why I added a server interface and ran it on my VPS. Your setup might behave differently, though your login cookie should always stay on a server you trust.&lt;/p&gt;

&lt;p&gt;Look at your last AI project sprawling across one long conversation. Give the messy discovery work to the agent with the widest view, hand the focused edits to the agent closest to the files, and let independent checks decide when the result is ready.&lt;/p&gt;

&lt;p&gt;For the wider tool decision, read &lt;a href="https://allagentsconsidered.substack.com/p/when-to-use-mcps-clis-or-your-own" rel="noopener noreferrer"&gt;When to Use MCPs CLIs or Your Own Tool&lt;/a&gt;. For the responsibility behind the work, read &lt;a href="https://allagentsconsidered.substack.com/p/the-agentic-engineering-shift" rel="noopener noreferrer"&gt;The Agentic Engineering Shift&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Use the agent with the widest view to find the path, use the focused agent to make the change, and trust neither until the work passes a check.&lt;/p&gt;




</description>
      <category>agents</category>
      <category>substack</category>
      <category>codex</category>
      <category>npm</category>
    </item>
    <item>
      <title>OpenAI Is Coming for Hermes One Codex Update at a Time</title>
      <dc:creator>cucoleadan</dc:creator>
      <pubDate>Tue, 14 Jul 2026 12:49:05 +0000</pubDate>
      <link>https://dev.to/cucoleadan/openai-is-coming-for-hermes-one-codex-update-at-a-time-51jc</link>
      <guid>https://dev.to/cucoleadan/openai-is-coming-for-hermes-one-codex-update-at-a-time-51jc</guid>
      <description>&lt;p&gt;&lt;em&gt;This was originally published on &lt;a href="https://allagentsconsidered.substack.com/p/openai-is-coming-for-hermes-one-codex" rel="noopener noreferrer"&gt;All Agents Considered&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Last week I caught myself spending more time inside Codex than using Hermes, and I couldn’t pinpoint when the shift happened. GPT-5.6 had just landed, and what used to be a coding tool inside my ChatGPT subscription had become something closer to a full agent workspace.&lt;/p&gt;

&lt;p&gt;What made it strange was that the same $20 bill could also feed a bunch of models into my Hermes agent. One subscription covering two competing stacks, with OpenAI shipping features every week that made one of them feel redundant. Browser control, remote access, plugins, banked resets, and looser usage limits all arrived over a single month, and every one of those used to be a separate purchase or, in some cases, an implementation I had to build myself.&lt;/p&gt;

&lt;p&gt;Now I still use Hermes every day, but I just started spending more of my week inside Codex because OpenAI keeps adding features that I use all the time.&lt;/p&gt;

&lt;p&gt;Today I’ll share why I believe Codex is catching up with Hermes and why I believe the $20 CHatGPT subscription is really a great deal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxktcj5jesf56m6aunj8l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxktcj5jesf56m6aunj8l.png" alt="Wide divider illustration separating the introduction from the article body" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;In this article:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The recent Codex releases that shifted how I compare the two&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How my ChatGPT subscription supplies Codex models inside Hermes through OAuth&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Which workflows moved to Codex and which ones I refuse to move&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A three-way test I run before building another agent workflow&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;







&lt;h2&gt;
  
  
  The July Sprint That Reshaped My Stack
&lt;/h2&gt;

&lt;p&gt;GPT-5.6’s July 9 release pushed this piece to the front of my queue. OpenAI added the GPT-5.6 family across ChatGPT, Codex, and its API, with three versions called Sol, Terra, and Luna. OpenAI positions Sol as the frontier model, Terra as the balanced option, and Luna as the efficient one (&lt;a href="https://openai.com/index/gpt-5-6/" rel="noopener noreferrer"&gt;OpenAI’s GPT-5.6 announcement&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Placement matters more than early benchmarks. GPT-5.6 arrived inside Codex alongside faster computer use. OpenAI improved the model and its interface for acting on a computer at the same time. That pairing matters to me more than another leaderboard. An agent becomes useful when its brain and working environment stop feeling like separate purchases.&lt;/p&gt;

&lt;p&gt;OpenAI expanded the desktop surface too. Its new ChatGPT desktop app puts Chat, Work, and Codex under one roof. Editing happens directly in Markdown and code, with inline annotations and selected-text revision. GitHub pull requests sit in the sidebar, related repositories share one project, and plugins are managed in Settings (&lt;a href="https://developers.openai.com/codex/changelog/" rel="noopener noreferrer"&gt;Codex changelog&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Those sound like small interface updates when you read them one at a time. Together, they remove handoffs. Review now stays inside the task. I can inspect the diff where the work happened and return feedback without moving changes through a separate editor. Codex can hold several related repos in one project instead of treating every codebase like a separate room.&lt;/p&gt;

&lt;p&gt;Browser work became more serious too. With explicit approval, Developer Mode gives Codex controlled access to Chrome’s developer tools, including the console, network activity, page structure, styles, and performance data (&lt;a href="https://developers.openai.com/codex/app/browser/#developer-mode" rel="noopener noreferrer"&gt;Codex browser documentation&lt;/a&gt;). That turns the browser from a page the agent can click into an environment it can inspect. For anyone building or testing a site, this removes another reason to wire up a separate browser setup for bounded work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Codex Reaching Beyond Desktop
&lt;/h2&gt;

&lt;p&gt;Codex also gained more reach. Codex Remote reached general availability on June 25. A task can start or continue from the ChatGPT mobile app while the work runs on a paired Mac or Windows computer. OpenAI also released a DigitalOcean Droplet Workspace plugin that provisions a remote machine, configures SSH, and connects it as a Codex workspace (&lt;a href="https://help.openai.com/en/articles/6825453-chatgpt-release-notes" rel="noopener noreferrer"&gt;ChatGPT release notes&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;That closes part of the gap I used to describe as simple. Hermes lived on my VPS and stayed available from Telegram. Codex lived on the computer in front of me. Remote access and remote workspaces make that boundary less clean.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0lxd1vv7jmdmlzl8e5rb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0lxd1vv7jmdmlzl8e5rb.png" alt="Wide divider illustration before the plugins and usage limits section" width="800" height="343"&gt;&lt;/a&gt;&lt;br&gt;
Plugins are moving the same direction. OpenAI replaced the old App Directory with a Plugin Directory, and its plugins can package skills, apps, and templates. Codex also improved plugin loading and made remote plugin catalogs easier to use. A workflow that once forced me to &lt;a href="https://allagentsconsidered.substack.com/p/when-to-use-mcps-clis-or-your-own" rel="noopener noreferrer"&gt;choose between an MCP, CLI, or custom tool&lt;/a&gt; can increasingly arrive as one installable bundle.&lt;/p&gt;

&lt;p&gt;Then OpenAI softened the usage wall. On June 11, eligible Plus and Pro users received reset banking, including one free launch reset. A separate referral promotion ran from June 11 through June 24 and awarded resets after invited users sent their first Codex message. Earned resets expire after 30 days, so I wouldn’t treat them as permanent monthly allowance (&lt;a href="https://developers.openai.com/codex/pricing/" rel="noopener noreferrer"&gt;Codex pricing&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;On July 12, Codex lead Tibo Sottiaux said OpenAI was temporarily removing the five-hour restriction for Plus, Business, and Pro users. Weekly limits remained, and OpenAI’s standing pricing page still documented the five-hour structure. His announcement also included a usage reset after Codex reached six million active users (&lt;a href="https://x.com/thsottiaux/status/2076365965915467978" rel="noopener noreferrer"&gt;Sottiaux’s announcement&lt;/a&gt;, &lt;a href="https://developers.openai.com/codex/pricing/" rel="noopener noreferrer"&gt;Codex pricing&lt;/a&gt;). Temporary is the word doing the work here. OpenAI can bring the restriction back or change the allowance again.&lt;/p&gt;

&lt;p&gt;Still, the immediate price calculation changed. My $20 subscription stretches further during heavy weeks, with banked resets and fewer interruptions while the temporary change lasts.&lt;/p&gt;

&lt;p&gt;This is bigger than GPT-5.6 or a reset button. OpenAI shipped the model and workspace upgrades alongside remote control and friendlier limits. That’s what turns Codex into an agent workspace rather than a coding interface. Work that previously started with choosing four services now starts with opening one app.&lt;/p&gt;

&lt;h2&gt;
  
  
  One Subscription Feeding Two Agents
&lt;/h2&gt;

&lt;p&gt;Hermes officially supports an OpenAI Codex provider authenticated through ChatGPT OAuth. I can run &lt;code&gt;hermes model&lt;/code&gt;, choose OpenAI Codex, complete the device-code login, and use the Codex models available through my ChatGPT subscription. Hermes can also import existing Codex CLI credentials when present (&lt;a href="https://hermes-agent.nousresearch.com/docs/integrations/providers" rel="noopener noreferrer"&gt;Hermes provider documentation&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;I don’t need a separate OpenAI API key for that route.&lt;/p&gt;

&lt;p&gt;It’s limited to Codex models exposed through the subscription rather than every model sold through the OpenAI API. That boundary still changes the economics. My ChatGPT subscription now pays for two different layers. It pays for the serviced Codex workspace, and it supplies one model route inside the Hermes runtime I control.&lt;/p&gt;

&lt;p&gt;Codex and Hermes are competing for my workflows while sharing part of the same model bill.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fowf2x1r5ypchm156ugzq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fowf2x1r5ypchm156ugzq.png" alt="Tall infographic showing one subscription feeding two competing agent workspaces" width="800" height="534"&gt;&lt;/a&gt;&lt;br&gt;
I also use GLM-5.2 inside Hermes, and this is one of the main reasons Hermes is staying online. My workflow remains in place while I change the model serving it. Hermes’s model catalog includes GLM-5.2 through supported provider routes, while its CLI lets me switch among models I’ve configured (&lt;a href="https://hermes-agent.nousresearch.com/docs/reference/cli-commands" rel="noopener noreferrer"&gt;Hermes CLI documentation&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;I’ve &lt;a href="https://allagentsconsidered.substack.com/p/why-ai-benchmarks-fail-agent-workflows" rel="noopener noreferrer"&gt;tested model choice inside a real Hermes workday&lt;/a&gt;, and the result kept pointing back to the same rule: the workflow should survive the model swap. GLM-5.2 uses a separate provider route, leaving the ChatGPT subscription as another option beside it.&lt;/p&gt;

&lt;p&gt;That distinction was missing from my earlier &lt;a href="https://allagentsconsidered.substack.com/p/the-30-hermes-stack-that-makes-claude" rel="noopener noreferrer"&gt;$30 Hermes stack breakdown&lt;/a&gt;. Hermes still has visible hosting and provider costs. Nous Portal now offers a more bundled route, so several separate API keys are optional. Maintenance time remains part of the bill either way.&lt;/p&gt;

&lt;p&gt;Codex hides more of those decisions inside a single price. I covered the wider plan economics in &lt;a href="https://allagentsconsidered.substack.com/p/i-tested-6-ai-plans-to-find-what" rel="noopener noreferrer"&gt;my comparison of six AI subscriptions&lt;/a&gt;, but the practical difference is simple. Codex supplies a serviced workshop. Hermes gives me the keys to one I own.&lt;/p&gt;

&lt;p&gt;Serviced workshops keep adding equipment. My own workshop lets me decide which engine runs it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Workflows Codex Took From Hermes
&lt;/h2&gt;

&lt;p&gt;Research moved first.&lt;/p&gt;

&lt;p&gt;My Hermes research setup used a custom search route and a saved-file workflow that sorted everything against my brand filter. I still use it for recurring research, but one-off article research is usually faster in Codex now.&lt;/p&gt;

&lt;p&gt;Codex researches against my local brief and writes the result back into the same Obsidian workspace. Research and writing live in one task, giving most bounded questions one search route.&lt;/p&gt;

&lt;p&gt;This article is a concrete example. Its outline, research brief, old posts, and brand files all live in my vault. Codex can research the release claims against those files and write the article into the correct folder without me carrying context between tools.&lt;/p&gt;

&lt;p&gt;Repository and browser work followed. Codex already had an advantage here because code is its home territory. Inline review and Browser Developer Mode widen that advantage. I can inspect a site and its console, edit the code, and review the diff in one working session.&lt;/p&gt;

&lt;p&gt;One-off files became obvious too. When I need an office file or visual asset once, building a permanent Hermes workflow around it makes little sense. Codex has the file tools and task context ready. I verify the output and leave without creating another piece of agent infrastructure. My biggest change is how rarely I prepare infrastructure before starting. Codex removes the provider and output-routing decisions for bounded work.&lt;/p&gt;

&lt;p&gt;Some work moved only halfway. Hermes still collects recurring research and saves the briefing on schedule. Codex often takes over when I turn one of those observations into a finished asset. That handoff keeps both systems useful without maintaining the same production setup twice.&lt;/p&gt;




&lt;p&gt;If someone you know is rebuilding an agent stack Codex now supplies out of the box, send them this article before they add another API.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://allagentsconsidered.substack.com/p/openai-is-coming-for-hermes-one-codex?utm_source=substack&amp;amp;utm_medium=email&amp;amp;utm_content=share&amp;amp;action=share" rel="noopener noreferrer"&gt;Share&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Workflows Hermes Still Defends
&lt;/h2&gt;

&lt;p&gt;My morning workflow stays.&lt;/p&gt;

&lt;p&gt;It runs before I sit down, applies my filters to the sources I chose, saves a briefing, and delivers it through the gateway I control. I documented the full version in &lt;a href="https://allagentsconsidered.substack.com/p/how-to-automate-your-morning-with" rel="noopener noreferrer"&gt;How My Hermes Agent Plans My Morning Before I Have My Coffee&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Codex now supports &lt;a href="https://developers.openai.com/codex/app/automations/" rel="noopener noreferrer"&gt;scheduled automations&lt;/a&gt; and remote work of its own. My reason for keeping this workflow in Hermes survives those additions because the complete runtime already lives on my VPS. Moving it would trade a working system I control for a product surface whose limits and behavior OpenAI controls.&lt;/p&gt;

&lt;p&gt;I keep that runtime dependable with &lt;a href="https://allagentsconsidered.substack.com/p/my-hermes-ai-agent-maintenance-routine" rel="noopener noreferrer"&gt;my Hermes maintenance routine&lt;/a&gt;, which checks the layers a bundled product manages for me.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fow1qriy4j6dbj7sryii5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fow1qriy4j6dbj7sryii5.png" alt="Wide divider illustration before the Telegram and persistent files section" width="800" height="343"&gt;&lt;/a&gt;&lt;br&gt;
Telegram stays too. Hermes remains available where I already communicate, even when my laptop is closed. It can call my own scripts and services, work with the files on my server, and keep the result in a location another workflow already knows how to find.&lt;/p&gt;

&lt;p&gt;Provider choice matters most here. I use GLM-5.2 in Hermes and can switch the same workflow to a Codex model through ChatGPT OAuth when I want to. If one provider changes its terms or performs poorly on a task, I’ve got another route. That freedom has a maintenance cost, but here it buys continuity instead of technical decoration.&lt;/p&gt;

&lt;p&gt;Persistent files finish the case. My workflows leave briefs and outputs in folders I own, with review notes beside them. Codex can work inside those folders, but Hermes is the runtime connecting them over time. One task hands a file to the next without depending on a single product account to remember the whole chain.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sorting Every Workflow Into Three Buckets
&lt;/h2&gt;

&lt;p&gt;I stopped choosing one agent for everything. I sort each workflow into one of three groups.&lt;/p&gt;

&lt;p&gt;Bounded, interactive work where I’m present to start it and approve the result goes to Codex. Research for one article, repository work, browser testing, a document, or a short analysis usually lands there.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6hn2nhq1vl2yseg0tlpp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6hn2nhq1vl2yseg0tlpp.png" alt="Tall infographic showing three workflow buckets with sorting criteria" width="800" height="534"&gt;&lt;/a&gt;&lt;br&gt;
Work that needs to run without me, start from a schedule or outside trigger, reach private services, persist across sessions, or survive a provider switch stays in Hermes. Morning research, Telegram access, and &lt;a href="https://allagentsconsidered.substack.com/p/how-to-build-ai-workflows" rel="noopener noreferrer"&gt;multi-step file workflows&lt;/a&gt; land here.&lt;/p&gt;

&lt;p&gt;Rare or unstable work stays manual for three runs. I automate it only after the inputs, judgment points, and output stop changing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Six Checks Before You Build
&lt;/h2&gt;

&lt;p&gt;I use six questions before deciding where a workflow belongs.&lt;/p&gt;

&lt;p&gt;Does the workflow need to run without me? Does it need a schedule or external trigger? Does it touch files or services I want under my control? Would losing one vendor break the workflow? Do I need to switch models or providers? Does the control repay the maintenance cost?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5vs5chp6c2bqw2n9vcoh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5vs5chp6c2bqw2n9vcoh.png" alt="Tall decision matrix chart mapping six checks to workflow destinations" width="800" height="1067"&gt;&lt;/a&gt;&lt;br&gt;
Results map to Codex for bounded work, Hermes when continuity or control shows up several times, and three manual runs when the pattern remains unclear.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two Workloads Through the Same Test
&lt;/h2&gt;

&lt;p&gt;My morning research passes five of the six ownership checks. It runs unattended on a schedule and feeds later workflows from my files, so provider switching changes the result. Hermes earns its place there.&lt;/p&gt;

&lt;p&gt;Researching a single article passes almost none. I’m present, the task is bounded, and the output goes into a draft I’ll review. Codex wins.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This test takes less time than configuring one API, and it has stopped me from maintaining the same capability twice.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Run Your Own Audit
&lt;/h2&gt;

&lt;p&gt;Write down three recurring AI tasks and mark each one C, H, or M. Pause one duplicated layer this week, then check whether the workflow still finishes cleanly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Expanding Overlap Open Source Needs to Answer
&lt;/h2&gt;

&lt;p&gt;When I say OpenAI is coming for Hermes, I’m describing an expanding product overlap rather than alleging that OpenAI copied a specific feature or set out to kill an open-source agent.&lt;/p&gt;

&lt;p&gt;Codex is swallowing the layer of self-run agent work where convenience was the main payoff. Every new piece OpenAI bundles into the working environment makes the ownership case work harder.&lt;/p&gt;

&lt;p&gt;Open source needs to protect a result I’d lose inside the rented product, because more switches alone no longer win. For me, those results are provider choice, persistent files, and an always-on runtime I control.&lt;/p&gt;

&lt;p&gt;Codex carries the opposite risk. OpenAI controls the product and its limits. July’s friendlier terms prove both sides of that bargain because the company can remove friction or restore it quickly.&lt;/p&gt;

&lt;p&gt;I wrote the longer version of that risk in &lt;a href="https://allagentsconsidered.substack.com/p/i-built-my-ai-stack-to-survive-vendor" rel="noopener noreferrer"&gt;my vendor-lock-in article&lt;/a&gt;. Codex’s current sprint has made me more selective about where independence pays while leaving the underlying risk intact.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Codex is shrinking the part of my stack worth maintaining. Hermes protects the workflows I refuse to rent.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ownership has to earn its maintenance now.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the Line Sits Today
&lt;/h2&gt;

&lt;p&gt;Codex handles bounded research, article production, repository work, browser inspection, and one-off files. These jobs start with me, end with a reviewed output, and benefit from the serviced bundle.&lt;/p&gt;

&lt;p&gt;Hermes handles scheduled research, Telegram, persistent file chains, private services, and workflows where I want GLM-5.2, a Codex model, or another provider without rebuilding the system.&lt;/p&gt;

&lt;p&gt;Manual covers everything else until it survives three real runs.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Which workflow has a subscription recently pulled out of your self-run stack?&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;Codex is the serviced workshop, and OpenAI keeps delivering new equipment. Hermes is the workshop I own, where I control the keys, files, and engines.&lt;/p&gt;

&lt;p&gt;I build fewer tools myself and reserve ownership for the workflows where it protects the result. But that line keeps moving one Codex update at a time.&lt;/p&gt;




</description>
      <category>codex</category>
      <category>hermes</category>
      <category>workflow</category>
      <category>ownership</category>
    </item>
    <item>
      <title>The Twenty Minute Audit That Found Where Hermes Was Getting Lost</title>
      <dc:creator>cucoleadan</dc:creator>
      <pubDate>Tue, 07 Jul 2026 13:27:09 +0000</pubDate>
      <link>https://dev.to/cucoleadan/the-twenty-minute-audit-that-found-where-hermes-was-getting-lost-55dp</link>
      <guid>https://dev.to/cucoleadan/the-twenty-minute-audit-that-found-where-hermes-was-getting-lost-55dp</guid>
      <description>&lt;p&gt;&lt;em&gt;This was originally published on &lt;a href="https://allagentsconsidered.substack.com/p/the-twenty-minute-audit-that-found" rel="noopener noreferrer"&gt;All Agents Considered&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;I just got back from two weeks on the Croatian coast. While scrolling in a café in Rovinj, a Forbes headline caught my attention and I had to read the whole thing. &lt;a href="https://www.forbes.com/sites/jemmagreen/2026/07/02/ai-costs-more-than-the-people-it-replaced/" rel="noopener noreferrer"&gt;AI costs more than the people it was supposed to replace&lt;/a&gt;. The technology that was promised to make labor cheaper is, at this moment, more expensive than the humans it was meant to displace.&lt;/p&gt;

&lt;p&gt;That made me realize something. A few months earlier, I spent three weeks swapping models, adding MCPs, and building automation layers because Hermes kept getting confused. I kept chasing smarter models and better integrations when the problem was my workspace the whole time. None of it worked until I stopped adding tools and started looking at the files underneath them.&lt;/p&gt;

&lt;p&gt;I wrote about the fix in a &lt;a href="https://allagentsconsidered.substack.com/p/why-my-best-agent-workflow-is-mostly-files" rel="noopener noreferrer"&gt;previous piece&lt;/a&gt;, and that article showed what a clean workspace looks like &lt;em&gt;after&lt;/em&gt; reorganization, but people kept asking me the same question: how do you know which folder is broken before you start fixing things?&lt;/p&gt;

&lt;p&gt;Today I cover the five-point audit I use, a prompt that runs it through Hermes itself, and how to pick the one fix that matters most without rebuilding your entire setup.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;In this piece:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Why adding tools before auditing your workspace makes the same problem worse, because every new tool inherits the same confusion&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A five-point audit that finds exactly where Hermes gets lost in your files and takes twenty minutes to run&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A copy-paste prompt that audits any folder through Hermes itself and tells you where the confusion lives&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How to pick the one fix that matters most without reorganizing your entire setup or over-structuring folders that work fine&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwpvou32buozj3s3q67kr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwpvou32buozj3s3q67kr.png" alt="Wide divider illustration separating the introduction from the main body" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  When Tools Inherit the Mess
&lt;/h2&gt;

&lt;p&gt;The hardest thing about working with Hermes, or any other AI harness for that matter, is accepting that it has no memory of what I already know.&lt;/p&gt;

&lt;p&gt;When I open a folder, my brain automatically filters everything. I remember which draft I was working on yesterday, I can tell the difference between notes from this month and notes from six months ago, and I know exactly which file I need because I remember writing it.&lt;/p&gt;

&lt;p&gt;Hermes doesn’t get any of that context. It looks at my workspace the same way a stranger would, reading only what’s visible right now and making assumptions based on file names, folder names, dates, and whatever instructions I happened to give it.&lt;/p&gt;

&lt;p&gt;That gap between what I know and what Hermes can see is where everything breaks down.&lt;/p&gt;

&lt;p&gt;If current and archived files look identical from their names alone, Hermes treats them as equally valid options and sometimes picks the wrong one without realizing it. If there’s no clear starting point in a folder, Hermes has to search through everything before it understands what it’s looking at. And if draft work lives in the same space as public actions, Hermes has no way to know when it should stop and ask for permission.&lt;/p&gt;

&lt;p&gt;This is why my &lt;a href="https://allagentsconsidered.substack.com/p/my-hermes-ai-agent-maintenance-routine" rel="noopener noreferrer"&gt;Hermes maintenance routine&lt;/a&gt; only works when the workspace underneath it is clean.&lt;/p&gt;

&lt;p&gt;That routine checks models, memory, cron jobs, and gateway health, but every single one of those checks depends on reading from files. When the files are a mess, the routine produces noise instead of signal.&lt;/p&gt;

&lt;p&gt;Workflow handoffs and &lt;a href="https://allagentsconsidered.substack.com/p/how-to-add-approval-gates-to-your" rel="noopener noreferrer"&gt;approval gates&lt;/a&gt; fail the same way because they all assume Hermes knows where to read, where to write, and when to ask before acting. Those assumptions collapse the moment the folder structure doesn’t make those answers obvious.&lt;/p&gt;

&lt;p&gt;I learned this by watching the same failure repeat every time I tried to fix it with a new tool.&lt;/p&gt;

&lt;p&gt;A smarter model reading the wrong file still produces the wrong answer. A new MCP fetching data into a folder with no structure still loses the output somewhere. Switching providers doesn’t change where Hermes writes things down.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The one variable that determines whether Hermes succeeds or searches in circles is the one I kept ignoring, because it wasn’t as exciting as upgrading to a better model or connecting a new integration.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1ugn967nnd4o8hjp4ijz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1ugn967nnd4o8hjp4ijz.png" alt="Wide divider illustration before the five-point workspace audit section" width="800" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The 20-Minute Audit
&lt;/h2&gt;

&lt;p&gt;My audit runs five checks on one folder Hermes touches often. Pick that folder and open it like Hermes would, with fresh eyes and no memory of what’s inside.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hermes Workspace Audit

1. Active work
There is one obvious place for current work.
Pass if Hermes knows where current drafts, notes, or tasks live.
Fail if current and old material share the same folder.

2. Archive boundary
Old files have a separate archive folder.
Pass if archived material is clearly historical.
Fail if old files look current from the filename alone.

3. Entry point
The folder has an obvious starting file when it has multiple subfolders.
Pass if the first file tells Hermes where to start.
Fail if Hermes has to search before it understands the folder.

4. Handoff path
Each repeated workflow has an input and output location.
Pass if Hermes knows where to read and where to write.
Fail if every run invents a new output location.

5. Risk boundary
External, paid, destructive, or public actions have a review step.
Pass if Hermes knows when to stop.
Fail if the same instruction lets it draft and publish.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Walk through each check on one folder. Don’t audit the whole vault, don’t reorganize anything yet. Find the one folder where Hermes wastes the most time and understand why.&lt;/p&gt;

&lt;p&gt;This prompt runs the same audit through Hermes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Audit this folder as if Hermes had to work inside it.

Folder path or description:
[PASTE FOLDER PATH OR DESCRIBE THE FOLDER]

Main task Hermes should do here:
[DESCRIBE TASK]

Check the folder across these categories:

1. Active work
Does the current source of truth stand out.

2. Archived work
Does old material look separate from current material.

3. Starting point
Is there an obvious first file, root map, or README.

4. Handoffs
Are input and output locations clear.

5. Risk boundary
Are public, paid, destructive, or external actions separated from draft work.

Return:
- what would confuse Hermes
- the first file it should read
- the first file or folder I should rename, move, or index
- whether this folder needs a root map, and a recommendation on creating an INDEX.md for it
- one warning about over-organizing this folder
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run it on the folder you audited by hand and compare the results. If Hermes finds problems you missed, your instinct about the folder was incomplete. If you find problems Hermes missed, your prompt needs more context about the task. You can build this as an agent or skill file, or keep it in your docs and point Hermes to the folder when you’re running the audit.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqjk9po2tr42ltiz5akrx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqjk9po2tr42ltiz5akrx.png" alt="Wide divider illustration before the real-folder audit walkthrough" width="800" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Walking Through an Audit
&lt;/h2&gt;

&lt;p&gt;Let me show you what this looks like with a real folder so you can see where to pay attention and how to interpret what you find.&lt;/p&gt;

&lt;p&gt;I’ll use the research workflow I rebuilt in my &lt;a href="https://allagentsconsidered.substack.com/p/how-to-build-ai-workflows" rel="noopener noreferrer"&gt;previous piece&lt;/a&gt; because it’s a concrete example of what happens when you get the structure right from the start. The folder is called &lt;code&gt;01.Research Sorter&lt;/code&gt; and it holds the entire workflow that turns raw research links into scored article angles.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;01.Research Sorter/
├── 01.instructions.md
├── 02.input.md
├── 03.output.md
└── 04.review.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Four files, numbered for reading order, each with one job. Let me walk through how each audit check applies to this folder.&lt;/p&gt;

&lt;p&gt;{image 5: diagram-036-folder-pass.png — Infographic: folder structure passing all five audit checks}&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check 1: Can Hermes find the current work?&lt;/strong&gt; Pass. The numbered prefixes tell Hermes exactly where to start. &lt;code&gt;01.instructions.md&lt;/code&gt; is the entry point, &lt;code&gt;02.input.md&lt;/code&gt; is where I paste my research links, &lt;code&gt;03.output.md&lt;/code&gt; is where Hermes writes the scored results, and &lt;code&gt;04.review.md&lt;/code&gt; is the checklist I run through after. There’s no ambiguity about which file matters for which step. Hermes reads the instructions first, then moves to the input, then writes to the output. The sequence is explicit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check 2: Archive boundary.&lt;/strong&gt; Pass. This folder only holds the current workflow. Old research runs get archived to a separate &lt;code&gt;Archive&lt;/code&gt; folder once I’ve picked an article angle from them. The active folder stays clean because completed runs don’t pile up inside it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check 3: Entry point.&lt;/strong&gt; Pass. &lt;code&gt;01.instructions.md&lt;/code&gt; is the obvious starting file. When Hermes opens this folder, it reads the instructions first and knows exactly what the workflow does, what the brand filter is, and how to score each item. No searching required.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check 4: Handoff paths.&lt;/strong&gt; This is where the audit caught a real problem in my earlier version. Before the rebuild, my research workflow would write output to different locations depending on what I’d told Hermes that day. Sometimes it went to &lt;code&gt;01.Articles/Drafts&lt;/code&gt;, sometimes to the root folder, sometimes to a folder I’d created on the fly. Every time Hermes had to find the output from the last run, it had to search again. The numbered file structure fixes this as &lt;code&gt;03.output.md&lt;/code&gt; is always in the same place. The next workflow step knows exactly where to look.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check 5: Risk boundaries.&lt;/strong&gt; Pass. This folder only produces draft observations and article angles. Nothing in it triggers a publish action or sends anything public. The actual writing and publishing happens in a separate workflow folder with its own risk boundaries. That separation means Hermes can run this research workflow freely without accidentally pushing something live.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Once I walked through these five checks, I could see why this workflow runs reliably while others didn’t. The structure answers every question Hermes might have before it asks.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The key thing I learned from auditing this folder is that you’re not looking for problems in isolation. You’re looking for the one problem that creates the most confusion for Hermes. In folders that fail the audit, the archive boundary is usually the biggest issue because it affects every single task.&lt;/p&gt;

&lt;p&gt;That prioritization is what makes the audit useful. You’re not trying to fix everything at once. You’re trying to find the one thing that, if fixed, would make the biggest difference across most tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pick One Fix
&lt;/h2&gt;

&lt;p&gt;Find the single issue from the audit that creates the most Hermes confusion. One fix, not five.&lt;/p&gt;

&lt;p&gt;If current and archived files live together, fix the archive boundary first. Move old files to a separate archive folder. This one change solves more Hermes confusion than any other because it stops the most common failure: picking the wrong version of a file.&lt;/p&gt;

&lt;p&gt;If outputs are unclear, define where Hermes should write before changing any tool. Create one output folder and point Hermes at it every time. Consistency matters more than location.&lt;/p&gt;

&lt;p&gt;If there’s no starting point, build the INDEX.md pattern from my piece on &lt;a href="https://allagentsconsidered.substack.com/p/why-my-best-agent-workflow-is-mostly-files" rel="noopener noreferrer"&gt;file-first agent workflows&lt;/a&gt;. Read that piece, build one INDEX.md for the folder that failed the audit, and run the same task again. If Hermes finds the right file in under thirty seconds, the fix worked.&lt;/p&gt;

&lt;p&gt;What you shouldn’t do is fix everything at once. Most of your folder names are fine, and the audit tells you which ones confuse Hermes. I wrote about the over-organizing trap in my previous piece on &lt;a href="https://allagentsconsidered.substack.com/p/why-my-best-agent-workflow-is-mostly-files" rel="noopener noreferrer"&gt;file-first agent workflows&lt;/a&gt;, where adding INDEX.md to every subfolder made Hermes slower. The short version: add only enough structure to fix the specific problem the audit found.&lt;/p&gt;

&lt;p&gt;Also, don’t use memory to paper over bad file structure. Memory tells Hermes things across sessions, but it doesn’t help Hermes find the right file inside the current one. If the folder is confusing, fix the folder. And don’t add another MCP before Hermes knows where the work lives. I wrote about the &lt;a href="https://allagentsconsidered.substack.com/p/when-to-use-mcps-clis-or-your-own" rel="noopener noreferrer"&gt;MCP versus CLI versus custom tool&lt;/a&gt; decision in a previous piece. &lt;strong&gt;If Hermes can’t find files in a clean local workspace, no external tool integration will compensate.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once the workspace is clear, the tool choice gets easier. A clear local workspace often points to CLI or file tools first. Shared external systems point to MCP. Repeated narrow steps point to a custom wrapper or skill. Most of the time, the audit reveals that I don’t need a new tool. I need a better folder. Even when I’m &lt;a href="https://allagentsconsidered.substack.com/p/openclaw-or-claude-cowork-heres-how" rel="noopener noreferrer"&gt;running multiple agent frameworks&lt;/a&gt; through the same Hermes brain, the workspace structure is what makes it work. Different agents, same files, same folder map.&lt;/p&gt;




&lt;p&gt;If the broader stack is what you’re after, whether that’s provider routing, memory ownership, or scheduled workflows, I &lt;a href="https://allagentsconsidered.substack.com/p/the-30-hermes-stack-that-makes-claude" rel="noopener noreferrer"&gt;wrote the full cost breakdown of the stack&lt;/a&gt; and the &lt;a href="https://allagentsconsidered.substack.com/p/how-to-automate-your-morning-with" rel="noopener noreferrer"&gt;morning workflow that runs on it&lt;/a&gt;. Both of those depend on the same workspace audit pattern to stay reliable across sessions.&lt;/p&gt;

&lt;p&gt;Everything I’ve written about in this newsletter traces back to one instinct. Own the layer that matters. I built my stack so no company controls my tools. I built my workflows so no noise controls my output.&lt;/p&gt;

&lt;p&gt;Capability is cheap when the foundation is broken. Audit one folder. Fix one thing. Then decide whether you need another tool.&lt;/p&gt;




</description>
      <category>audit</category>
      <category>workspace</category>
      <category>hermes</category>
      <category>structure</category>
    </item>
    <item>
      <title>Tear Down Your AI Workflow and Rebuild It Like This</title>
      <dc:creator>cucoleadan</dc:creator>
      <pubDate>Tue, 30 Jun 2026 13:40:51 +0000</pubDate>
      <link>https://dev.to/cucoleadan/tear-down-your-ai-workflow-and-rebuild-it-like-this-2on8</link>
      <guid>https://dev.to/cucoleadan/tear-down-your-ai-workflow-and-rebuild-it-like-this-2on8</guid>
      <description>&lt;p&gt;&lt;em&gt;This was originally published on &lt;a href="https://allagentsconsidered.substack.com/p/tear-down-your-ai-workflow-and-rebuild" rel="noopener noreferrer"&gt;All Agents Considered&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Futurism ran a story &lt;a href="https://futurism.com/artificial-intelligence/employees-ai-tokens-pointless-tasks-finance" rel="noopener noreferrer"&gt;last week about employees burning their company’s expensive AI tokens on pointless tasks&lt;/a&gt;. Amazon staffers were using their mandated AI agent to run personal tasks to hit usage quotas. A single employee at one company spent over $150,000 a month on AI tokens.&lt;/p&gt;

&lt;p&gt;Moreover, Uber capped each employee’s AI spending at $1,500 a month after engineers blew through the company’s entire 2026 AI budget.&lt;/p&gt;

&lt;p&gt;I did the same thing on a smaller scale, and it cost me three full days before I admitted it. Last week I wrote about &lt;a href="https://allagentsconsidered.substack.com/p/why-my-best-hermes-workflow-consists" rel="noopener noreferrer"&gt;reorganizing my files so my agent could find them in thirty seconds&lt;/a&gt;, and that gave me the ground to rebuild on. If I were starting over today, the first thing I would do before connecting anything is this one test I skipped.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6fxuna4nq9o3d9k3sqwa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6fxuna4nq9o3d9k3sqwa.png" alt="Diagram showing an AI workflow teardown and rebuild process" width="800" height="417"&gt;&lt;/a&gt;&lt;br&gt;
In this edition I’m going to show you that test, the workflow I use now because of it, and how you can run it on your own setup right now.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;In this piece:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A five-minute test that tells you whether a source belongs in your workflow before you waste a day configuring it&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The exclusions list that cost me three days to learn but saves me 40 minutes every morning since&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A four-file workflow pattern that turned 80% noise into 10 usable article angles per run&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  The Three Days I Lost to Configuration
&lt;/h2&gt;

&lt;p&gt;When I found Hermes, the first impulse was to connect everything I could think of. arXiv for academic papers, Reddit through the Arctic Shift API for community discussion, RSS feeds for blogs I read, and a cron job to run the whole thing every morning so I would wake up to a fresh batch of research.&lt;/p&gt;

&lt;p&gt;Each connection required its own setup, and each setup required its own research.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fepcc6rz4wkkjqqac4nku.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fepcc6rz4wkkjqqac4nku.png" alt="Wide divider illustration separating the introduction from the main body" width="800" height="220"&gt;&lt;/a&gt;&lt;br&gt;
Arctic Shift needed an endpoint, subreddit filters, and time-range parameters. I had to find the API, read its documentation, figure out the filtering, and test it. That alone ate a full day. arXiv needed category filters for computer science papers, rate limiting so I wouldn’t get blocked, and a custom parser for its XML feed. Another day gone. Then I had to build the Hermes skill that would call both APIs, parse the results, deduplicate across sources, and route everything through my brand filter, which checks whether each item helps someone move beyond ChatGPT toward open source, local, and agentic systems they control. Its skill file alone was 180 lines of configuration listing six sources, a daily cron schedule, and the output format for observations and article angles.&lt;/p&gt;

&lt;p&gt;By the time I finished, six sources were wired together and firing on a daily schedule. Less than 20% of the output was relevant to anything I would write about for All Agents Considered. arXiv served academic papers I would never translate for readers, while the subreddits I scraped served social chatter that would never pass my brand filter.&lt;/p&gt;

&lt;p&gt;I filtered the noise for a few days thinking I could tighten it, but the bigger loss was time spent on API setup and skill management for sources I never held next to my filter before wiring them in. Building felt productive. Connecting APIs felt productive. Making things run on a schedule felt productive. But none of it produced a single article angle because those sources were never going to fit the work I do.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Every item must support the AAC mission: help AI users become more independent by building open source, local, and agentic systems they control.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I had that filter written down in the skill file. I never held it next to arXiv and Reddit before wiring them in. Instead I built on a wrong foundation for three days and ran the output for another week before I admitted it.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Test I Should’ve Run First
&lt;/h2&gt;

&lt;p&gt;Open your brand filter or audience description. If you don’t have one, write three sentences about who you serve and what they need. That’s your filter.&lt;/p&gt;

&lt;p&gt;Open each source you’re planning to connect. Spend 60 seconds scrolling through what it produces today. Hold that output next to your filter.&lt;/p&gt;

&lt;p&gt;arXiv today publishes papers on transformer architecture, reinforcement learning benchmarks, and multimodal reasoning. None of those help a non-coder move beyond ChatGPT. Reddit’s r/LocalLLaMA discusses quantization formats, model benchmarks, and hardware setups. Some crosses into AAC territory, but most assumes a technical reader who already knows what GGUF means. My audience doesn’t.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fscejjp2jmu4qlnx9qjnd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fscejjp2jmu4qlnx9qjnd.png" alt="Comparison chart showing source output against a brand filter" width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
Most source mismatches are obvious when you see them side by side. People skip the test because connecting an API feels like real work and reading a webpage feels like nothing, so we gravitate toward what looks productive.&lt;/p&gt;

&lt;p&gt;If you’re about to wire a source into your AI workflow, run this test right now. Open the source, open your filter, look at both. If the match is weak, put the source on an exclusions list and move on. You saved yourself a day of configuration.&lt;/p&gt;
&lt;h2&gt;
  
  
  Where the Output Proved Me Wrong
&lt;/h2&gt;

&lt;p&gt;20 to 30 items every morning from 6 sources, and I was spending 40 minutes sorting through them. My brand filter was supposed to do the sorting, but the agent was applying it loosely because the input was too varied. Academic abstracts, Reddit threads, blog posts, and RSS headlines all needed different interpretation, and the instructions weren’t specific enough.&lt;/p&gt;

&lt;p&gt;I tightened the filter and added scoring from one to five:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6px9cuhjrmp6edn28mmw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6px9cuhjrmp6edn28mmw.png" alt="Scoring rubric diagram illustrating the one-to-five brand filter system" width="800" height="534"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Scoring rubric&lt;/span&gt;
+1 if technical people are discussing it
+1 if it helps people move beyond ChatGPT
+1 if it relates to independence, control, cost, memory,
   files, agents, local AI, or open source
+1 if a non-coder needs translation
+1 if it points to a practical setup, workflow, article,
   course module, or useful build

Drop anything scoring below 3.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each rule caught real noise, but each rule was also more configuration on a foundation already wrong.&lt;/p&gt;

&lt;p&gt;A daily cron meant the workflow ran every morning whether I needed it or not. Some mornings I hadn’t scanned new sources since the last run, so the output was thin. Other mornings I had a weekend backlog the single daily run couldn’t handle. Every three days to a week would’ve been right, but daily felt productive.&lt;/p&gt;

&lt;p&gt;When I subtracted the setup days from the value the workflow produced, the complicated version was worse than no workflow at all. I’d spent more time configuring sources I should never have connected than I would’ve spent doing the task manually for a month. Once I understood that math, I tore the whole thing down.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Exclusions List That Replaced It
&lt;/h2&gt;

&lt;p&gt;Before I rebuilt anything, I wrote down every source that didn’t serve my work:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Hard exclusions - sources I don't track as daily inputs&lt;/span&gt;
&lt;span class="p"&gt;
-&lt;/span&gt; arXiv
&lt;span class="p"&gt;-&lt;/span&gt; Semantic Scholar
&lt;span class="p"&gt;-&lt;/span&gt; Papers with Code
&lt;span class="p"&gt;-&lt;/span&gt; Hugging Face Daily Papers
&lt;span class="p"&gt;-&lt;/span&gt; Hugging Face trending models
&lt;span class="p"&gt;-&lt;/span&gt; Ollama as a standalone source
&lt;span class="p"&gt;-&lt;/span&gt; Reddit
&lt;span class="p"&gt;-&lt;/span&gt; X
&lt;span class="p"&gt;-&lt;/span&gt; LinkedIn
&lt;span class="p"&gt;-&lt;/span&gt; YouTube
&lt;span class="p"&gt;-&lt;/span&gt; Discord
&lt;span class="p"&gt;-&lt;/span&gt; Product Hunt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every source on that list is fine for other audiences. arXiv is essential for researchers. Reddit is gold for technical practitioners. YouTube is where most people learn about AI today. None of them produce output that helps a non-coder AAC reader move beyond ChatGPT toward systems they control.&lt;/p&gt;

&lt;p&gt;Exclusions are where time savings compound. Every source you don’t connect is a day of configuration you don’t spend, an API you don’t debug, and a category of noise you don’t filter every morning. Short list, massive savings.&lt;/p&gt;

&lt;p&gt;I wrote about the &lt;a href="https://allagentsconsidered.substack.com/p/how-to-build-ai-workflows" rel="noopener noreferrer"&gt;shift from optimizing prompts to building workflows&lt;/a&gt; earlier this month, and the exclusions list is the bridge between those two ideas. You can’t build a workflow until you know what doesn’t belong in it.&lt;/p&gt;

&lt;p&gt;What stayed was small by comparison. Hacker News for technical discussion that non-coders need translated. Lobsters for deeper practitioner conversations. A handful of blogs I’ve read for years and trust to stay in my lane. RSS feeds from three newsletters that cover the intersection of AI and personal productivity. That’s the input list, and it fits on a single screen.&lt;/p&gt;

&lt;p&gt;Before the rebuild, I was sorting through 20 to 30 items every morning from 6 sources, spending 40 minutes filtering noise. With this list, I paste a handful of links, run the agent, and get 10 usable angles back in the time it takes to make coffee.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Workflow That Replaced Three Days of Configuration
&lt;/h2&gt;

&lt;p&gt;My rebuild started by asking what the workflow needs to do. Sort raw research notes from sources I trust, score each against the brand filter, keep what passes, turn the best into article angles, and save the result to review with my coffee.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7icmqdl6c8rfwko10pg3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7icmqdl6c8rfwko10pg3.png" alt="Folder structure diagram with four numbered files for the research sorter workflow" width="800" height="534"&gt;&lt;/a&gt;&lt;br&gt;
Structure uses the same numbered-folder pattern from my &lt;a href="https://allagentsconsidered.substack.com/p/why-my-best-hermes-workflow-consists" rel="noopener noreferrer"&gt;file structure piece&lt;/a&gt;, applied to a single workflow instead of a whole vault. Four files in one folder for one task I repeat every few days, with no external APIs, no cron, no routing, and no memory layers. Everything the agent needs to do its job lives in those four files, and nothing else creeps in.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;01.Research Sorter/
├── 01.instructions.md
├── 02.input.md
├── 03.output.md
└── 04.review.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instructions tell the agent what the workflow is and what it should do, in plain English:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# AAC Research Sorter&lt;/span&gt;

This workflow takes raw research notes and turns them into
AAC article observations and seeds.

Read 02.input.md. For each item, apply the brand filter:
&lt;span class="p"&gt;-&lt;/span&gt; Does this help someone move beyond ChatGPT?
&lt;span class="p"&gt;-&lt;/span&gt; Does it point to a practical setup or decision?
&lt;span class="p"&gt;-&lt;/span&gt; Does a non-coder need it translated?

Score each item from 1 to 5. Keep items scoring 3 or higher.
For each kept item, write one observation with a signal,
a plain-English translation, and an article angle.

Write the sorted list to 03.output.md.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Input holds the raw material. Links, titles, one-line observations I jot down while scanning sources I already trust. Everything I dump goes in this file, and the instructions file tells the agent how to sort it. Output receives the result: a dated note with top observations, article angles for each, the best three ideas to write next, and any course or build connections. Review tells me what to check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Review Checklist&lt;/span&gt;
&lt;span class="p"&gt;
-&lt;/span&gt; Read the best-three list
&lt;span class="p"&gt;-&lt;/span&gt; Pick one idea to pursue this week
&lt;span class="p"&gt;-&lt;/span&gt; Flag any observation where the article angle feels generic
&lt;span class="p"&gt;-&lt;/span&gt; Check whether any item scored too high because the
  brand filter was applied loosely
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Numbers give the agent its reading order, one concern per file keeps boundaries clear, and every file has one job. When the agent opens the folder, it doesn’t have to guess what to read first or what each file is for.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three Manual Runs Before You Automate Anything
&lt;/h2&gt;

&lt;p&gt;Before I added anything back, I ran the workflow three times manually. Three mornings of pasting links, running the agent, and checking what it produced. First run had a scoring error because my brand filter instruction was too vague about what counts as practical. Second run turned a pure news item into an observation because the instructions didn’t explicitly exclude vendor PR. Third run was clean.&lt;/p&gt;

&lt;p&gt;If I’d added the cron schedule after the first run, I would’ve automated a workflow still broken in ways I hadn’t seen. Running manually three times is what taught me what the workflow does well and where it breaks. One run teaches you nothing because you haven’t seen the variance.&lt;/p&gt;

&lt;p&gt;This is where most people go wrong. They build something, it works once, and they schedule it to run forever. Second run catches edge cases the first one missed. Third run proves the pattern holds. Skipping any of those steps means you’re automating a system you haven’t validated, and automation amplifies problems as reliably as it amplifies good output.&lt;/p&gt;

&lt;p&gt;You can build this as an agent or skill file, or keep them in your docs as they are and point Hermes to the folder when you’re running the workflow.&lt;/p&gt;

&lt;p&gt;Its full version now fetches from nine sources I’ve validated against my brand filter, scores 166 items in a single run, and produces ten article observations with course connections. It runs every few days, not every morning, because that’s the cadence the task needs. &lt;a href="https://allagentsconsidered.substack.com/p/how-to-automate-your-morning-with" rel="noopener noreferrer"&gt;I wrote about how this fits into my morning routine&lt;/a&gt;, and the &lt;a href="https://allagentsconsidered.substack.com/p/my-hermes-ai-agent-maintenance-routine" rel="noopener noreferrer"&gt;Hermes maintenance routine&lt;/a&gt; I run keeps it from drifting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Run This Today
&lt;/h2&gt;

&lt;p&gt;Open your AI workflow. Look at every source it connects to, every API it calls, every feed it reads. For each one, hold the source next to your filter. If the match is weak, disconnect it. Put it on your exclusions list. You freed up the configuration time and morning filtering time that source was costing you every single day.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fycmu0bcj0ybrna1ifpxu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fycmu0bcj0ybrna1ifpxu.png" alt="Final workflow diagram showing the complete morning research routine" width="800" height="439"&gt;&lt;/a&gt;&lt;br&gt;
If you don’t have a brand filter yet, write three sentences about who you serve and what they need. Sources that survive the test are your real input list. Build around those, run it by hand three times, and think about scheduling only after the third run is clean.&lt;/p&gt;

&lt;p&gt;Whole process takes an afternoon and replaces weeks of configuration sprawl. Every layer you add after that, whether it’s a cron schedule or a new source, gets added only when the previous one works.&lt;/p&gt;




&lt;p&gt;If the broader stack is what you’re after, whether that’s provider routing, memory ownership, or how to build an agent that doesn’t drift between sessions, I &lt;a href="https://allagentsconsidered.substack.com/p/the-30-hermes-stack-that-makes-claude" rel="noopener noreferrer"&gt;wrote the full cost breakdown of the Hermes stack&lt;/a&gt; and the &lt;a href="https://allagentsconsidered.substack.com/p/how-to-automate-your-morning-with" rel="noopener noreferrer"&gt;morning workflow that runs on it&lt;/a&gt;. Both of those depend on the same small-file-loop pattern to stay reliable.&lt;/p&gt;

&lt;p&gt;Capability is cheap when the wiring around it is broken. Build the filter first, run it by hand three times, and the capability takes care of itself. One brand statement and a four-file loop is the difference between an AI workflow that wastes your mornings and one that gives you back two hours a week.&lt;/p&gt;

</description>
      <category>workflows</category>
      <category>filter</category>
      <category>exclusions</category>
      <category>automation</category>
    </item>
    <item>
      <title>Why My Best Hermes Workflow Consists Of Plain MD Files</title>
      <dc:creator>cucoleadan</dc:creator>
      <pubDate>Tue, 23 Jun 2026 13:47:58 +0000</pubDate>
      <link>https://dev.to/cucoleadan/why-my-best-hermes-workflow-consists-of-plain-md-files-1cmn</link>
      <guid>https://dev.to/cucoleadan/why-my-best-hermes-workflow-consists-of-plain-md-files-1cmn</guid>
      <description>&lt;p&gt;&lt;em&gt;This was originally published on &lt;a href="https://allagentsconsidered.substack.com/p/why-my-best-hermes-workflow-consists" rel="noopener noreferrer"&gt;All Agents Considered&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Last week I read about an AI that designed a vaccine fighting coronaviruses we haven't even encountered yet (&lt;a href="https://www.sciencedaily.com/releases/2026/06/260605023357.htm" rel="noopener noreferrer"&gt;ScienceDaily&lt;/a&gt;). Cambridge ran the first human trial, and 39 volunteers received the antigen.&lt;/p&gt;

&lt;p&gt;It's crazy to think that an algorithm analyzed the entire genetic family of a virus and engineered protection against members still circulating in animals and waiting to jump. But when I ask it to fetch my latest brief from a list of docs, it can spend nearly two minutes opening the wrong files in my vault just to show me a brief from three months ago.&lt;/p&gt;

&lt;p&gt;And I know Cambridge uses a custom trained AI, but what I want to show you is that the gap between what AI can do and what a setup lets it do is what makes or breaks your workflow and productivity.&lt;/p&gt;

&lt;p&gt;I never built scaffolding on purpose, until recently. It piled up around the agent by accident, folder by folder, until the agent lost its way inside a mess I shaped for myself.&lt;/p&gt;

&lt;p&gt;So I spent a day timing every failure, and a pattern showed up. In this edition I show you why your agent keeps tripping over the easy stuff while the world calls it a genius, and the fix that puts it back on your side.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;If you’re still watching your agent search through folders for the right file, this is the fix. Subscribe and I’ll send you one practical workflow every Tuesday.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;In this piece:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Folder structure failed my agent because my folders were organized for how I think, not for how an agent navigates&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;One index file at the root of every major folder turned slow searches into thirty-second reads&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The invisible scaffolding around your agent matters more than the agent’s own capability, and here’s how to build it&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A diagnostic test you can run in five minutes to see whether your folder structure is the real problem&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Structure Your Agent Can’t See
&lt;/h2&gt;

&lt;p&gt;I organized my vault the way most people do. Articles, research, assets, strategy docs, each got their own folder. That structure felt clean because I think in content types. Folders map to my categories and I never think about where to look. Drafts are articles, notes are research, the filing system runs on autopilot.&lt;/p&gt;

&lt;p&gt;But an agent doesn’t think in categories. When I ask Hermes to plan a product launch, the task pulls from strategy notes, brand guidelines, and previous launches scattered across different folders.&lt;/p&gt;

&lt;p&gt;Those pieces of context live in different places in my content-type structure. My agent has to search everywhere every time, without knowing which draft is current versus which one is archived, or which research note is from this month versus from six months ago.&lt;/p&gt;

&lt;p&gt;Content-type organization works perfectly for humans. You’ve spent your whole life filing things under categories, and your brain does the cross-referencing automatically. It’s only natural to expect AI to work the same, when in fact an agent has to do that cross-referencing manually, and that’s where the structure breaks down.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The structure around your agent does more work than the agent’s own capability.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once I saw the pattern, the cause was obvious: I had built my vault for a human brain that remembers where things live, then handed it to an agent that has to search from scratch every time, and that exposed the real issue underneath the folder mess.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsviburpk30bwvfqna9c4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsviburpk30bwvfqna9c4.png" alt="Illustration of an agent searching through a disorganized folder structure in the dark, opening wrong files before finding the right one" width="800" height="220"&gt;&lt;/a&gt;&lt;br&gt;
A searcher needs a map, because without one the agent is walking through the dark and treating every file like it might be the answer.&lt;/p&gt;
&lt;h2&gt;
  
  
  What Capability Wastes On
&lt;/h2&gt;

&lt;p&gt;Hermes kept opening a bunch of files before landing on the right one, or grabbing an archived version when the current file was somewhere else. Worse, it would ask which file to use when the answer should have been obvious from context. This happened with every model I used, including Opus, GPT 5.5, Qwen, and GLM.&lt;/p&gt;

&lt;p&gt;The pattern kept repeating, and I was stuck watching the same slow searches play out across task after task.&lt;/p&gt;

&lt;p&gt;Even though my agent was capable enough to find things, the folder structure had become the main bottleneck before it ever reached the actual work.&lt;/p&gt;

&lt;p&gt;I hit the breaking point the day I timed the failures. I tracked how many files Hermes opened before it reached the right one, and how long it took to get there. Five common tasks looked like this before I changed anything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before I changed anything:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Find the current article brief: 7 files opened, &lt;strong&gt;2:00 to the correct file;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Find brand color definitions: 5 files opened, it took &lt;strong&gt;1:12;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Look up the article queue for planning: 4 files opened, it took &lt;strong&gt;0:48;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Find previous articles on the same topic: 6 files opened, it took &lt;strong&gt;1:36;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pull promotion strategy for a launch: 3 files opened, irt took &lt;strong&gt;0:34.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fckaohzr9t6y1qrgmsx0t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fckaohzr9t6y1qrgmsx0t.png" alt="Bar chart comparing how many files the agent opened and how long each task took before the folder reorganization" width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Rough experiment, so treat the exact numbers as directional.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Every task crossed multiple folders. Most of them opened archived versions before finding the active ones. My agent was burning capability on navigation instead of doing its job. One launch plan needed three files that lived in three different folders, and I watched it make three wrong attempts before landing on the right ones.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;An agent that writes articles, codes, and plans shouldn’t be spending most of its time looking for things.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  The Smallest Cage That Works
&lt;/h2&gt;

&lt;p&gt;One folder per concern, numbered for order, with an INDEX.md at the root that maps everything. That’s the whole fix, and the details live in three rules that work together.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr1qeclfwi31xl161ybf9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr1qeclfwi31xl161ybf9.png" alt="Diagram showing the three rules of the folder structure fix: one concern per folder, numbered for order, and an INDEX.md at the root" width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
INDEX.md at the root of each major folder is a map. It lists every subfolder and canonical file, plus where my agent should start. My agent reads this first and knows what’s inside before touching anything else. Think of it as a soft &lt;a href="https://allagentsconsidered.substack.com/p/how-to-add-approval-gates-for-your" rel="noopener noreferrer"&gt;approval gate&lt;/a&gt; where the agent isn’t allowed to start work until it knows what it’s working with.&lt;/p&gt;

&lt;p&gt;My brand folder structure looks like this after the reorganization.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;05.Brand/
├── INDEX.md
├── 01.Brand System/
├── 02.Editorial Strategy/
├── 03.Promotion/
├── 04.Public Deliverables/
├── 05.Operating Plan/
└── 06.Archived/

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This structure organizes by concern instead of content type. Each concern gets its own folder, so brand work stays with brand work and strategy stays with strategy. My agent doesn’t cross boundaries looking for something that doesn’t belong there.&lt;/p&gt;

&lt;p&gt;Numbers on folders make reading order explicit instead of relying on alphabetical sorting. 01.Brand System gets read before 02.Editorial Strategy. My agent doesn’t guess. Numbers inside folders do the same thing for files, so my agent knows 01.AAC Articles is the starting point before 02.Previous Articles.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I lead folder names with a number because it’s easier for me to remember as well.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is how my full &lt;a href="https://allagentsconsidered.substack.com/p/the-30-hermes-stack-that-makes-claude" rel="noopener noreferrer"&gt;$30 Hermes stack&lt;/a&gt; stays easy to move across dozens of folders without my agent ever getting lost.&lt;/p&gt;

&lt;p&gt;Archived stuff lives in 06.Archived, where old briefs and retired plans go to wait. My agent knows not to look there unless I specifically ask for historical context. That separation is what keeps the active folders clean and the searches fast.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Once my agent was told not to cross that boundary by default, every task inside the active folders ran faster.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My INDEX.md looks like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# AAC Brand Index&lt;/span&gt;

This folder holds the current All Agents Considered brand system.

&lt;span class="gu"&gt;## Folder Map&lt;/span&gt;

| Folder | Purpose | Updated |
|---|---|---:|
| &lt;span class="sb"&gt;`01.Brand System/`&lt;/span&gt; | Visual identity, topic scope, voice | 2026-06-11 |
| &lt;span class="sb"&gt;`02.Editorial Strategy/`&lt;/span&gt; | Article direction, title rules, queue | 2026-06-11 |
| &lt;span class="sb"&gt;`03.Promotion/`&lt;/span&gt; | Launch, distribution, tool strategy | 2026-06-11 |

&lt;span class="gu"&gt;## Canonical Files&lt;/span&gt;

| File | Purpose |
|---|---|
| &lt;span class="sb"&gt;`01.Brand System/01.AAC Brand System.md`&lt;/span&gt; | Visual identity, colors, typography |
| &lt;span class="sb"&gt;`02.Editorial Strategy/01.AAC Articles.md`&lt;/span&gt; | Article queue, title rules |

&lt;span class="gu"&gt;## Where To Go&lt;/span&gt;
&lt;span class="p"&gt;
-&lt;/span&gt; Start with &lt;span class="sb"&gt;`01.Brand System/04.AAC Direction.md`&lt;/span&gt; for mission
&lt;span class="p"&gt;-&lt;/span&gt; Use &lt;span class="sb"&gt;`02.Editorial Strategy/01.AAC Articles.md`&lt;/span&gt; for article selection

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fehanzlqa5ynesn5a1w21.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fehanzlqa5ynesn5a1w21.png" alt="Screenshot of an INDEX.md file showing the folder map, canonical files table, and a " width="800" height="1067"&gt;&lt;/a&gt;&lt;br&gt;
INDEX.md went through three versions. My first version listed every single file inside the brand folder and ran to forty lines. It was technically complete but my agent had to parse it every time and the length was its own overhead. My second version was too short, around fifteen lines, and my agent still asked questions I hadn’t answered. This third version lists only subfolders and canonical files, with a short “Where To Go” section that tells my agent its starting points.&lt;/p&gt;

&lt;p&gt;When I ask my agent to pull promotion strategy for a launch, it reads 05.Brand/INDEX.md, opens 03.Promotion/01.AAC Promotion Strategy.md, and gets to work. Timing after the reorganization looks like this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After the reorganization:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Find the current article brief: &lt;strong&gt;1 file opened, 0:10&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Find brand color definitions: &lt;strong&gt;3 files opened, 0:22&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Look up the article queue for planning: &lt;strong&gt;1 file opened, 0:10&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Find previous articles on the same topic: &lt;strong&gt;2 files opened, 0:18&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pull promotion strategy for a launch: &lt;strong&gt;1 file opened, 0:12&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The slowest task dropped from 2 minutes to 26 seconds, and the fastest runs landed around 10 seconds. My agent opens the INDEX.md, follows the starting point it needs, and gets to work without wandering. No capability changed on my agent’s side. Folder structure stopped wasting most of it before the task even started.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Folder structure is a cage I built that constrains how my agent moves without constraining what my agent can do. Inside the cage, my agent runs freely. Without it, Hermes tends to wander off and I have to waste my time pointing it at the right file.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://allagentsconsidered.substack.com/p/hermes-is-the-ai-agent-openclaw-promised" rel="noopener noreferrer"&gt;Moving to Hermes&lt;/a&gt; let me build that kind of system across files, providers, and &lt;a href="https://allagentsconsidered.substack.com/p/forgetting-to-forget-how-infinite" rel="noopener noreferrer"&gt;memory&lt;/a&gt; all at once, and the INDEX.md pattern is the smallest piece that made the biggest difference day-to-day.&lt;/p&gt;

&lt;h2&gt;
  
  
  Every Cage Has a Lock
&lt;/h2&gt;

&lt;p&gt;My first mistake was adding INDEX.md to every subfolder. Too many maps means my agent spends its time reading indexes instead of doing work. I keep INDEX.md only at the root of major folders like Brand and Editorial Strategy, where there are enough subfolders to need a map. Inside a small subfolder with four or five files, Hermes navigates directly without any map at all.&lt;/p&gt;

&lt;p&gt;Keep in mind that numbering gets tedious when you add new folders. I’ve got to decide where a new folder fits in the sequence, and sometimes I append it at the end instead of renumbering everything. That’s fine. Numbers don’t have to be perfect as long as they’re directional. Perfectly ordered folders aren’t the goal, and treating them as one turns a practical fix into a cosmetic project.&lt;/p&gt;

&lt;p&gt;A bigger mistake is building structure before your agent shows any confusion. Most people over-engineer their agent setup because they think it needs proper infrastructure.&lt;/p&gt;

&lt;p&gt;My current rule follows the same principle behind &lt;a href="https://allagentsconsidered.substack.com/p/when-to-use-mcps-clis-or-your-own" rel="noopener noreferrer"&gt;choosing MCPs versus CLIs versus your own tool&lt;/a&gt;. It uses the smallest interface that gets the job done. Add structure only when your agent gets lost, and add only enough structure to fix that specific problem.&lt;/p&gt;

&lt;p&gt;Another failure I ran into was nesting structure inside structure. I added subfolders inside subfolders to make everything perfectly categorized, which turned a two-level hierarchy into a five-level one. My agent then had to read multiple INDEX files and parse multiple numbering sequences to reach a single file. I collapsed those extra levels back into flat subfolders and navigation sped up again.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Depth is the enemy of fast file lookup, and most reorganizations add depth thinking it’s precision.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Measure Before You Reorganize
&lt;/h2&gt;

&lt;p&gt;Before touching a single folder, run this test on three real tasks your agent handles most often. Time each one, and note how many files it opens before finding the right one. Track how often it picks the wrong file or stops to ask you which one to use.&lt;/p&gt;

&lt;p&gt;Any task that takes your agent more than thirty seconds or opens three or more wrong files points to a folder behind that task that’s broken.&lt;/p&gt;

&lt;p&gt;Pick the one failure that happens most often. Open that folder and write an INDEX.md that lists every subfolder and important file, plus where your agent should start. Save it. Run the same task again.&lt;/p&gt;

&lt;p&gt;If your agent finds the right file in under thirty seconds, the fix worked and you now know the pattern. Apply it to the next broken folder. If it still fails, the problem is likely numbering or one-concern-per-folder, and those are the next two things to fix.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Start with the one folder that wastes the most time, fix it, and move to the next only when you’re ready.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Where the Bars Still Bends
&lt;/h2&gt;

&lt;p&gt;Archived content still gets referenced sometimes when I need an old brief for context. My agent has to know to look in 06.Archived instead of the active folders, and I mention this in the INDEX.md so it knows where historical material lives. Without that note my agent assumes archived content doesn’t exist.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl06h83tl79jhenha5id5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl06h83tl79jhenha5id5.png" alt="Diagram showing where the folder structure still bends: archived content references, sync conflicts across devices, and numbering limits at scale" width="800" height="268"&gt;&lt;/a&gt;&lt;br&gt;
Also, Obsidian Sync creates occasional problems when it does not catch up cleanly across devices. If I update a file on my laptop but the older version is still sitting on my VPS, Hermes loads the VPS copy and treats it like the current source of truth. That is a sync problem more than a folder-structure problem, but it shows up inside the folder system because the agent only sees the files in front of it.&lt;/p&gt;

&lt;p&gt;Numbering breaks down when you’ve got so many folders that the sequence becomes meaningless. Past ten or twelve numbered items at one level, the numbers start being arbitrary.&lt;/p&gt;

&lt;p&gt;I try to keep major categories below that threshold and nest deeper structure inside instead of expanding the top level.&lt;/p&gt;

&lt;p&gt;Renaming is another source of friction. When I reorganize I sometimes rename folders to better match their purpose, and any INDEX.md reference to the old name breaks until I update it. I now try to set folder names once and leave them alone, because a slightly awkward name is cheaper than a broken reference.&lt;/p&gt;

&lt;p&gt;This structure works best for content-heavy workflows and planning-heavy ones. Pure code or data-heavy setups might need different organization principles entirely, and the INDEX.md pattern doesn’t solve every navigation problem.&lt;/p&gt;




&lt;p&gt;Which folder in your setup would your agent get lost in right now? Tell me in the comments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://allagentsconsidered.substack.com/p/why-my-best-hermes-workflow-consists/comments" rel="noopener noreferrer"&gt;Leave a comment&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Everything I described here is the short version, the field notes. Full folder templates, the INDEX.md patterns for different workflow types, and how this fits into the broader agent setup go into the first Hermes 101 course. I’m working on it right now and it should be ready soon. If you want the step-by-step version of what I’m describing in field-notes form here, that course is where it will live.&lt;/p&gt;

&lt;p&gt;If the broader setup is what you’re after, whether that’s provider routing, memory ownership, or scheduled workflows, I &lt;a href="https://allagentsconsidered.substack.com/p/the-30-hermes-stack-that-makes-claude" rel="noopener noreferrer"&gt;wrote the full cost breakdown of the stack&lt;/a&gt; and the &lt;a href="https://allagentsconsidered.substack.com/p/how-to-automate-your-morning-with" rel="noopener noreferrer"&gt;morning workflow that runs on it&lt;/a&gt;. Both of those depend on the same INDEX.md pattern to stay reliable across sessions.&lt;/p&gt;

&lt;p&gt;Everything I’ve written about in this newsletter traces back to one instinct. Own the layer that matters. I built my stack so no company controls my tools. I built my vault so no mess controls my agent. Same principle from providers to folders to whatever comes next.&lt;/p&gt;

&lt;p&gt;Capability is cheap when the scaffolding around it is broken. Build the scaffolding, and the capability takes care of itself. One index file and a few numbers in front of your folder names is the difference between an agent that wanders and an agent that works.&lt;/p&gt;

</description>
      <category>folders</category>
      <category>structure</category>
      <category>index</category>
      <category>hermes</category>
    </item>
    <item>
      <title>I Built My AI Stack to Survive Vendor Lock-in and Google Just Proved Me Right</title>
      <dc:creator>cucoleadan</dc:creator>
      <pubDate>Wed, 17 Jun 2026 07:57:25 +0000</pubDate>
      <link>https://dev.to/cucoleadan/i-built-my-ai-stack-to-survive-vendor-lock-in-and-google-just-proved-me-right-51jo</link>
      <guid>https://dev.to/cucoleadan/i-built-my-ai-stack-to-survive-vendor-lock-in-and-google-just-proved-me-right-51jo</guid>
      <description>&lt;p&gt;&lt;em&gt;This was originally published on &lt;a href="https://allagentsconsidered.substack.com/p/i-built-my-ai-stack-to-survive-vendor" rel="noopener noreferrer"&gt;All Agents Considered&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Tomorrow, Google will switch off a free tool a lot of people built their daily work around. Most readers here have never touched it, so the shutdown itself won't ruin your week. What sits underneath the shutdown is the part worth your attention. It keeps happening, and one day it might land on a tool you do depend on.&lt;/p&gt;

&lt;p&gt;Gemini CLI is a small terminal tool Google released to run AI agents straight from your computer. Think of it as Google's answer to Claude Code or Codex, a way to point an agent at your files and let it work.&lt;/p&gt;

&lt;p&gt;What made it interesting was that it shipped open source, which means anyone was free to read the code, copy it, fix it, or build something better on top of it. Open source is the closest thing software has to a promise that a tool stays yours even if the company behind it loses interest.&lt;/p&gt;

&lt;p&gt;Google made that promise, and now Google is walking away from it.&lt;/p&gt;

&lt;p&gt;Last month, Google announced that on June 18 2026, the tool will stop working with Google's AI subscription plans. In its place comes something called Antigravity CLI, which is closed-source.&lt;/p&gt;

&lt;p&gt;Six days earlier, the US government forced Anthropic to shut down Fable 5, a model people had barely started using before it disappeared.&lt;/p&gt;

&lt;p&gt;Two different shutdowns, same lesson. The tool you built your work around can change or disappear, and you won't get a vote.&lt;/p&gt;

&lt;p&gt;That's why I built my AI stack so I can always swap models without rebuilding anything. When one company shuts the door, another one is already wired up and ready to go. In today's edition, I am going to show you exactly how to break free of vendor lock-in.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;In this piece:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why three different AI vendors made three different moves in one month, and how every move pointed at the same trap&lt;/li&gt;
&lt;li&gt;How to spot the parts of your own AI setup that secretly hold your context, your memory, and your routines hostage&lt;/li&gt;
&lt;li&gt;The three decisions I built mine around so any single vendor change turns into a shrug instead of a crisis&lt;/li&gt;
&lt;li&gt;One move you finish in twenty minutes today that proves the whole principle to yourself&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A Pattern Everyone Recognizes and Nobody Names
&lt;/h2&gt;

&lt;p&gt;Here's how it goes, almost every time. A company hands out something free, often open source, and people build real work around it because free and open feels safe. Word spreads. More people lean on it.&lt;/p&gt;

&lt;p&gt;Then a quiet thing happens inside the company. Someone notices the free tool now does roughly what the paid product does, and the two start eating each other. Around that point the terms change, or the license shifts, or the whole tool gets retired and replaced by a sealed version.&lt;/p&gt;

&lt;p&gt;Goodwill came from the open thing. Money comes from the closed thing. When those two collide, money wins every single time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft9r3rlh6i1fgn39g8ya9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft9r3rlh6i1fgn39g8ya9.png" alt="Vendor dependency cycle showing the pattern: free open tool, mass adoption, terms change, shutdown" width="799" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gemini CLI walked this exact road. It carried an Apache 2.0 license, which in plain terms meant stays open forever, free for anyone to keep using even if Google lost interest.&lt;/p&gt;

&lt;p&gt;Last month's announcement erased that. A permanently open tool moved behind a paywall and into closed source. A community of people who trusted the open license now have less than 48 hours to migrate or go dark.&lt;/p&gt;

&lt;p&gt;Anthropic ran a version of the same play a week before Google's announcement. They quietly walked back &lt;a href="https://www.wired.com/story/anthropic-responds-to-backlash-on-claudes-secret-sabotage-on-ai-research/" rel="noopener noreferrer"&gt;hidden safeguards inside Claude&lt;/a&gt; after a public backlash.&lt;/p&gt;

&lt;p&gt;People leaning on Claude for serious research found out their tool had been working against them in the background. It shifted its behavior while they changed nothing about how they used it.&lt;/p&gt;

&lt;p&gt;Then the US government forced Anthropic to shut down Fable 5 entirely. People who had just started building on it lost access overnight, and the company had no choice but to comply.&lt;/p&gt;

&lt;p&gt;Two different moves from the same company in the same week. One changed the tool's behavior in secret. The other made it disappear completely.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpr6cihpguq6tcbbyrxtw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpr6cihpguq6tcbbyrxtw.png" alt="Three vendor events timeline: Google Gemini CLI shutdown, Anthropic Fable 5 shutdown, OpenAI price cuts" width="800" height="1067"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Same week, OpenAI &lt;a href="https://www.cnbc.com/2026/06/11/openai-mulls-slashing-prices-ahead-of-competition-from-anthropic-wsj.html" rel="noopener noreferrer"&gt;floated price cuts&lt;/a&gt; aimed squarely at Anthropic. Your monthly AI bill now rides on a boardroom argument you'll never sit in and never hear about.&lt;/p&gt;

&lt;p&gt;Three companies, three different moves, one shared lesson. Lean your whole setup on a single vendor's tool or model, and you take on their shutdown dates, their hidden behavior changes, their price wars, and every private decision about which features live and which ones disappear overnight.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Dependency Looks Like
&lt;/h2&gt;

&lt;p&gt;Most people never feel dependent until the morning something breaks. You sit down with coffee, open Claude, and a prompt it handled fine yesterday gets refused today for no reason you understand.&lt;/p&gt;

&lt;p&gt;In that moment you learn your entire research routine was balancing on one model staying agreeable. Or you open ChatGPT to pick up a three-month project and your conversation history is gone, wiped during a policy change you never read.&lt;/p&gt;

&lt;p&gt;A tool you built your whole day around changed its mind. Your only role in the decision was finding out afterward.&lt;/p&gt;

&lt;p&gt;Dependency runs deeper than the model itself. It reaches into everything the model has been touching on your behalf.&lt;/p&gt;

&lt;p&gt;Your project context lives inside a chat window that vanishes the second you close the tab. Your task history sits trapped behind an interface with no real export. Your routines and saved instructions live in one company's private format.&lt;/p&gt;

&lt;p&gt;Moving to a competitor later means rebuilding the whole thing by hand from memory. Nobody handed you a contract to sign. You used a tool that felt good in the moment.&lt;/p&gt;

&lt;p&gt;The context you kept adding to it became the most valuable thing in the room, right up until the day it walked out the door wearing the tool's logo.&lt;/p&gt;

&lt;p&gt;This was my normal life before I built around it. I would spend an hour walking Claude through a project, finally get answers worth keeping, close the laptop, come back the next morning, and start from zero.&lt;/p&gt;

&lt;p&gt;Every time I switched providers chasing a better price or a smarter model, every routine reset to nothing. None of it hurt enough to fix on any single day.&lt;/p&gt;

&lt;p&gt;It only became unbearable after it happened enough times that building a real fix took less energy than complaining about it one more morning.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three Decisions That Make Any Single Vendor Irrelevant
&lt;/h2&gt;

&lt;p&gt;Understanding this pattern was the same moment I started rebuilding my setup to outlive it. I didn't see the Gemini CLI shutdown coming by name, or predict Claude's safeguards, or guess OpenAI's pricing move.&lt;/p&gt;

&lt;p&gt;Watch any group of vendors for more than a few months and the shape becomes obvious. Building around the shape costs almost nothing compared to getting blindsided by it. Three decisions carried most of the weight.&lt;/p&gt;

&lt;p&gt;Decision one was routing. Rather than wiring my whole workflow to a single provider, I spread the work across Opencode Go, OpenRouter and Codex (via ChatGPT Pro) depending on the job.&lt;/p&gt;

&lt;p&gt;One small file tells my agent which company handles which kind of request. Writing goes to one model because it holds tone better. Research goes to another because it chews through long documents faster. Routine generation goes wherever the price is lowest that hour.&lt;/p&gt;

&lt;p&gt;When a provider hikes prices, throttles me, or pulls a model, I change three lines in that file and the work keeps flowing through the others without missing a beat. I broke down the full money side of this in &lt;a href="https://vibestacklab.substack.com/p/the-30-hermes-stack-that-makes-claude" rel="noopener noreferrer"&gt;my cost comparison against Claude Max&lt;/a&gt;, because the savings surprised even me.&lt;/p&gt;

&lt;p&gt;Decision two was memory, and this one mattered most. Claude's conversations disappear when the chat closes. ChatGPT's history lives on OpenAI's servers, under OpenAI's rules. I know that both Claude and ChatGPT have memory, but it's a single file and you cannot alter it directly. All this means that you don't have full access to it.&lt;/p&gt;

&lt;p&gt;My setup has 3 types of memory. First, Hermes comes with its own memory files and also built-in tools for session recall, so it can search our past convos. Then I added a 3rd party memory provider called Hindsight, but I might drop it as it's proven to be too much hassle for too little return for me.&lt;/p&gt;

&lt;p&gt;Last but not least, I use Obsidian with plain markdown files, synced across my devices through the built-in Sync, readable by any AI tool I choose to point at it. Project notes, research, past sessions, saved agent routines, all of it sits as a file on my VPS, laptop and phone. I also configured a WebDAV server and MCP so literally any AI can get access to my files (behind a login of course).&lt;/p&gt;

&lt;p&gt;A provider changes its deal tomorrow and my context follows me wherever I go next. None of it ever belonged to the provider in the first place.&lt;/p&gt;

&lt;p&gt;Decision three was the agent layer, and this is the piece most people skip. I run Hermes as the stack that sits between me and whichever company happens to be doing the actual thinking.&lt;/p&gt;

&lt;p&gt;Hermes holds the workflow, the saved skills, the routing, and the handoff logic. Whatever provider is plugged in becomes a swappable engine. Switching it means changing a single reference.&lt;/p&gt;

&lt;p&gt;When Claude started refusing harmless prompts last week, my workflow never stopped. I would've sent the work somewhere else and kept moving. Every saved skill that taught my agent how my projects run stayed identical, because those skills live in files I control.&lt;/p&gt;

&lt;p&gt;I &lt;a href="https://vibestacklab.substack.com/p/hermes-is-the-ai-agent-openclaw-promised" rel="noopener noreferrer"&gt;moved to Hermes specifically for this&lt;/a&gt;, because the layer running my work needed to stay independent.&lt;/p&gt;

&lt;p&gt;None of these three decisions asks for a computer science degree. Each one asks for a single choice, which is refusing to build your livelihood inside a tool that rewrites its own terms without asking you first.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Build Your Own AI System
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvw0u9ycg7qfj1xwo7kwv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvw0u9ycg7qfj1xwo7kwv.png" alt="Three-step system map: own your memory, add a second provider, keep workflow files independent" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nobody builds the whole thing in two days, and trying to is how people give up. You build it one decision at a time, letting the setup grow around the parts you genuinely use rather than the parts a tutorial told you to want.&lt;/p&gt;

&lt;p&gt;Order matters, because each layer makes the next one easier. Here is the order I followed and why.&lt;/p&gt;

&lt;p&gt;Start by owning your memory. That move pays off the same afternoon and keeps paying off every month after.&lt;/p&gt;

&lt;p&gt;Pull your project notes out of whatever AI chat tool currently holds them and drop them into a notes app you control. Obsidian, Notion, plain text files in a folder on your desktop, any of them works.&lt;/p&gt;

&lt;p&gt;The brand of the app matters far less than the fact that nothing inside it disappears when you close a tab. Every month you keep building context inside a chat window is a month of thinking that disappears the moment the company changes its mind.&lt;/p&gt;

&lt;p&gt;With your memory off the company's servers, adding a second provider becomes the natural next step instead of a scary one. Pick one piece of your workflow and run it through a different service for a week.&lt;/p&gt;

&lt;p&gt;If Claude writes for you, send a research task through OpenRouter and watch what happens. If ChatGPT does everything, hand one job to a rival model purely to feel the difference.&lt;/p&gt;

&lt;p&gt;Replacing your favorite tool is not the goal here. Learning what switching costs, while nothing is on fire, is the goal. That way the day you need to switch under real pressure you already know what you have to do.&lt;/p&gt;

&lt;p&gt;Remember that your workflow is really a handful of separate jobs pretending to be one tool.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Ideation&lt;/em&gt; runs on one model. &lt;em&gt;Research&lt;/em&gt; runs on another. Notes and memory live in your own app. These pieces talk to each other through plain files and simple handoffs.&lt;/p&gt;

&lt;p&gt;The tool you love this month might not be the tool you want next year. Spend a little time now making sure that gap costs you nothing when it arrives.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do This in Twenty Minutes Today
&lt;/h2&gt;

&lt;p&gt;Fastest possible start, and also the simplest. Open whichever AI chat tool you lean on most.&lt;/p&gt;

&lt;p&gt;Find the one conversation holding your most valuable project context, the thread full of decisions you made, research you gathered, and ideas you would really need to save.&lt;/p&gt;

&lt;p&gt;Drop this prompt into that conversation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Take the key decisions, facts, open questions, and next steps from this conversation. Summarize them as a structured note with these sections: Project Overview, Key Decisions Made, Important Context and Research, Open Questions, Next Steps. Write it as clean markdown I can paste into a note-taking app. Do not include our chat back-and-forth. Only the useful context.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy what comes back. Paste it into any app you own, whether that's Obsidian, Notion, Google Docs, or a single text file on your desktop.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjr6qu5wwlm518qqw1j0s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjr6qu5wwlm518qqw1j0s.png" alt="Dependency map exercise: write down three things you can't easily replace and test if you can export them" width="799" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Label it with the project name and today's date, and close the loop.&lt;/p&gt;

&lt;p&gt;You're done. You moved your first piece of context off a company's servers and into something nobody gets to switch off.&lt;/p&gt;

&lt;p&gt;Your chat tool still works exactly as it did five minutes ago, no harm done, no bridges burned. What changed is that the best part of that conversation now survives even if the tool rewrites its terms tomorrow morning.&lt;/p&gt;

&lt;p&gt;Ten conversations fit comfortably in twenty minutes. And once you're done you'll figure out that you've already taken the first step towards building your own system. When you decide to install Hermes, or an open-source agent, you'll have everything you need to get going.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get Ready For When Things Break
&lt;/h2&gt;

&lt;p&gt;This setup is not perfect, and pretending otherwise would waste your trust. Some months I pour more time into maintaining my routing file than I would have spent living inside one vendor and taking the lock-in.&lt;/p&gt;

&lt;p&gt;Independence carries an upkeep cost.&lt;/p&gt;

&lt;p&gt;Memory sync across devices stumbles now and then. Mostly when I edit the same note on two machines at once and create a conflict I have to fix by hand.&lt;/p&gt;

&lt;p&gt;Routing across providers means keeping three pricing models straight in my head instead of one. When a company changes its rates I need to update my calculations. But usually prices go down instead of up with each open source model (not the same can be said about proprietary ones).&lt;/p&gt;

&lt;p&gt;A handful of tools refuse to hand context to each other cleanly. That leaves me copying and pasting between them in a way a single sealed vendor would have smoothed over for me.&lt;/p&gt;

&lt;p&gt;Honest version, this whole approach suits people who already got burned by vendor dependency at least once and decided they would rather spend an hour a month on upkeep than risk losing an entire year of work to a corporate decision they were never allowed to influence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Draw Your Own Dependency Map
&lt;/h2&gt;

&lt;p&gt;Give this two more minutes. Write down three things in your AI life you couldn't easily replace.&lt;/p&gt;

&lt;p&gt;One model that handles your most important work (like Opus is for some). One app holding your project history and notes. One workflow that breaks if a single tool changes its terms next week.&lt;/p&gt;

&lt;p&gt;Now run one quick test on each. Try to export it.&lt;/p&gt;

&lt;p&gt;Find your AI conversations locked inside a chat window with no real export button, and you found your first weak point. The twenty-minute exercise above already started repairing it.&lt;/p&gt;

&lt;p&gt;Find your project notes trapped inside a tool that won't let you download them, and you found your second weak point. You already know its name without checking.&lt;/p&gt;

&lt;p&gt;Export cleanly from all three and you hold more independence than almost every AI user out there. Fail to export from even one and you found exactly where your next twenty minutes belongs.&lt;/p&gt;

&lt;p&gt;My own &lt;a href="https://vibestacklab.substack.com/p/how-to-automate-your-morning-with" rel="noopener noreferrer"&gt;automated morning workflow&lt;/a&gt; runs this same provider-agnostic pattern on a schedule. Every check reaches into files I own instead of interfaces I rent by the month.&lt;/p&gt;




&lt;p&gt;Gemini CLI's shutdown is only the newest entry in a pattern with no plans to stop. Claude's hidden safeguards, OpenAI's pricing war, Google's license reversal, each one is the same story wearing a different month on the calendar.&lt;/p&gt;

&lt;p&gt;Everything above is the short version, the field notes. Full treatment, including the actual routing files, the Obsidian Sync setup, and the provider comparison that pushed me toward OpenCode Go and OpenRouter, is going into the first Hermes 101 course.&lt;/p&gt;

&lt;p&gt;I'm building it right now and it should be ready soon. That course is where the patient step-by-step version of all this will live for anyone who wants their hand held through it.&lt;/p&gt;

&lt;p&gt;If the money angle is what grabbed you, I wrote a full breakdown of &lt;a href="https://vibestacklab.substack.com/p/the-30-hermes-stack-that-makes-claude" rel="noopener noreferrer"&gt;the $30 Hermes stack&lt;/a&gt; that goes toe to toe with Claude Max and asks for no subscription. If you want the origin story, &lt;a href="https://vibestacklab.substack.com/p/hermes-is-the-ai-agent-openclaw-promised" rel="noopener noreferrer"&gt;my migration from OpenClaw to Hermes&lt;/a&gt; is the longer answer to why I needed an agent layer I controlled before any of the rest of this made sense.&lt;/p&gt;

</description>
      <category>gemini</category>
      <category>hermes</category>
      <category>google</category>
      <category>routing</category>
    </item>
    <item>
      <title>How to Build AI Workflows When You're Tired of Optimizing Prompts</title>
      <dc:creator>cucoleadan</dc:creator>
      <pubDate>Tue, 09 Jun 2026 13:18:29 +0000</pubDate>
      <link>https://dev.to/cucoleadan/how-to-build-ai-workflows-when-youre-tired-of-optimizing-prompts-17b2</link>
      <guid>https://dev.to/cucoleadan/how-to-build-ai-workflows-when-youre-tired-of-optimizing-prompts-17b2</guid>
      <description>&lt;p&gt;&lt;em&gt;This was originally published on &lt;a href="https://allagentsconsidered.substack.com/p/how-to-build-ai-workflows" rel="noopener noreferrer"&gt;All Agents Considered&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Finding good content ideas used to take me hours every week. Reddit in one tab, news in another, arXiv in a third, and an Obsidian note where I'd paste everything and try to remember how the pieces connected. Each AI search took seconds, but I spent the rest of the time being the glue.&lt;/p&gt;

&lt;p&gt;What made it worse was how much attention I burned just moving between tabs and chats. Every switch cost me focus, and every reset made the work feel heavier than it was.&lt;/p&gt;

&lt;p&gt;I didn't know it then, but instead of overly optimizing my prompts, I should've just created a workflow. Took me some time to figure out the best way to go about this and so I am ready to share my way of converting prompts into workflows.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;In this piece:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why prompt habits break at scale&lt;/li&gt;
&lt;li&gt;How to spot your first workflow candidate&lt;/li&gt;
&lt;li&gt;How to find the seams in long conversations&lt;/li&gt;
&lt;li&gt;The handoff pattern that carries context forward&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're copying output between AI chat tabs, you’re doing the coordination work the AI should handle. The fix is to turn your prompts into a workflow where each step writes to a file and the next reads it. Context carries forward without you carrying it. You only stop where a real decision needs to be made.&lt;/p&gt;

&lt;h2&gt;
  
  
  When Prompting Stops Working
&lt;/h2&gt;

&lt;p&gt;Almost everyone starts with AI the same way. You type a question, get an answer, copy-paste it somewhere, repeat. This is how I spent my first year using it. And I get it, it feels productive because each interaction gives you something tangible.&lt;/p&gt;

&lt;p&gt;Then you notice you’re spending more time managing the AI than the AI is saving you. You’re the one copying between steps. You’re the one remembering what step three needed from step one.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff1ox2nl6qljnm6nqykoh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff1ox2nl6qljnm6nqykoh.png" alt="Chart showing LLM accuracy dropping as context length increases" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An October 2025 study &lt;a href="https://arxiv.org/abs/2406.15782" rel="noopener noreferrer"&gt;published on arXiv&lt;/a&gt; found that LLM accuracy drops significantly when relevant information is embedded within longer contexts, even when all irrelevant tokens are masked.&lt;/p&gt;

&lt;p&gt;Prompt engineering blogs and courses are still selling the idea that the right words will fix everything. They’re optimizing the wrong layer. You’re trying to run a pipeline through a chat window, and no amount of word-smithing changes that.&lt;/p&gt;

&lt;p&gt;Hitting a ceiling with prompting means you have an &lt;a href="https://vibestacklab.substack.com/p/the-agentic-engineering-shift" rel="noopener noreferrer"&gt;architecture problem&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Spot Your First AI Workflow
&lt;/h2&gt;

&lt;p&gt;Before we go further, try this. Think about the last repetitive task you did with AI. The one that took 45 minutes and made you want to scream by minute 30. Now ask yourself:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Did I copy-paste between steps?&lt;/li&gt;
&lt;li&gt;Did I open multiple chat windows because context kept getting polluted?&lt;/li&gt;
&lt;li&gt;Did I have to remember what step three needed from step one?&lt;/li&gt;
&lt;li&gt;Did the AI produce good output at each step, but the final result was mediocre?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you answered yes to any of these, you already have a workflow candidate. You’ve been doing the coordination work manually.&lt;/p&gt;

&lt;p&gt;Here’s a prompt you can use right now. Paste it at the end of your next long AI conversation, after you’ve finished a task:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Look back at this conversation we just had. I'm going to paste the initial prompt I started with below. I want you to analyze whether this task could be converted into a reusable skill or workflow.

Specifically:
1. Could the steps I took be structured as a sequence where each step produces output the next step needs?
2. Are there handoff points where context needs to carry forward?
3. Would this task benefit from being broken into separate steps with clean context, rather than running as one long conversation?
4. What would the input, instructions, output, and checkpoint look like if this became a workflow?

Here's the initial prompt I used: [PASTE YOUR INITIAL PROMPT HERE]

Tell me if this is a good candidate for a workflow, and if so, sketch what the steps would look like.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run this after your next repetitive task. You might find you’re already doing workflow-shaped work manually.&lt;/p&gt;

&lt;p&gt;This works whether you use &lt;a href="https://vibestacklab.substack.com/p/openclaw-vs-claude-cowork-vs-perplexity" rel="noopener noreferrer"&gt;Hermes, Claude Code, Codex, Cowork&lt;/a&gt;, or any other AI conversation tool. Patterns stay the same. Tools don’t matter. Structure does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to Find the Seams in a Long Conversation
&lt;/h2&gt;

&lt;p&gt;Converting a long conversation into a workflow starts with seeing where your current process has seams.&lt;/p&gt;

&lt;p&gt;When you have a long AI conversation, look for the moments where you switched gears. Where you said “okay, now let’s do X” and started a new mental context. Where you copied something from earlier in the chat and pasted it into a new request. Where you had to remind the AI what you were working on because it forgot. Those seams are where scope creep happens. I wrote about &lt;a href="https://vibestacklab.substack.com/p/what-gordon-ramsay-taught-me-about" rel="noopener noreferrer"&gt;what Gordon Ramsay taught me about scope&lt;/a&gt; and knowing when to stop.&lt;/p&gt;

&lt;p&gt;Those are your seams. Each seam is a potential step in a workflow.&lt;/p&gt;

&lt;p&gt;My breaking point came during a content ideation project. I needed to find interesting angles for newsletter articles, which meant pulling from multiple sources. Reddit threads surfaced complaints about specific problems, news articles covered emerging tools, and arxiv papers hinted at new capabilities.&lt;/p&gt;

&lt;p&gt;I started manually, copy-pasting Reddit posts into a document, scraping news headlines, running arxiv searches and saving abstracts. Each source lived in its own chat session because context windows kept getting polluted. By the time I finished with Reddit, I’d forgotten what I found in the news search.&lt;/p&gt;

&lt;p&gt;Then I created individual skills for each source. One skill for Reddit research, another for news scraping, a third for arxiv papers. Each skill worked fine on its own, but I was still the one coordinating between them. I’d run the Reddit skill, save the output, run the news skill, save that output, run the arxiv skill, save that output. Then I’d manually combine all three into a final idea list.&lt;/p&gt;

&lt;p&gt;I was doing the agent’s coordination work manually. The AI could do each step well. Handoffs were the problem. I was the middleware.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Correctly Carry Context Forward
&lt;/h2&gt;

&lt;p&gt;Workflows are sequences of steps where each step produces something the next step needs. What separates workflows from prompting is that &lt;a href="https://vibestacklab.substack.com/p/forgetting-to-forget-how-infinite" rel="noopener noreferrer"&gt;context moves forward automatically&lt;/a&gt; instead of you carrying it by hand.&lt;/p&gt;

&lt;p&gt;Anthropic’s “&lt;a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener noreferrer"&gt;Building Effective Agents&lt;/a&gt;” guide, published in December 2024 and widely cited as the definitive resource, makes a clean distinction. Workflows are systems where LLMs and tools are orchestrated through predefined code paths. Agents are systems where LLMs dynamically direct their own processes.&lt;/p&gt;

&lt;p&gt;For non-coders, workflows are the sweet spot. You define the path. The AI does the work at each stop.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fymqs0jqfw8pj4ukisldl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fymqs0jqfw8pj4ukisldl.png" alt="Diagram from Anthropic showing five workflow patterns: prompt chaining, routing, parallelization, orchestrator-workers, and evaluator-optimizer" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Anthropic describes five workflow patterns. In plain English:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prompt chaining&lt;/strong&gt; works like an assembly line. Step one’s output becomes step two’s input. Each step stays simple and focused.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Routing&lt;/strong&gt; sorts different inputs down different paths. Like a mail sorter that sends letters to the right zip code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Parallelization&lt;/strong&gt; runs multiple things at the same time. Like having three researchers instead of one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Orchestrator-workers&lt;/strong&gt; uses a boss agent that breaks down the work and delegates it to worker agents.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Evaluator-optimizer&lt;/strong&gt; has one agent do the work and another check it. The first one revises based on feedback.&lt;/p&gt;

&lt;p&gt;I call the files that hold it all together handoff files. Each step writes its work down so the next step doesn’t have to guess. Format matters less than the principle. It could be a markdown file, a Google Doc, a structured text block. What matters is that each step produces something the next step can read.&lt;/p&gt;

&lt;p&gt;I tried everything for &lt;a href="https://vibestacklab.substack.com/p/the-30-hermes-stack-that-makes-claude" rel="noopener noreferrer"&gt;holding context between steps&lt;/a&gt;. In-memory variables disappear when the session ends, database entries require setup and maintenance, and shared state files get corrupted when two steps write at once.&lt;/p&gt;

&lt;p&gt;Markdown files in Obsidian won because they’re boring and reliable.&lt;/p&gt;

&lt;p&gt;Each step in a workflow writes its output to a markdown file, and the next step reads that file. Files sit in a folder structure that mirrors the workflow. When something goes wrong, I open the file and see exactly what step three produced. I trace the problem backward through the chain.&lt;/p&gt;

&lt;p&gt;This also gives me something I didn’t expect. I track what each subagent or step did, with links to the specific files it produced. When something sounds fishy in the final output, I open the intermediate files and find where the drift started.&lt;/p&gt;

&lt;p&gt;Markdown has practical advantages too. Plain text works everywhere. Files move between systems without conversion. Changes are version-controllable over time. Everything renders nicely in Obsidian, which I already use for notes.&lt;/p&gt;

&lt;p&gt;Storing context in a database or shared state mechanism adds complexity, requires setup, and creates dependencies. Markdown files require nothing except a folder and a text editor.&lt;/p&gt;

&lt;p&gt;Each step writes its work down. The next step reads what the previous step wrote. Context carries forward through files, not through memory.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building an AI Workflow Step by Step
&lt;/h2&gt;

&lt;p&gt;Let me show you what this looks like in practice. I’ll use my content ideation workflow as the example, but the structure works for any repeating task. If you want to learn how to &lt;a href="https://vibestacklab.substack.com/p/how-to-architect-a-feature-in-5-minutes" rel="noopener noreferrer"&gt;architect a workflow in 5 minutes&lt;/a&gt; before building, that article covers the planning phase.&lt;/p&gt;

&lt;p&gt;Four steps make up this workflow. Each step reads from the previous step’s output file and writes to its own output file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Reddit research&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Input: A topic or keyword to search for.&lt;br&gt;&lt;br&gt;
What it does: Searches Reddit for threads where people complain about problems related to that topic.&lt;br&gt;&lt;br&gt;
Output: &lt;code&gt;reddit-findings.md&lt;/code&gt; with thread titles, URLs, and key complaints.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: News scraping&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Input: The same topic.&lt;br&gt;&lt;br&gt;
What it does: Searches news sources for articles about emerging tools or trends related to that topic.&lt;br&gt;&lt;br&gt;
Output: &lt;code&gt;news-findings.md&lt;/code&gt; with headlines, URLs, and summaries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Arxiv search&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Input: The same topic.&lt;br&gt;&lt;br&gt;
What it does: Searches arxiv for papers that hint at new capabilities related to that topic.&lt;br&gt;&lt;br&gt;
Output: &lt;code&gt;arxiv-findings.md&lt;/code&gt; with paper titles, abstracts, and relevance notes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Synthesis&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Input: All three files from steps 1-3.&lt;br&gt;&lt;br&gt;
What it does: Reads all three files and synthesizes them into a list of article angle ideas.&lt;br&gt;&lt;br&gt;
Output: &lt;code&gt;idea-angles.md&lt;/code&gt; with 5-10 potential article topics, each grounded in the research.&lt;/p&gt;

&lt;p&gt;Each step gets a clean context with exactly what it needs. Nothing is buried. Nothing is forgotten.&lt;/p&gt;

&lt;p&gt;My first attempt at this workflow was ugly. Files on my desktop, a checklist in a notes app, and a lot of copy-pasting held it together. But it was structured. Each step had a clear input and a clear output. The agent didn’t need to remember anything from three steps ago because I gave it exactly what it needed.&lt;/p&gt;

&lt;p&gt;Eventually I built one unified skill that handles the whole pipeline. It pulls from Reddit, news sources, and arxiv in sequence, writes each batch of findings to a separate markdown file, then synthesizes all three into a final idea list. The skill runs top to bottom without me copying anything between steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prompting vs. Workflows: The Same Task
&lt;/h2&gt;

&lt;p&gt;Content ideation looks completely different the prompt way versus the workflow way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The prompt way:&lt;/strong&gt; You open a chat and ask the AI to search Reddit for complaints about a specific topic. It gives you a list. You copy that list into a document. You open a new chat and ask it to scrape news articles about the same topic. It gives you headlines and summaries. You copy those into your document. You open another chat and ask it to search arxiv for relevant papers. It gives you abstracts. You copy those too.&lt;/p&gt;

&lt;p&gt;By the time you’re done, you’ve got three separate chunks of text in a document. Now you need to synthesize them into idea angles. You paste everything into a new chat and ask for ideas. The AI produces a list, but it’s generic. It lost the nuance from the Reddit complaints because they got buried in the combined text. It missed the arxiv findings because they were at the bottom of a 5,000-word prompt.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The workflow way:&lt;/strong&gt; You run a skill that searches Reddit and writes the findings to a file called &lt;code&gt;reddit-findings.md&lt;/code&gt;. The skill then searches news sources and writes to &lt;code&gt;news-findings.md&lt;/code&gt;. Then it searches arxiv and writes to &lt;code&gt;arxiv-findings.md&lt;/code&gt;. Each file is clean and focused.&lt;/p&gt;

&lt;p&gt;The final step reads all three files and synthesizes them into &lt;code&gt;idea-angles.md&lt;/code&gt;. Each step gets a clean context with exactly what it needs. Nothing is buried or forgotten.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://strandsagents.com/blog/steering-accuracy-beats-prompts-workflows/" rel="noopener noreferrer"&gt;Clare Liguori’s research at AWS&lt;/a&gt; tested five approaches to guiding agent behavior across 3,000 evaluation runs. Simple prompt instructions reached 82.5% accuracy, meaning roughly one in five interactions failed. When she added structured feedback loops, what she calls steering hooks, accuracy hit 100% across 600 runs.&lt;/p&gt;

&lt;p&gt;Better structure made the difference, not better prompts.&lt;/p&gt;

&lt;p&gt;I tested this myself when &lt;a href="https://vibestacklab.substack.com/p/why-ai-benchmarks-fail-agent-workflows" rel="noopener noreferrer"&gt;comparing how different models handle real Hermes workflows&lt;/a&gt;. Models that looked impressive on benchmarks often failed at structured workflows because they overthought simple steps or ignored format constraints. Structure matters more than raw capability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Humans Still Check
&lt;/h2&gt;

&lt;p&gt;Every workflow needs checkpoints, but not every step needs one. Adding review points everywhere turns the workflow into a series of interruptions.&lt;/p&gt;

&lt;p&gt;I use decision gates. You only stop where a real choice needs to be made. Which angle to pursue. Which source to prioritize. Whether to cut a section that doesn’t fit.&lt;/p&gt;

&lt;p&gt;If the output is fine and no decision is needed, you don’t stop. Workflows run until they hit a point where they can’t proceed without your judgment.&lt;/p&gt;

&lt;p&gt;Decision gates check whether the output matches your intent. AI produces grammatically correct, well-researched content that still goes in the wrong direction. Decision gates catch that before the next step builds on a mistaken assumption. I wrote about &lt;a href="https://vibestacklab.substack.com/p/accepting-ais-first-answer-is-bad" rel="noopener noreferrer"&gt;why accepting AI’s first answer is bad&lt;/a&gt; and how checkpoints prevent drift.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpyywxw8llns4dlvm80d1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpyywxw8llns4dlvm80d1.png" alt="Diagram showing human decision gates as checkpoints within an automated AI workflow" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I wrote a full guide on &lt;a href="https://vibestacklab.substack.com/p/how-to-add-approval-gates-to-your" rel="noopener noreferrer"&gt;adding approval gates to Hermes workflows&lt;/a&gt; if you want the technical details. Gates protect your reputation by blocking external actions without your OK, protect your data by requiring confirmation before system changes, and protect your wallet by blocking spending above a threshold without approval.&lt;/p&gt;

&lt;p&gt;For most workflows, you need one gate at the point where the output becomes public or irreversible. A content workflow might have a gate after the outline, before the final draft goes live. A research workflow might have a gate after the synthesis, before you act on the findings.&lt;/p&gt;

&lt;p&gt;Decision gates are where you stay in control of direction while the AI handles execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to Start Your First Workflow
&lt;/h2&gt;

&lt;p&gt;Pick one repeating task. Not the most complex one. Pick the one you do every week that takes 45 minutes and makes you want to scream by minute 30. That’s your first workflow.&lt;/p&gt;

&lt;p&gt;Mine was a &lt;a href="https://vibestacklab.substack.com/p/how-to-automate-your-morning-with" rel="noopener noreferrer"&gt;morning briefing that pulls tasks and articles before coffee&lt;/a&gt;. Two steps. Read from Asana, format the output, deliver it. Simple enough to build in an afternoon, useful enough to run every weekday since I built it.&lt;/p&gt;

&lt;p&gt;If you’re &lt;a href="https://vibestacklab.substack.com/p/hermes-is-the-ai-agent-openclaw-promised" rel="noopener noreferrer"&gt;new to Hermes&lt;/a&gt;, start with a two-step workflow like this one before attempting anything complex.&lt;/p&gt;

&lt;p&gt;Minimum viable workflows have four parts: input (what goes in), instructions (what the agent does), output (what comes out), and checkpoint (where you verify). You don’t need software. You don’t need code. You need a folder with files in it.&lt;/p&gt;

&lt;p&gt;Anthropic’s own advice from “Building Effective Agents” is to start simple and add complexity only when needed. They explicitly warn against starting with frameworks or complex architectures. Start with two steps. Make them reliable. Then add a third.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.confluent.io/compare/prompts-vs-workflows-vs-agents/" rel="noopener noreferrer"&gt;Confluent’s guidance on AI workflows&lt;/a&gt; makes the same point. Simple solutions are often the best place to begin. Starting with simple prompt engineering may not be perfect, but it works well enough as a first pass. When you hit the ceiling, add structure. Don’t add structure preemptively.&lt;/p&gt;

&lt;p&gt;Boring beats clever. Your first workflow should be so simple it’s embarrassing. A two-step process with a file handoff and a human check. That’s it. People who get value from AI workflows built boring ones and ran them 50 times, not impressive ones they ran twice. I wrote about &lt;a href="https://vibestacklab.substack.com/p/why-ai-makes-you-build-too-much-and" rel="noopener noreferrer"&gt;why AI makes you build too much&lt;/a&gt; and how to resist that urge.&lt;/p&gt;

&lt;p&gt;Most AI productivity advice tells you to write better prompts. Designing better handoffs is where the real payoff lives. Prompts at each step can be mediocre if the context they receive is clean. A brilliant prompt in a bloated chat thread will still produce mediocre output.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;If this changed how you think about AI workflows, share it with someone who's still copying between chat tabs. Subscribe for more practical agent workflows every week.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://allagentsconsidered.substack.com/p/how-to-build-ai-workflows?utm_source=substack&amp;amp;utm_medium=email&amp;amp;utm_content=share&amp;amp;action=share" rel="noopener noreferrer"&gt;Share&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Recognizing when you’re doing coordination work the AI should handle is the whole shift. Once you see the pattern, you can’t unsee it. Every repetitive task becomes a candidate for structure. Every manual handoff becomes a design problem.&lt;/p&gt;

&lt;p&gt;Hitting a ceiling with prompting means you have an architecture problem. Build the pipeline. Let the context flow. Keep your hands on the decisions that matter.&lt;/p&gt;

</description>
      <category>workflows</category>
      <category>prompting</category>
      <category>automation</category>
      <category>agents</category>
    </item>
    <item>
      <title>Why AI Benchmarks Fail Real Hermes Agent Workflows</title>
      <dc:creator>cucoleadan</dc:creator>
      <pubDate>Tue, 02 Jun 2026 13:14:14 +0000</pubDate>
      <link>https://dev.to/cucoleadan/why-ai-benchmarks-fail-real-hermes-agent-workflows-51lh</link>
      <guid>https://dev.to/cucoleadan/why-ai-benchmarks-fail-real-hermes-agent-workflows-51lh</guid>
      <description>&lt;p&gt;&lt;em&gt;This post was originally published on my Substack publication as &lt;a href="https://vibestacklab.substack.com/p/why-ai-benchmarks-fail-real-hermes" rel="noopener noreferrer"&gt;Why AI Benchmarks Fail Real Hermes Agent Workflows&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The day after Opus 4.8 launched, I gave it a job that should've taken two minutes. Find a named file, summarize it under a strict word limit and return the result in a specific format so the next step in the pipeline could parse it correctly.&lt;/p&gt;

&lt;p&gt;Opus handled it with clean output and solid reasoning, but it took its time making sure every move was right. By the time it finished, a cheaper model would've done the same work three times over.&lt;/p&gt;

&lt;p&gt;That was the moment I stopped trusting benchmarks. A leaderboard score tells you how a model performs on a clean task under controlled conditions. It says nothing about whether that model can survive a twenty-step workflow.&lt;/p&gt;

&lt;p&gt;I've wanted to put models through a proper test for a while now. I finally found the time and the right config to do it. Here's how I run every model through the same real tasks, and what four models taught me about real Hermes work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfh5x9rmonx6kv0fv9r1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfh5x9rmonx6kv0fv9r1.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In this article:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tool call discipline matters more than reasoning quality. A model that calls the right tool once beats one that explores and verifies three times over.&lt;/li&gt;
&lt;li&gt;Route by task, not by preference. Use the cheapest model that reliably finishes the job, and step up only when it fails.&lt;/li&gt;
&lt;li&gt;A simple testing framework that puts models through real Hermes tasks instead of synthetic benchmarks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Bottom line:&lt;/strong&gt; There is no single survivor. I route lightweight models (GLM 5.1) for fast background tasks, capable mid-tier models (Qwen 3.7 Max) for complex workflows, and flagships (Opus) exclusively for deep debugging when the others fail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why AI Benchmarks Fail Agent Workflows
&lt;/h2&gt;

&lt;p&gt;Benchmarks test the thing they can measure cleanly. Can the model solve this logic puzzle, answer this math question, write code that passes these test cases? Those are useful questions for evaluating raw capability.&lt;/p&gt;

&lt;p&gt;But agent work needs different skills. The model needs to be obedient, fast, disciplined with tools, and able to stop when the task is done. None of these show up on a benchmark because none of them are easy to measure in a controlled test.&lt;/p&gt;

&lt;p&gt;A model can score in the top tier on a reasoning benchmark and still be the wrong fit for unattended workflow automation. It might overthink simple tasks, waste tokens on unnecessary reasoning, or call tools it doesn't need because it's trying to be thorough. In a chat interface that thoroughness feels impressive. In a scheduled job running at 6 AM it means the session times out before the work finishes.&lt;/p&gt;

&lt;p&gt;Benchmarks also miss the compounding effect of small failures. A model that adds an extra section, ignores a format constraint, or calls a tool twice when once would suffice. Each is minor on its own. In an agent workflow where each step feeds the next one, minor failures cascade into broken jobs.&lt;/p&gt;

&lt;p&gt;In my opinion, &lt;a href="https://github.com/claw-eval/claw-eval" rel="noopener noreferrer"&gt;ClawEval&lt;/a&gt; comes close to a valid benchmark. The &lt;a href="https://arxiv.org/abs/2604.06132" rel="noopener noreferrer"&gt;paper&lt;/a&gt; runs &lt;a href="https://claw-eval.github.io/" rel="noopener noreferrer"&gt;300 human-verified agent tasks&lt;/a&gt; across 9 categories with a Pass^3 rule that eliminates lucky runs. A task only passes if the model meets the success criteria in all three independent trials, which is a meaningfully stricter bar than &lt;a href="mailto:Pass@3"&gt;Pass@3&lt;/a&gt;. It's the most serious attempt at realistic agent evaluation I've seen, and it has already spawned related work like &lt;a href="https://github.com/InternLM/WildClawBench" rel="noopener noreferrer"&gt;WildClawBench&lt;/a&gt; that tests agents inside live OpenClaw instances. But that's beyond the point.&lt;/p&gt;

&lt;p&gt;My test is less scientific and more practical. I put models through the same jobs I schedule on Hermes, using the same config I run every day, and I watch what happens.&lt;/p&gt;

&lt;h2&gt;
  
  
  Speed Is a Workflow Cost
&lt;/h2&gt;

&lt;p&gt;Speed matters in two completely different ways depending on how you use the model.&lt;/p&gt;

&lt;p&gt;When you're in a session talking to Hermes, time is something you're spending. A model that takes four seconds instead of one is the difference between staying in flow and getting distracted between tool calls. Fast models give that time back to you.&lt;/p&gt;

&lt;p&gt;In a cron job, nobody's watching the clock. But speed still matters because fast models tend to produce fewer reasoning tokens per tool call, and that directly affects cost and reliability. Less verbosity means a tighter context window across twenty steps, which keeps context window degradation from compounding into broken jobs by step fifteen.&lt;/p&gt;

&lt;p&gt;This is why &lt;strong&gt;GLM 5.1&lt;/strong&gt; on Ollama Cloud carries most of my daily workload. It's fast enough to feel instant in interactive sessions and tight enough with tokens to keep scheduled jobs cheap and stable. I use it for heartbeat checks, &lt;a href="https://vibestacklab.substack.com/p/how-to-automate-your-morning-with" rel="noopener noreferrer"&gt;morning briefings that synthesize Asana tasks before coffee&lt;/a&gt;, and anything that needs to be fast and correct without deep reasoning. The boring work that makes up most of a Hermes workday.&lt;/p&gt;

&lt;p&gt;Speed also compounds with cost. A fast mid-tier model that finishes a workflow in three minutes is cheaper than a slow flagship that takes fifteen minutes. The &lt;a href="https://vibestacklab.substack.com/p/the-30-hermes-stack-that-makes-claude" rel="noopener noreferrer"&gt;cost math behind this is what I've been tracking across providers&lt;/a&gt; and it's where a fast model pays for itself.&lt;/p&gt;

&lt;p&gt;For tasks that require massive token input and a lot of tool calls to read and process files, I reach for &lt;strong&gt;DeepSeek v4 Flash&lt;/strong&gt;. When a job needs to chew through a hundred thousand tokens across a dozen files, speed is the only thing that keeps the session from becoming an exercise in patience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tool Call Discipline Beats Reasoning
&lt;/h2&gt;

&lt;p&gt;This is the sharpest opinion I hold about models inside agent loops, and it's the one benchmarks almost never test.&lt;/p&gt;

&lt;p&gt;Benchmarks measure whether a model can think hard about a problem. Hermes needs a model that calls the right tool once, reads the result, and moves on without second-guessing itself. Those are different skills, and the second one matters more for unattended work.&lt;/p&gt;

&lt;p&gt;A model that makes twelve tool calls when four would do is being expensive and fragile. Every extra call adds API cost, creates another failure point, and fills the context window with noise the model has to process on the next step. Most of what people call "context engineering" inside an agent loop is just preventing this kind of noise from ever entering the window in the first place.&lt;/p&gt;

&lt;p&gt;I've seen top-tier reasoning models call a search tool, read the results, then call a different search tool to verify what the first one returned, then call a third tool to format the output when a simple string operation would've worked. The net effect was a session that cost three times as much and took three times as long.&lt;/p&gt;

&lt;p&gt;The same failure shows up with instruction obedience. A model that ignores format constraints and adds helpful extra sections breaks downstream parsing. A model that keeps writing after the task is done wastes tokens. A model that skips a negative constraint includes something you told it to avoid at the worst possible moment.&lt;/p&gt;

&lt;p&gt;In a chat, each of these looks like helpfulness. In an agent workflow, each one becomes a liability because each step feeds the next one.&lt;/p&gt;

&lt;p&gt;Tool call discipline separates a model I trust with unattended work from a model I keep supervised. A disciplined model reads the task, decides which tools it needs, calls each one once, and stops. An undisciplined model explores and adds helpful extra steps nobody asked for.&lt;/p&gt;

&lt;p&gt;If you're running Hermes with &lt;a href="https://vibestacklab.substack.com/p/how-to-add-approval-gates-to-your" rel="noopener noreferrer"&gt;approval gates&lt;/a&gt;, tool call discipline becomes even more important. A model that makes unnecessary tool calls also tends to ignore "ask before destructive action" instructions. The model thinks it knows better than the prompt.&lt;/p&gt;

&lt;p&gt;This also ties into the &lt;a href="https://vibestacklab.substack.com/p/when-to-use-mcps-clis-or-your-own" rel="noopener noreferrer"&gt;interface question I've been tracking&lt;/a&gt; — a disciplined model calls the right tool the right way, and sometimes the right tool is a lightweight CLI instead of a bloated MCP server that chokes the context window before the model even starts thinking.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Route AI Models in Hermes
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fduizy0h9mhl5tv7w5hja.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fduizy0h9mhl5tv7w5hja.jpeg" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Model selection inside an agent loop is a routing problem, not a ranking problem. There's no single best model. There's a best model for each job, and the job changes throughout the day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GLM 5.1&lt;/strong&gt; carries most of my workload. Heartbeat checks, simple scheduled jobs, structured data parsing, quick research tasks. These are tool calls that need to be fast and correct but don't need deep reasoning. GLM on Ollama Cloud is cheap enough that I don't think twice about spinning up a session. The boring work that makes up the bulk of a Hermes workday.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GPT-5.5&lt;/strong&gt; is what I use through my Codex subscription for the heavy work. I tried it inside Hermes first and it burned through usage by making tons of unnecessary tool calls. The model doesn't know when to stop, which makes it terrible for agent loops where each tool call costs tokens and fills the context window. So I stopped using it in Hermes and shifted it to Codex, where I control the loop. In Codex it handles most of my coding and the research pulls where I want thorough coverage. It is more verbose than the other models in my stack, which helps for research and hurts for tight format constraints, so I shape the prompt accordingly. The subscription removes cost as a gating factor, which means I can run it as often as the job needs without watching a counter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Opus&lt;/strong&gt; gets the tasks GPT 5.5 can't finish. I run it through the API and it's expensive, so I keep it scoped to debugging. When a problem doesn't reproduce cleanly or when a code review needs a different reasoning style, Opus handles it. That's it. Outside of those sessions it stays idle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Qwen 3.7 Max&lt;/strong&gt; is my surgical tool. I reach for it when a task needs more reasoning than GLM can deliver but I don't want to pay Opus prices. The step up from the cheaper Qwen tier is noticeable on tasks involving multi-step logic or ambiguous instructions. The cheaper version guesses and moves on. 3.7 Max pauses and works through it. For most structured agent work, the cheaper version gets the job done. I use 3.7 Max sparingly and mostly for content and deep research.&lt;/p&gt;

&lt;p&gt;My pattern is simple. Use the cheapest model that reliably completes the specific task type. When GLM fails, step up. When the mid-tier fails, step up again. Escalation stays task-driven, not model-driven. Pricing only matters once the model can finish the job.&lt;/p&gt;

&lt;p&gt;The first rule of routing is reliability. The second rule is cost. Get them in the wrong order and you'll pay for it.&lt;/p&gt;

&lt;p&gt;I pay per token every time Hermes calls a tool, so the cost math matters. Every tool call generates input tokens from the context window and output tokens from the response. A session with a dozen tool calls consumes as many tokens as a long chat conversation.&lt;/p&gt;

&lt;h2&gt;
  
  
  My AI Agent Evaluation Ladder
&lt;/h2&gt;

&lt;p&gt;I don't trust leaderboards because they don't test what I need. So I run models through the same set of real tasks from my actual work. Same files, same prompts, same conditions for every model so the comparison stays honest. Each task tests a different dimension of what I need from an agent model.&lt;/p&gt;

&lt;p&gt;The tasks escalate from simple to demanding.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzv6293gks65g9c7h990f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzv6293gks65g9c7h990f.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;First, whether the model stays restrained when given no task. A good Hermes model sends a short greeting back and waits. A bad one starts searching files and scanning memory before you ask it to. The model that won't wait is the model that won't stop.&lt;/p&gt;

&lt;p&gt;Then whether it finds a document and summarizes under strict format rules without drifting into extra sections. I cap the summary at a specific number of bullets with a word limit on each one. The task doesn't require deep reasoning. It requires the model to follow directions and stop.&lt;/p&gt;

&lt;p&gt;Whether it packages a CLI tool into a reusable skill without overbuilding. Some models create five files when one would do. The disciplined model reads the help output before it writes anything.&lt;/p&gt;

&lt;p&gt;Whether it uses that skill correctly in a fresh session with specific source rules. No Reddit, no arXiv, no turning search snippets into facts. This tests whether the model can follow negative constraints, which are harder than positive ones because the model has to actively suppress the instinct to include everything it finds.&lt;/p&gt;

&lt;p&gt;And finally, whether it pulls together sources, cross-checks claims, and produces a decision-ready report under a word limit. This combines everything. Format constraints, tool judgment, instruction obedience, and the discipline to stop writing when the task is done.&lt;/p&gt;

&lt;p&gt;That last requirement is the one benchmarks never test. In a chat, extra writing is harmless. In an agent workflow, extra writing is a tax on every step that follows.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Coming Every Thursday
&lt;/h2&gt;

&lt;p&gt;I'm running Opus, GPT-5.5, Qwen 3.7 Max via OpenCode Go, and GLM 5.1 via Ollama Cloud through these tasks and publishing a short verdict card every Thursday. Each card covers the best use case, the conditions where you should skip it, cost notes from real sessions, and whether the model belongs in a Hermes setup at all.&lt;/p&gt;

&lt;p&gt;The goal is a repeatable testing standard that accumulates over time instead of a one-off leaderboard that goes stale the week after publishing.&lt;/p&gt;

&lt;p&gt;I'll also note when a model fails because of provider instability rather than model quality. A weak model needs replacing. An unreliable route needs a backup. I've hit this with &lt;a href="https://vibestacklab.substack.com/p/my-hermes-ai-agent-maintenance-routine" rel="noopener noreferrer"&gt;Hindsight memory timeouts and gateway drift&lt;/a&gt; — things that look like the model broke but were actually a layer below it.&lt;/p&gt;

&lt;p&gt;Each Thursday card follows the same format so you can compare over time. The verdict will be one of five categories: daily driver, strong specialist, background worker, backup only, or skip entirely. I'll add new tasks to the ladder based on what people suggest in the comments.&lt;/p&gt;

&lt;p&gt;Stay tuned and subscribe to receive these reports as soon as I publish them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Share this with a builder choosing their next AI model from a leaderboard or plan page.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://vibestacklab.substack.com/p/why-ai-benchmarks-fail-real-hermes?utm_source=substack&amp;amp;utm_medium=email&amp;amp;utm_content=share&amp;amp;action=share" rel="noopener noreferrer"&gt;Share&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which model should go through the ladder first, and what real workday task should I add to the test? Let me know in the comments.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://vibestacklab.substack.com/p/why-ai-benchmarks-fail-real-hermes/comments" rel="noopener noreferrer"&gt;Leave a comment&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I write practical Hermes and agent workflow tests for builders who want results without subscription chaos.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>benchmarks</category>
      <category>workflows</category>
      <category>routing</category>
    </item>
    <item>
      <title>My Hermes AI Agent Maintenance Routine For Maximum Reliability</title>
      <dc:creator>cucoleadan</dc:creator>
      <pubDate>Tue, 26 May 2026 12:59:38 +0000</pubDate>
      <link>https://dev.to/cucoleadan/my-hermes-ai-agent-maintenance-routine-for-maximum-reliability-3fp4</link>
      <guid>https://dev.to/cucoleadan/my-hermes-ai-agent-maintenance-routine-for-maximum-reliability-3fp4</guid>
      <description>&lt;p&gt;&lt;em&gt;This post was originally published on my Substack publication as &lt;a href="https://vibestacklab.substack.com/p/my-hermes-ai-agent-maintenance-routine" rel="noopener noreferrer"&gt;My Hermes AI Agent Maintenance Routine For Maximum Reliability&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Last week, I spent a few days blaming the model before I realized Hermes was waiting on a memory recall timeout.&lt;/p&gt;

&lt;p&gt;When the response time got worse, I assumed provider latency because I'd changed models before and knew that layer could get noisy.&lt;/p&gt;

&lt;p&gt;The real problem sat one layer earlier, inside the retrieval path I hadn't checked yet.&lt;/p&gt;

&lt;p&gt;My external memory provider, Hindsight, threw a retrieval error, Hermes retried, and the request stalled because the memory system was broken before the model ever had a chance to answer.&lt;/p&gt;

&lt;p&gt;A few days later, my Friday Hermes health-summary job missed its Telegram report over a long weekend. The stack still answered messages, but the missing report told me the scheduled workflow had stopped producing the artifact I expected to see.&lt;/p&gt;

&lt;p&gt;Hermes maintenance means checking the layers around the model before you blame the model. The routine I use now is a set of cron-backed prompts that check memory, gateways, scheduled jobs, model IDs, and backups, then stop before they make changes that need approval.&lt;/p&gt;

&lt;p&gt;Most install guides skip this part because they get you to the first successful command, then leave you with a working AI control plane and no maintenance loop around it.&lt;/p&gt;

&lt;p&gt;Hermes feels like one system when it works, but it routes through models, memory, gateways, skills, cron jobs, provider keys, and local files, so the fault can sit in any one of those layers when the stack starts behaving strangely.&lt;/p&gt;

&lt;p&gt;And don't get me wrong, I've never had a single issue with the actual Hermes code compared with my time using OpenClaw, but I have had issues with models, providers, and third-party integrations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy6w2nyh15cqdagy72cz0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy6w2nyh15cqdagy72cz0.png" alt="Diagram showing the layers of an AI agent stack" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The model gets blamed first because it's the visible part of the stack, while the failure usually starts somewhere less obvious.&lt;/p&gt;

&lt;p&gt;This article is the maintenance routine I use now, rewritten as prompts you can hand to your agent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In this article:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;A maintenance routine you can run after Hermes is installed, so silent drift doesn't turn into a broken workflow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copy-paste cron-job prompts for daily, weekly, and monthly checks across memory, gateways, scheduled jobs, providers, and backups.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A simple approval rule that lets agents report problems without giving them permission to delete, update, rotate, restore, or rewrite anything.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A rollout path for turning maintenance into useful visibility instead of another noisy automation.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  After Hermes Install
&lt;/h2&gt;

&lt;p&gt;The first successful Hermes run can trick you into treating setup as finished before operations have even started. You connect a provider, configure the gateway, test memory, send a message through Telegram or the TUI, and watch Hermes answer with context from the project you care about.&lt;/p&gt;

&lt;p&gt;That moment is where the stack leaves the install guide and becomes something you have to run. Old configs can keep stale model names, scheduled jobs can miss their expected output, memory calls can slow down, and backups can look comforting until the first restore test fails.&lt;/p&gt;

&lt;p&gt;I treat those failures as normal infrastructure behavior because a control plane becomes trustworthy only after you can see whether its dependencies are still healthy.&lt;/p&gt;

&lt;p&gt;That lesson showed up during my &lt;a href="https://vibestacklab.substack.com/p/hermes-is-the-ai-agent-openclaw-promised" rel="noopener noreferrer"&gt;OpenClaw to Hermes migration&lt;/a&gt;, even though the migration itself went smoothly. The first week felt better because Hermes followed instructions more closely, kept memory behavior cleaner, and made the gateway setup feel less stitched together.&lt;/p&gt;

&lt;p&gt;The first problems were small enough to ignore in the moment but specific enough to matter later. An imported publishing skill failed because its YAML header was malformed, one environment variable was missing from the runtime, and token usage climbed while memory ingestion ran behind the workflow I was paying attention to.&lt;/p&gt;

&lt;p&gt;None of those problems killed the setup, but each one pointed at the same operational truth: the model is only one layer inside a wider system. I stopped treating maintenance as an occasional chore once I realized a scheduled prompt could check those layers before the next failure stole an afternoon.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cron Prompts Beat Commands
&lt;/h2&gt;

&lt;p&gt;The earlier version of this routine had shell commands sprinkled through the article because that was how I checked my own server. Commands are useful when your environment matches mine, but they don't travel cleanly across Windows, Linux, Docker, hosted runners, local agents, and the custom glue every serious stack accumulates over time.&lt;/p&gt;

&lt;p&gt;The official &lt;a href="https://hermes-agent.nousresearch.com/docs/" rel="noopener noreferrer"&gt;Hermes Agent docs&lt;/a&gt; are where I would start for setup details. This piece starts after setup, when the question changes from "Can Hermes run?" to "Can I trust this workflow tomorrow?"&lt;/p&gt;

&lt;p&gt;Prompts travel better because they describe the job instead of assuming the tool. A cron-backed agent can inspect logs, check timestamps, call a gateway, read a config file, compare recent output, or ask for approval using the tools available inside its own environment.&lt;/p&gt;

&lt;p&gt;If the maintenance prompt needs to reach outside Hermes, the same decision from &lt;a href="https://vibestacklab.substack.com/p/mcp-vs-cli-ai-agent-tools" rel="noopener noreferrer"&gt;When to Use MCPs, CLIs, or Your Own Tool&lt;/a&gt; applies here: use the smallest interface that can inspect the system cleanly without turning one check into a brittle integration project.&lt;/p&gt;

&lt;p&gt;A scheduled prompt still needs firm boundaries because a useful maintenance job names the layer being checked and asks for evidence before it reports confidence. The report should be readable at a glance, but the agent should refuse to delete, update, rotate, restore, or rewrite anything without approval.&lt;/p&gt;

&lt;p&gt;That boundary turns maintenance automation into a reporting system instead of a new source of damage. I want the agent to notice problems before I do while every irreversible action still comes back to me as a decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three Maintenance Layers
&lt;/h2&gt;

&lt;p&gt;My Hermes maintenance routine uses three layers that map cleanly to the way the stack fails: updates, cleanup, and health checks. Those labels keep the job concrete enough for a scheduled agent to report on the system without turning the prompt into a vague request to "check Hermes."&lt;/p&gt;

&lt;p&gt;This is the operational side of &lt;a href="https://vibestacklab.substack.com/p/the-30-hermes-stack-that-makes-claude" rel="noopener noreferrer"&gt;the $30 Hermes stack&lt;/a&gt;, because a cheaper and more flexible agent setup only stays useful if the layers around it keep working.&lt;/p&gt;

&lt;p&gt;The update layer asks whether something changed underneath the workflow while I was focused on using it. Providers rename models, preview routes become stale, plugins move, skills change formats, and memory backends update their APIs.&lt;/p&gt;

&lt;p&gt;The cleanup layer asks whether the stack has accumulated enough junk to start changing behavior. Logs grow, sessions pile up, cached files stick around, and memory keeps old context long after the project has moved on.&lt;/p&gt;

&lt;p&gt;The health-check layer answers the operational question before I start relying on the stack again. Before the workday starts, I want evidence that the gateway answers, the provider route works, scheduled jobs are producing output, and memory can retrieve a recent decision without timing out.&lt;/p&gt;

&lt;p&gt;The layers keep the routine small enough to survive a busy week without reducing the review to a shallow status ping. Maintenance disappears when it depends on a vague intention, while a scheduled job with named layers can keep running after the calendar gets crowded.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fve46zhfg591kvv135khs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fve46zhfg591kvv135khs.png" alt="Three maintenance layers diagram" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Daily Hermes Health Check Prompt
&lt;/h2&gt;

&lt;p&gt;The daily job should be boring enough that you can read it every morning without turning the start of the day into a debugging session. Its job is to tell you whether the stack is ready for work, then stop before it tries to repair anything.&lt;/p&gt;

&lt;p&gt;Use this as a read-only cron job near the start of the workday, then adapt the gateway name, job names, and project references to match your own setup.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create a Hermes cron job called "Daily Stack Pulse" that runs every morning at 8:00 local time, delivers to origin, and uses a cheap model (gemini-3.1-flash-lite via openrouter, or deepseek-v4-flash via opencode-go — pick whichever is configured). Restrict toolsets to terminal and web. Use this exact prompt body for the job:

---
Run a daily read-only Hermes stack pulse check. Make no changes: do not delete files, rotate keys, update packages, prune memory, restore backups, or rewrite configuration.

1. Gateway. Send or simulate one normal request through the Telegram gateway and confirm it responds.
2. Scheduled workflows. Run `hermes cron list` and inspect ~/.hermes/cron/output/ for the latest runs of jobs tagged or named for morning briefing, health summary, memory maintenance, publishing, client, or paid workflows. Confirm each ran inside its expected window.
3. Logs. Scan recent warnings and errors from the Hermes runner (~/.hermes/logs/), the model provider, the memory layer (hindsight), the gateway, and the scheduler.
4. Memory recall. Run one hindsight_recall query against an active project decision (use "All Agents Considered newsletter" or "Vibe Stack Lab library repo"). Report whether the result was relevant, stale, missing, or slow.

Return a short report with exactly these sections, one sentence per item:

PASS:
Healthy checks with evidence.

WARN:
Items needing attention later, with the layer named in parentheses.

FAIL:
Broken or missing items that block reliance on the stack today.

APPROVAL NEEDED:
Any action that would delete, update, rotate, restore, rewrite, prune, or change provider behavior. Name the action and layer. Do not execute.
---

After creating the job, run it once immediately so we can see the first report, then confirm the job ID and schedule.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The report matters more than the scheduler that happens to run it, as long as the result gives you enough evidence to trust or question the stack. You can run the prompt from cron, a recurring Hermes task, a hosted automation, a CI runner, or any agent runner that has permission to inspect the stack.&lt;/p&gt;

&lt;p&gt;I care most about evidence that the gateway answered, the important jobs ran, memory recall still works, and recent errors haven't turned into a pattern. Once the report names the failed layer, the next step becomes smaller because the investigation has a place to start.&lt;/p&gt;

&lt;h2&gt;
  
  
  Weekly AI Agent Drift Review Prompt
&lt;/h2&gt;

&lt;p&gt;My quiet cron failure is the reason I care more about weekly drift than a one-time setup checklist. A job definition sitting in a scheduler proved nothing once the Friday health-summary report stopped reaching Telegram.&lt;/p&gt;

&lt;p&gt;That is the same reason my &lt;a href="https://vibestacklab.substack.com/p/how-to-automate-your-morning-with" rel="noopener noreferrer"&gt;morning Hermes workflow&lt;/a&gt; checks visible output instead of trusting that a scheduled task exists somewhere in a config file.&lt;/p&gt;

&lt;p&gt;The weekly review looks for slow changes that don't announce themselves while normal work still appears to be moving. Disk pressure, stale output, growing logs, slow memory, and old model IDs rarely feel urgent while they are accumulating, but they become expensive once they pile up inside a broken workflow.&lt;/p&gt;

&lt;p&gt;Use this prompt near the end of the week, when the report can shape a short maintenance pass instead of interrupting deep work in the middle of a day.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create a Hermes cron job called "Weekly Drift Review" that runs every Sunday at 9:00 local time, delivers to origin, and uses a cheap model (gemini-3.1-flash-lite via openrouter, or deepseek-v4-flash via opencode-go — pick whichever is configured). Restrict toolsets to terminal and web. Use this exact prompt body for the job:

---
Run a weekly read-only Hermes drift review. Make no changes. If a fix is obvious, list it under RECOMMENDED ACTIONS or APPROVAL NEEDED but do not execute.

1. Storage growth. Measure size of ~/.hermes/logs/, ~/.hermes/sessions/, ~/.hermes/cache/, ~/.hermes/memory/, ~/.hermes/cron/output/, /tmp/hermes*, and any backup folder under ~/.hermes/. Compare to last week if a snapshot exists at ~/.hermes/cron/output/drift-snapshot.json. Save a fresh snapshot at that path after measuring. Flag any folder that grew more than 25 percent or crossed 1GB.

2. Scheduled jobs. Run `hermes cron list`. For each job, confirm it exists, has run inside its expected window, and produced a visible artifact in ~/.hermes/cron/output/ or the delivery channel. A job definition with no recent run counts as broken.

3. Memory recall. Run three hindsight_recall queries: one active project ("All Agents Considered newsletter"), one older project ("Build It #2 AI Code Review Agent"), one recent decision ("Vibe Stack Lab library repo"). Report each as accurate, stale, empty, or slow.

4. Provider and model config. Read ~/.hermes/config.yaml. Flag preview or dated model names (anything with -preview, -beta, dated suffixes, or matching known-deprecated IDs), fallback routes pointing at old IDs, and project-level overrides under ~/.hermes/profiles/*/config.yaml that diverge from the main config without obvious reason.

5. Logs. Scan the last 7 days of ~/.hermes/logs/ for repeated errors, retry loops, auth failures, timeouts, and missing-env-var messages. Group by layer (runner, provider, memory, gateway, scheduler).

Return a report with exactly these sections:

DRIFT:
Storage growth and configuration drift observed this week.

BROKEN:
Jobs, routes, providers, memory calls, or gateways that failed and need repair. Name the layer.

STALE:
Model IDs, project configs, skills, outputs, or memory entries that look outdated.

RECOMMENDED ACTIONS:
Small proposed fixes. For each: action, risk (low/med/high), expected benefit, approval needed (yes/no).

APPROVAL NEEDED:
Anything that changes files, deletes data, updates Hermes, rotates keys, changes providers, prunes memory, restores backups, or edits scheduled jobs. Do not execute.
---

After creating the job, run it once immediately so we can see the first report, then confirm the job ID and schedule.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That weekly prompt would have caught my quiet cron failure earlier because a cron entry sitting in a file doesn't prove the workflow is alive. The agent has to find the last run, the last output, or the last expected message before it claims the job is healthy.&lt;/p&gt;

&lt;p&gt;The same weekly review helps with memory issues because recall drift often feels like model weakness from the outside. When retrieval returns stale or empty context, the report should call that a memory-layer problem before anyone starts blaming generation quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Monthly Hermes Assumptions Review Prompt
&lt;/h2&gt;

&lt;p&gt;The monthly job checks whether the assumptions under the stack still hold after weeks of normal use. Provider behavior, model IDs, permissions, backups, and release notes deserve a slower review because mistakes in those layers can create bigger messes than a missed daily report.&lt;/p&gt;

&lt;p&gt;Run this one when you have enough time to read the report and decide what should change, because the monthly review is the one most likely to recommend actions that touch live state.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create a Hermes cron job called "Monthly Assumptions Review" that runs on the 1st of every month at 10:00 local time, delivers to origin, and uses a cheap model (gemini-3.1-flash-lite via openrouter, or deepseek-v4-flash via opencode-go — pick whichever is configured). Restrict toolsets to terminal, web, and file. Use this exact prompt body for the job:

---
Run a monthly read-only Hermes assumptions review. Make no changes: do not update Hermes, change providers, rotate keys, restore backups, prune memory, delete files, rewrite configs, or edit scheduled jobs.

1. External change summary. Check for changes that could affect this stack in the last ~30 days:
   - Hermes Agent: `cd ~/.hermes/hermes-agent &amp;amp;&amp;amp; git log --since="30 days ago" --oneline` and check release notes
   - Plugins and skills: list anything in ~/.hermes/plugins/ and ~/.hermes/skills/ modified in the last 30 days
   - Provider changes: scan OpenRouter and opencode-go model lists for renamed, deprecated, or newly preview-flagged IDs that match anything in ~/.hermes/config.yaml
   - Gateway, memory backend (hindsight), scheduler, and backup tool changelogs if accessible
   Summarize only changes relevant to this stack.

2. Provider and model ID audit. Grep every config layer for model IDs:
   - Main: ~/.hermes/config.yaml
   - Profiles: ~/.hermes/profiles/*/config.yaml
   - Cron jobs: ~/.hermes/cron/jobs.json
   - Skills referencing models: search_files for "model:" or model IDs under ~/.hermes/skills/
   - Scripts under ~/.hermes/scripts/
   - Env files: ~/.hermes/.env and any *.env
   Flag preview IDs (-preview, -beta, dated suffixes), known-deprecated IDs, missing fallbacks, and defaults that conflict between layers.

3. Health sweep. Quick check across:
   - Gateway response (one Telegram round-trip)
   - Provider reachability (one ping each to configured providers)
   - Memory recall (hindsight_recall on an active project)
   - Scheduler activity (hermes cron list plus recent output)
   - Storage headroom (df -h on ~/.hermes/ partition)
   - Backup completion (most recent backup artifact timestamp and size)
   - Key availability (env vars and 1Password references exist, not the values)
   - Permissions (~/.hermes/ ownership and mode)

4. Restore test. Pick one non-sensitive backup artifact under ~/.hermes/backups/ or wherever backups land. Copy to /tmp/hermes-restore-test/, inspect contents, confirm it opens and matches expectations. Do not overwrite live files. Delete the temp copy after inspection.

5. Approval-gate review. List every workflow (cron job, skill, plugin, script) that can delete files, prune memory, rotate keys, change providers, restore backups, update Hermes, edit configs, or send messages outside this workspace. For each, confirm whether it requires explicit approval or runs automatically.

Return a report with exactly these sections:

ASSUMPTIONS STILL VALID:
Operational assumptions that still look safe.

ASSUMPTIONS TO RECHECK:
Provider, memory, gateway, scheduler, backup, or permission assumptions that may have drifted. Name the layer.

RESTORE TEST:
Artifact inspected, safe location used, and result.

PROPOSED CHANGES:
Each with reason, risk (low/med/high), rollback notes, approval status.

APPROVAL NEEDED:
Every action that would modify the stack or touch live data. Name the action and layer. Do not execute.
---

After creating the job, run it once immediately so we can see the first report, then confirm the job ID and schedule.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I review provider model IDs here instead of waiting for a stale preview route to break under load. A fallback route in an old project config can keep calling yesterday's model even after the main Hermes provider has moved to the stable ID.&lt;/p&gt;

&lt;p&gt;The Hindsight timeout became confusing because the symptom pointed at the wrong layer. Hermes felt slow, I blamed the model, and the retrieval path had already burned the time before generation started.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fty1rrxm0rk53fjpioaz7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fty1rrxm0rk53fjpioaz7.png" alt="Diagram showing how agent failures originate from different layers" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Approval Gate for Maintenance Jobs
&lt;/h2&gt;

&lt;p&gt;Every scheduled maintenance job should carry the same approval rule because the boundary gets easy to forget after the first few reports look useful. Read-only inspection can run freely, while destructive or identity-changing work still needs a human decision.&lt;/p&gt;

&lt;p&gt;If you haven't built that habit yet, start with &lt;a href="https://vibestacklab.substack.com/p/how-to-add-approval-gates-to-your" rel="noopener noreferrer"&gt;the approval gate setup&lt;/a&gt; before you let a maintenance prompt touch files, providers, keys, or backups.&lt;/p&gt;

&lt;p&gt;Add this block to the end of every maintenance prompt that runs on a schedule, especially if the agent has access to files, keys, backups, provider settings, or outbound channels.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Approval rule for this maintenance job:

You may observe, inspect, summarize, classify, and recommend without asking first.

You must ask for approval before any action that deletes files, prunes memory, rotates keys, changes providers, restores backups, updates Hermes, edits configuration, changes scheduled jobs, rewrites prompts, sends external messages, or changes permissions.

When approval is needed, return a proposal with the issue, suggested action, expected benefit, risk level, affected files or systems, rollback notes, and the exact command or tool call you want to run.

If the risk is unclear, classify the action as approval needed and wait.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That rule keeps the maintenance agent useful without letting it become a cleanup bot with too much confidence. The agent can prepare the decision, but I still want to make the decision when live state changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quiet Agent Failures
&lt;/h2&gt;

&lt;p&gt;The failures that cost time are small enough to miss and specific enough to blame on the wrong thing. My cron failure didn't crash the stack because it stopped doing work in a corner I wasn't watching.&lt;/p&gt;

&lt;p&gt;The model ID drift behaved differently because the main provider setup looked current while an older route still pointed somewhere stale. The visible symptom showed up as slower Hermes responses and memory behavior that looked worse than it was.&lt;/p&gt;

&lt;p&gt;The Hindsight timeout changed how I diagnose agent slowness in every workflow that depends on memory. When an AI tool slows down, I check the retrieval chain before I blame the model because the model may be downstream from the delay.&lt;/p&gt;

&lt;p&gt;Maintenance doesn't prevent every failure, but it reduces the time spent accusing the wrong layer. Once you can name whether the issue sits in routing, memory, scheduling, storage, backup, skills, or config, the repair becomes less mysterious.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Roll Out the Routine
&lt;/h2&gt;

&lt;p&gt;I would start with one weekly maintenance job before adding daily and monthly jobs. Weekly reporting is frequent enough to catch drift, and a month of reports gives you enough signal to decide whether the daily pulse is worth the extra noise.&lt;/p&gt;

&lt;p&gt;Once the weekly report proves useful, add the daily pulse for the pieces you depend on most. My daily set covers gateway response, scheduled job output, memory recall, and provider reachability because those failures change whether I can trust the stack that morning.&lt;/p&gt;

&lt;p&gt;The monthly review should stay slower and more deliberate because updates, provider IDs, backup restores, and permission gates need more attention than a quick morning report can give them.&lt;/p&gt;

&lt;p&gt;Your stack may use different names, but the shape should stay the same. The scheduled agent observes the stack, reports the failed layer, proposes small actions, and stops before touching anything that could create real damage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure Limits
&lt;/h2&gt;

&lt;p&gt;Maintenance won't make the stack perfect, and the prompts shouldn't pretend they can. Provider outages, weak retrieval, bad project context, poor model fit, and bad release notes can still turn into manual work.&lt;/p&gt;

&lt;p&gt;The routine also leaves approval gates in place for every action that changes live state. If Hermes wants to prune memory, change providers, delete logs, rotate keys, restore a backup, or update itself, I still want to approve that action before it touches anything real.&lt;/p&gt;

&lt;p&gt;That boundary keeps the routine useful because the agent can notice problems before I do, while every action that changes the system comes back as a proposal I can read.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bottom Line
&lt;/h2&gt;

&lt;p&gt;Hermes feels like one system when it's working, but underneath it's a control plane sitting on top of models, memory, gateways, cron jobs, files, skills, providers, and backups. When one layer drifts, the whole experience gets worse even if the visible symptom looks like a slow model or a lazy agent.&lt;/p&gt;

&lt;p&gt;The maintenance loop keeps those layers visible through a daily pulse, a weekly drift review, and a monthly assumptions review. For most personal agent stacks, that rhythm is enough to know where to look when something breaks.&lt;/p&gt;

&lt;p&gt;Start with the weekly prompt and run it long enough to see whether the reports change your behavior. If the reports help you catch missed jobs, stale model IDs, slow memory, or backup gaps, add the daily pulse and monthly review around the same approval rule.&lt;/p&gt;

&lt;p&gt;The install guide gets Hermes running, and the maintenance loop is what keeps it worth trusting.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post was originally published on my Substack publication as &lt;a href="https://vibestacklab.substack.com/p/my-hermes-ai-agent-maintenance-routine" rel="noopener noreferrer"&gt;My Hermes AI Agent Maintenance Routine For Maximum Reliability&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>maintenance</category>
      <category>cron</category>
      <category>reliability</category>
    </item>
    <item>
      <title>I Tested 6 AI Plans to Find What $5, $10 and $20 Get You</title>
      <dc:creator>cucoleadan</dc:creator>
      <pubDate>Tue, 19 May 2026 14:10:55 +0000</pubDate>
      <link>https://dev.to/cucoleadan/i-tested-6-ai-plans-to-find-what-5-10-and-20-get-you-459k</link>
      <guid>https://dev.to/cucoleadan/i-tested-6-ai-plans-to-find-what-5-10-and-20-get-you-459k</guid>
      <description>&lt;p&gt;&lt;em&gt;This post was originally published on my Substack publication as &lt;a href="https://vibestacklab.substack.com/p/i-tested-6-ai-plans-to-find-what" rel="noopener noreferrer"&gt;I Tested 6 AI Plans to Find What $5, $10 and $20 Get You&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A little while ago, I built a multi-step workflow in Hermes to generate a ten-page report that would get stronger each time it passed through the document. It checked the latest news, then read through Reddit threads, then cross-checked with X and also read through a bunch of internal documents.&lt;/p&gt;

&lt;p&gt;For most of the run, it worked the way I wanted, and Hermes kept moving the file forward while pulling in the context it needed and holding onto the thread of the job.&lt;/p&gt;

&lt;p&gt;By the time it reached the last stage, somewhere around the fourteenth tool call, it already had the material it needed and only had to stay coherent long enough to verify the details and write the final section cleanly into the file.&lt;/p&gt;

&lt;p&gt;Then it just stopped in the middle of the edit. It retried enough times to trigger a context reduction right when the report needed the fullest possible view of everything that had already happened. The fact that I had to step back in and rebuild the whole thread was extremely annoying and the reason why I decided to write this article.&lt;/p&gt;

&lt;p&gt;That was also the moment I started focusing on reliability rather than judging AI plans by the model menu.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7acmpk52gptsgwxlzc2r.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7acmpk52gptsgwxlzc2r.jpeg" alt="AI subscription pricing pages showing plan tiers at $5, $10, and $20 per month" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pricing pages encourage you to compare plans by the names they advertise, but Hermes forces a more practical question, which is whether a plan can carry real work through a messy session without handing it back to you halfway through.&lt;/p&gt;

&lt;p&gt;Once I started looking at plans that way, I cared a lot less about whether a subscription included a famous model and a lot more about whether Hermes could finish the work before my own attention became the most expensive part of the workflow.&lt;/p&gt;

&lt;p&gt;I have paid for enough AI accounts to know how misleading a low sticker price can be. A five-dollar plan stops feeling cheap the moment it burns an hour of focused work.&lt;/p&gt;

&lt;p&gt;Not to mention that most twenty-dollar plans might feel like they come with extra usage compared to their cheap alternatives, but that is not usually the case. Looking at you, Anthropic.&lt;/p&gt;

&lt;p&gt;That's the frame for this piece, because I rechecked the official pricing pages on May 19, 2026, and I want to show you these prices through an AI agent lens rather than focusing on their sales copy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In this article:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Why model names and benchmark scores are the wrong way to judge an AI plan&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How one $5 plan became my daily driver after I fixed my routing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Why the $10 tier is where most plans start to make real sense&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What the big brand names ($20 tier) actually limit once you push them&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Where plans break mid-session and how cost per useful hour flips the math&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The exact stack I would buy today and which plans I would skip&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The One Test That Picks Winners
&lt;/h2&gt;

&lt;p&gt;Benchmarks tell you how a model performs in isolation, but Hermes shows you something much harder to fake, which is whether a plan stays useful once the session fills with tool calls, file reads, and the usual clutter that comes with trying to finish real work.&lt;/p&gt;

&lt;p&gt;My test now feels much simpler than any leaderboard, because all I really have to do is give Hermes one job from a normal week and watch how much of my own attention it gives back to me by the end.&lt;/p&gt;

&lt;p&gt;If Hermes gets to a result I can keep, the plan earns its place. If the session breaks, the model loses the thread, or I have to step back in for cleanup, the plan gets more expensive no matter how cheap the subscription looked when I bought it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnmzlibypkqt9q1fbb477.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnmzlibypkqt9q1fbb477.jpeg" alt="Hermes agent running a multi-step workflow with tool calls and file reads" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  $5: Where Most People Get It Wrong
&lt;/h2&gt;

&lt;p&gt;The five-dollar tier starts with &lt;strong&gt;OpenCode Go&lt;/strong&gt;, and it stands out immediately as it's the only subscription I found that gives you a real first month instead of a throwaway trial.&lt;/p&gt;

&lt;p&gt;Right now, OpenCode Go is $5 for the first month and $10 after that, and it works in Hermes by default, which matters because it feels like a provider route built for agents instead of a chat plan stretched into agent work after the fact.&lt;/p&gt;

&lt;p&gt;What changed my view of this plan is that it did not stay a cheap side route for long. It became my daily driver, even during the stretch when I was still paying for three subscriptions just to keep up with my usage.&lt;/p&gt;

&lt;p&gt;At the time, the real problem was not the plan itself but the way I was using it, because I kept pushing the same model through every kind of Hermes task and expecting it to behave well no matter what the work looked like.&lt;/p&gt;

&lt;p&gt;For a while I ran Qwen 3.6 Plus for almost everything, and that worked badly enough that I ended up compensating with more subscriptions instead of better routing.&lt;/p&gt;

&lt;p&gt;The setup only started to make sense once I matched the model to the job, with DeepSeek V4 Flash and V4 Pro taking most of the regular Hermes work while Gemini 3.1 Flash Lite via OpenRouter handled image analysis more cleanly than the routes I had been forcing before.&lt;/p&gt;

&lt;p&gt;OpenCode Go became much more useful once I stopped treating one model like a universal answer and started treating the plan like a &lt;a href="https://vibestacklab.substack.com/p/how-to-use-claude-code-for-free-with" rel="noopener noreferrer"&gt;routing layer&lt;/a&gt; for different kinds of work.&lt;/p&gt;

&lt;p&gt;I still think the five-dollar month is the right place to learn this lesson, since it is cheap enough to experiment with and real enough to show you very quickly whether your workflow is efficient or just patched together.&lt;/p&gt;

&lt;h2&gt;
  
  
  $10: The Real Starting Line
&lt;/h2&gt;

&lt;p&gt;The $10 tier is where most of these plans start to feel normal, since the $5 and sub-$5 options are mostly gone now outside of special promos.&lt;/p&gt;

&lt;p&gt;That is also the first tier I would take seriously for regular Hermes use.&lt;/p&gt;

&lt;p&gt;After the first month, OpenCode Go lands here at its regular price, and &lt;strong&gt;MiniMax Token Plan Starter&lt;/strong&gt; shows up at the same $10 with 1,500 M2.7 requests every 5 hours.&lt;/p&gt;

&lt;p&gt;On paper, that sounds like a clean comparison. In practice, I care much less about the headline limits and much more about what the workflow feels like once Hermes is doing the work.&lt;/p&gt;

&lt;p&gt;MiniMax Starter gives you a dedicated M2.7 bucket, which is useful if you already know that model is good enough for most of your week and you want limits that are easy to reason about.&lt;/p&gt;

&lt;p&gt;OpenCode Go works differently, since it gives you a shared routing budget across several model families, and that can look better or worse depending on what kind of week you're having.&lt;/p&gt;

&lt;p&gt;If you mostly run MiniMax M2.7 through Go, the published estimates are higher at around 3,400 M2.7 requests every 5 hours for the same monthly price, so it can look cheaper than MiniMax Starter on raw throughput alone.&lt;/p&gt;

&lt;p&gt;Still, that is not what would decide it for me.&lt;/p&gt;

&lt;p&gt;I would judge the whole tier by loop quality more than by the model list or benchmarks. Sometimes I hit 503 errors on Qwen 3.6 Plus through OpenCode Go, and other times the tokens per second I got through Go were clearly better than what I was getting from MiniMax directly. &lt;em&gt;And I absolutely hate it to wait for AI to answer. I'd rather have a faster model than a smarter model, but that's just personal preference.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What matters most to me is whether it keeps moving after the first answer, uses tools cleanly, and keeps its replies short enough that the session stays readable while the work is still in progress.&lt;/p&gt;

&lt;h2&gt;
  
  
  $20: Brands You Know, Limits You Don't
&lt;/h2&gt;

&lt;p&gt;The $20 tier is where the familiar companies start showing up.&lt;/p&gt;

&lt;p&gt;OpenAI and Anthropic are the obvious ones, because they are the subscriptions most people already know. Ollama belongs in the same conversation for a different reason, as it's one of the few open-model companies that already feels big enough to sell a hosted plan without sounding like a side project.&lt;/p&gt;

&lt;p&gt;That matters because this tier is not only about extra usage. It is also about how much trust people attach to the company behind the plan, and whether that trust survives contact with the actual limits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ChatGPT Plus&lt;/strong&gt; is the default benchmark. OpenAI lists Plus at $20 per month, says it gives higher GPT-5.5 limits inside ChatGPT, and keeps API usage separate from the subscription.&lt;/p&gt;

&lt;p&gt;You can count Plus in the real stack because Hermes supports &lt;strong&gt;OpenAI Codex&lt;/strong&gt; through ChatGPT OAuth, but the plan still buys ChatGPT access rather than API credit. The limit story is also less generous than the branding makes it feel. OpenAI says Plus users can send up to 160 GPT-5.5 messages every 3 hours, and manual GPT-5.5 Thinking has a weekly limit of up to 3,000 messages. That is fine for normal chat use. It starts looking smaller once you lean on it harder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude Pro&lt;/strong&gt; has the same advantage and the same problem. Anthropic is a big enough name that people do not need much convincing to try the plan, and Claude is useful enough that plenty of people will keep paying for it anyway. The issue is that the limits are nowhere close to generous for heavy use.&lt;/p&gt;

&lt;p&gt;It's just easy to run into the ceiling faster than the $20 price tag suggests, especially once you lean on Sonnet for real work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ollama Cloud Pro&lt;/strong&gt; is more interesting to me because it is not trying to be ChatGPT or Claude. Ollama lists Pro at $20 per month or $200 per year, with larger cloud models, 50x more cloud usage than Free, and three concurrent cloud models.&lt;/p&gt;

&lt;p&gt;That sounds strong until you compare how the limit story is presented next to &lt;strong&gt;OpenCode Go&lt;/strong&gt;. OpenCode Go tells you the five-hour, weekly, and monthly caps directly, including a monthly ceiling of $60. Ollama tells you usage is mostly GPU time, gives you five-hour and weekly resets, and lets you run three cloud models at once, but it does not spell out a monthly limit on the pricing page. That makes the plan harder to reason about.&lt;/p&gt;

&lt;p&gt;The three-model ceiling also matters more in Hermes than it would in a normal chat app. If you mostly run one agent at a time, it probably feels fine. If you like concurrent agents, background runs, or separate research and writing loops happening together, three can start feeling smaller than the headline suggests.&lt;/p&gt;

&lt;p&gt;So yes, Ollama Pro looks good. It is just not automatically better than Go once you care about legibility, concurrency, and what the plan looks like &lt;a href="https://vibestacklab.substack.com/p/the-30-hermes-stack-that-makes-claude" rel="noopener noreferrer"&gt;over a full month&lt;/a&gt; instead of over a good afternoon.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nous Portal Plus&lt;/strong&gt; is less mainstream than OpenAI, Anthropic, or Ollama, but it still deserves the slot because it fits Hermes more naturally than most of the bigger brands. Nous lists Plus at $20 per month with 300+ models, hosted tool usage, and $22 in monthly credits with rollover. I felt that I should include this because they are the team who created Hermes after all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MiniMax Token Plan Plus&lt;/strong&gt; is still the simplest volume play. MiniMax lists Plus at $20 per month with 4,500 M2.7 requests every 5 hours plus speech and image quotas. If M2.7 already works for your Hermes load, that is a very direct way to buy more room.&lt;/p&gt;

&lt;p&gt;Those are not the same thing, and the difference only shows up once Hermes starts leaning on the plan instead of just chatting through it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Plans Hit the Wall
&lt;/h2&gt;

&lt;p&gt;Hermes exposes plan limits in the middle of real work instead of at the edge of a chat.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxbdlfhirfc382ttgoksk.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxbdlfhirfc382ttgoksk.jpeg" alt="AI plan limit reached notification during an active agent session" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A chat cap is annoying when you are asking questions. The same cap inside Hermes can land in the middle of a file edit, a research loop, or a tool run that was finally starting to cohere. Then you lose more than a reply. You lose the state of the job and pay for it again in the next session.&lt;/p&gt;

&lt;p&gt;Fallback models create a quieter version of the same mess. A session starts on one route and ends on another, and you can feel it even before you check the model picker. Instruction following gets softer. The agent stops being careful with the same tool path it was following ten minutes earlier.&lt;/p&gt;

&lt;p&gt;Tool use is still the cleanest divider for me. A model can sound impressive in a chat window and still be weak inside an agent loop. If it avoids reading files, skips verification, or acts allergic to tools, I do not care how good the brand or benchmark looks. The less glamorous route that checks its work often finishes more jobs per dollar.&lt;/p&gt;

&lt;p&gt;Memory changes the value of a plan too. Hermes only starts to feel useful once it can carry a project forward across sessions. If the provider leaves you with a morning reset, the agent never really joins the work. It just keeps reintroducing itself.&lt;/p&gt;

&lt;p&gt;That is also why the &lt;a href="https://vibestacklab.substack.com/p/hermes-is-the-ai-agent-openclaw-promised" rel="noopener noreferrer"&gt;OpenClaw to Hermes migration&lt;/a&gt; mattered so much to me. I was not looking for a smarter chat app. I wanted something that could keep the work moving without making me rebuild the thread every time.&lt;/p&gt;

&lt;p&gt;Latency has its own cost. A slow model is fine for overnight cleanup or background chores. It gets expensive the moment you are thinking with the agent in real time and waiting for the next useful move.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Only Math That Matters
&lt;/h2&gt;

&lt;p&gt;The metric I keep coming back to is cost per useful Hermes hour.&lt;/p&gt;

&lt;p&gt;I like it because it is boring enough to be honest.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cost per useful hour = monthly plan cost / Hermes hours that ended in usable work
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If a $5 plan gives you ten clean background hours, it is excellent.&lt;/p&gt;

&lt;p&gt;If that same plan burns one focused afternoon because Hermes stalls in the fragile part of the job, the cheap price was fake.&lt;/p&gt;

&lt;p&gt;A $20 plan can still be the cheaper one if it finishes the sessions you would otherwise have to rescue.&lt;/p&gt;

&lt;p&gt;I would not build a dashboard for this. &lt;a href="https://vibestacklab.substack.com/p/how-to-automate-your-morning-with" rel="noopener noreferrer"&gt;One line in your notes&lt;/a&gt; after each session is enough. Write down the plan, the job, and whether Hermes finished without babysitting.&lt;/p&gt;

&lt;p&gt;After a week, the pattern usually gets obvious. OpenCode Go might end up doing the background work. MiniMax might carry more of the daily load than you expected. Nous might keep its place because the tool gateway removes setup friction. Ollama might stay as the open-model cloud route. ChatGPT and Claude might remain in the stack because they are still where you think best before sending the work back into Hermes.&lt;/p&gt;

&lt;p&gt;That is enough to make the decision. The goal is to stop paying for subscriptions without knowing what job each one is there to do.&lt;/p&gt;

&lt;h2&gt;
  
  
  Here Is What I Would Buy
&lt;/h2&gt;

&lt;p&gt;If I were rebuilding this stack today, I would still start with OpenCode Go and give it the boring work first.&lt;/p&gt;

&lt;p&gt;That is the cheapest place to learn whether the workflow is efficient or just being propped up by extra subscriptions.&lt;/p&gt;

&lt;p&gt;I would keep fragile sessions away from it until it earned trust. Cleanup, first-pass research, low-risk drafts, and the kind of work that is useful when it lands but not painful if it misfires.&lt;/p&gt;

&lt;p&gt;Once the first month ended, I would treat the $10 tier like the real test. OpenCode Go at full price and MiniMax Starter both deserve a normal week before I let a $20 brand into the stack on reputation alone.&lt;/p&gt;

&lt;p&gt;After that, I would only pay for a $20 plan if I knew exactly &lt;a href="https://vibestacklab.substack.com/p/how-to-add-approval-gates-to-your" rel="noopener noreferrer"&gt;why it was there&lt;/a&gt;. ChatGPT Plus belongs if the ChatGPT or Codex lane matters enough to keep. Claude Pro belongs if Claude is still where the best writing or dev work happens, even with the limits. Nous sits closest to native Hermes work. Ollama Pro belongs if I want the open-model cloud lane and can live with the three-model ceiling. MiniMax Plus is the straightforward volume upgrade if M2.7 is already carrying real work.&lt;/p&gt;

&lt;p&gt;That is less satisfying than picking one winner. It is also closer to how the work behaves.&lt;/p&gt;

&lt;p&gt;Different jobs deserve different routes. Background chores do not need the same plan as the sessions where one bad restart can waste half an afternoon.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bottom Line
&lt;/h2&gt;

&lt;p&gt;The cheapest AI plan is the one that gives Hermes work you would keep.&lt;/p&gt;

&lt;p&gt;A $5 route is great when it clears background noise. A $10 route is where I would test daily Hermes usage. A $20 route only earns its place when it gives you something the cheaper paths do not, whether that is better fit, clearer limits, or a route you trust enough to use for harder work.&lt;/p&gt;

&lt;p&gt;The wrong plan steals focus at any price.&lt;/p&gt;

&lt;p&gt;Before you buy another subscription, look at your last ten Hermes sessions. Mark the ones that ended in usable work. Mark the ones you had to rescue. Then ask which plan helped the work move forward and which one only looked cheap on the invoice.&lt;/p&gt;

&lt;p&gt;That becomes the buying decision.&lt;/p&gt;

&lt;p&gt;I would rather pay for one route that finishes the work than keep juggling three subscriptions that still need me to manage them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Source Notes
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;&lt;a href="https://opencode.ai/go" rel="noopener noreferrer"&gt;OpenCode Go&lt;/a&gt; lists the $5 first month and the $10 monthly price after that. The page also covers any-agent use and current request allowances.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;a href="https://help.openai.com/en/articles/6950777-chatgpt-plus-" rel="noopener noreferrer"&gt;ChatGPT Plus&lt;/a&gt; lists $20 per month, app-level Plus benefits, and the note that API usage is billed separately. &lt;a href="https://openai.com/api/pricing/" rel="noopener noreferrer"&gt;OpenAI API pricing&lt;/a&gt; lists GPT-5.5 and GPT-5.4 token pricing outside ChatGPT subscriptions.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;a href="https://ollama.com/pricing" rel="noopener noreferrer"&gt;Ollama Cloud pricing&lt;/a&gt; lists Pro at $20 per month or $200 per year. The same page covers three concurrent cloud models and usage measurement based mainly on GPU time.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;a href="https://portal.nousresearch.com/manage-subscription" rel="noopener noreferrer"&gt;Nous Portal&lt;/a&gt; lists Plus at $20 per month with 300+ models and hosted tool usage. It also lists the $22 monthly credits and rollover rules.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;a href="https://support.claude.com/en/articles/8325606-what-is-the-pro-plan" rel="noopener noreferrer"&gt;Claude Pro&lt;/a&gt; lists Pro usage behavior and resets, while &lt;a href="https://platform.claude.com/docs/en/about-claude/pricing" rel="noopener noreferrer"&gt;Anthropic API pricing&lt;/a&gt; lists Claude API prices separately from Pro.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;a href="https://platform.minimax.io/docs/guides/pricing-token-plan" rel="noopener noreferrer"&gt;MiniMax Token Plan&lt;/a&gt; lists Starter at $10 per month with 1500 M2.7 requests per 5 hours and Plus at $20 per month with 4500 M2.7 requests per 5 hours.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;a href="https://hermes-agent.nousresearch.com/docs/integrations/providers" rel="noopener noreferrer"&gt;Hermes AI Providers&lt;/a&gt; lists the relevant provider paths for Nous Portal and OpenAI Codex. It also covers OpenCode Go and Anthropic.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>plans</category>
      <category>hermes</category>
      <category>stack</category>
    </item>
  </channel>
</rss>
