<?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>Forem: Soham Patel</title>
    <description>The latest articles on Forem by Soham Patel (@100hum_patel).</description>
    <link>https://forem.com/100hum_patel</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3834035%2F1bab3493-4c18-4767-a41d-7bf2db009aa3.png</url>
      <title>Forem: Soham Patel</title>
      <link>https://forem.com/100hum_patel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/100hum_patel"/>
    <language>en</language>
    <item>
      <title># OpenClaw for Non-Developers: Automating Real Personal Pain Points</title>
      <dc:creator>Soham Patel</dc:creator>
      <pubDate>Tue, 21 Apr 2026 01:11:06 +0000</pubDate>
      <link>https://forem.com/100hum_patel/-openclaw-for-non-developers-automating-real-personal-pain-points-5eo0</link>
      <guid>https://forem.com/100hum_patel/-openclaw-for-non-developers-automating-real-personal-pain-points-5eo0</guid>
      <description>&lt;p&gt;I want to talk to the person who isn't a developer.&lt;/p&gt;

&lt;p&gt;The founder who has seventeen tabs open and still can't remember what they decided in last Tuesday's meeting. The healthcare professional who spends forty minutes after every shift on documentation that isn't patient care. The small business owner who knows they should be posting content consistently but hasn't figured out how to clone themselves.&lt;/p&gt;

&lt;p&gt;Every AI article written in the last two years has been written by developers, for developers. The examples involve GitHub repos, API keys, and terminal windows. The implicit message is: &lt;em&gt;if you can't code, the good stuff isn't for you.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;OpenClaw is quietly making that assumption obsolete. And almost nobody is talking about what that actually means for normal humans.&lt;/p&gt;




&lt;h2&gt;
  
  
  What OpenClaw Gets Right That Everything Else Gets Wrong
&lt;/h2&gt;

&lt;p&gt;Before I show you what I built, let me explain the philosophical thing that most tools miss — because it's the reason this works for non-developers in a way that nothing before it has.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It lives where you already are.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every other automation tool requires you to go somewhere new. You log into Zapier. You open Notion. You launch the app. There's a new interface to learn, a new mental model to adopt, a new habit to build on top of the hundred habits you already have.&lt;/p&gt;

&lt;p&gt;OpenClaw lives in your existing conversation. You don't open a new app. You don't switch context. You just talk — the same way you'd message a colleague — and your skills activate in the background.&lt;/p&gt;

&lt;p&gt;That sounds like a small thing. It is not a small thing. Habit change is the hardest part of any productivity system. OpenClaw sidesteps the habit problem entirely by attaching to behavior you already have.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You own your data. Completely.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the part that should matter more to people than it currently does. When you paste your medical notes, your financial receipts, your personal calendar into a cloud AI tool, that data goes somewhere. It trains something. It lives on a server you don't control.&lt;/p&gt;

&lt;p&gt;OpenClaw runs locally. Your expense data, your health logs, your client information — none of it leaves your machine unless you explicitly send it somewhere. For a healthcare professional, this isn't a philosophical preference. It's a compliance requirement. For a founder, it's competitive intelligence protection. For everyone else, it's just the basic dignity of keeping your personal life personal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skills are just instructions, not code.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the unlock that most people miss. A "skill" in OpenClaw isn't a program you write. It's a set of instructions you give in plain English. If you've ever written a detailed Slack message explaining a process to a new hire, you already know how to write an OpenClaw skill.&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%2Fx18s6u9g8bws3jk5sq85.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%2Fx18s6u9g8bws3jk5sq85.png" alt=" " width="800" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Three Skills I Actually Use — No Code Required
&lt;/h2&gt;

&lt;p&gt;I live in Del Mar, California. I'm going to show you exactly what I built, why I built it, and what my life looked like before versus after. These are real workflows, not theoretical examples.&lt;/p&gt;




&lt;h3&gt;
  
  
  Skill 1: The Receipt Wrangler (Expense Tracker)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The before:&lt;/strong&gt;&lt;br&gt;
Del Mar has incredible farmers markets, great local restaurants, and approximately one billion opportunities to spend money in ways that feel small in the moment and catastrophic at the end of the month. I was forwarding receipts to a folder I never checked, manually entering things into a spreadsheet I updated twice a year, and having the same anxious conversation with myself every time I opened my banking app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I built:&lt;/strong&gt;&lt;br&gt;
A skill called Receipt Wrangler. The workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I forward any receipt email — restaurant, grocery, Amazon, anything — directly into my OpenClaw conversation&lt;/li&gt;
&lt;li&gt;The skill extracts: amount, merchant, category, date&lt;/li&gt;
&lt;li&gt;It appends to a running monthly log&lt;/li&gt;
&lt;li&gt;Every Sunday morning, it sends me a three-line summary: total spent, biggest category, one observation ("you've spent 40% of your dining budget by day 12 of the month")&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Sunday summary is the part that changed my behavior. Not because it judged me — it doesn't — but because I stopped being surprised. Surprise is what makes financial anxiety worse. When you know where you are, you make different decisions in real time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The skill instructions (plain English, no code):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;When I paste or forward a receipt or purchase confirmation:
1. Extract: merchant name, amount, date, and best-guess category 
   (Dining, Groceries, Transport, Subscriptions, Shopping, Health, Other)
2. Add it to my monthly expense log in this format:
   Date | Merchant | Amount | Category
3. If the same category has now exceeded $X this month, flag it.
4. Every time I type "weekly summary," give me:
   - Total spent this month so far
   - Top spending category
   - One observation about my spending pattern
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's the whole skill. No API. No spreadsheet integration. No Zapier workflow. Just instructions.&lt;/p&gt;




&lt;h3&gt;
  
  
  Skill 2: The Content Pipeline
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The before:&lt;/strong&gt;&lt;br&gt;
I know I should be sharing ideas online consistently. I have thoughts. I have opinions. What I don't have is the three-hour block it used to take me to go from "I have an idea" to "this is published and I'm not embarrassed by it."&lt;/p&gt;

&lt;p&gt;The bottleneck wasn't writing. It was the gap between the messy first draft and the clean final version — all the steps in between that I kept skipping because each one felt like a separate task.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I built:&lt;/strong&gt;&lt;br&gt;
A four-stage content pipeline, all inside OpenClaw. I call it Idea → Draft → Attack → Post.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 1: Research Dump&lt;/strong&gt;&lt;br&gt;
I voice-memo or type a raw brain dump of the idea. Doesn't need to be coherent. "I want to write something about how the Del Mar racetrack's summer season changes local traffic patterns and what that means for remote workers who commute to San Diego occasionally — there's something there about how local rhythm affects productivity."&lt;/p&gt;

&lt;p&gt;The skill turns this into a structured outline with three possible angles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 2: Draft&lt;/strong&gt;&lt;br&gt;
I pick an angle. The skill drafts a 600-word version. I edit it like a human — badly, quickly, without overthinking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 3: Contrarian Review&lt;/strong&gt;&lt;br&gt;
This is where I feed the draft to the adversarial loop I described in a previous post. The skill attacks the draft: weak claims, unsupported assumptions, places where I'm being vague to avoid saying something specific. I revise.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 4: Polish &amp;amp; Format&lt;/strong&gt;&lt;br&gt;
Final pass. The skill checks for: sentences over 25 words (split them), passive voice (flag it), and whether the opening sentence would make someone stop scrolling. It also formats for whatever platform I'm posting to.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What changed:&lt;/strong&gt;&lt;br&gt;
I went from posting maybe once a month to posting twice a week. Not because I have more time — I don't. But because each stage is its own small task, and small tasks don't require three-hour blocks. I do Stage 1 on a walk on the beach. Stage 2 takes twenty minutes. Stages 3 and 4 are another twenty. It's the same total effort. It's just not a monolith anymore.&lt;/p&gt;




&lt;h3&gt;
  
  
  Skill 3: The Del Mar Event Radar
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The before:&lt;/strong&gt;&lt;br&gt;
There's always something happening in Del Mar and the surrounding area — the racetrack season, farmer's markets, beach events, restaurant weeks, community meetings. I found out about most of them after they happened, usually from someone who assumed I already knew.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I built:&lt;/strong&gt;&lt;br&gt;
A weekly digest skill. Every Monday I paste a list of links or text from local event sites (I pull from the Del Mar Village Association newsletter, the racetrack calendar, and two community Facebook groups). The skill:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Extracts event names, dates, locations, and a one-line description&lt;/li&gt;
&lt;li&gt;Filters based on my preferences (outdoor, family-friendly, food-related — I told it this once, it remembers)&lt;/li&gt;
&lt;li&gt;Returns a clean, scannable digest ranked by "likely to actually go"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The ranking is the part I like most. It's not alphabetical, not chronological — it's based on criteria I defined: proximity, whether it's something I've expressed interest in before, and whether it's a recurring event I've already attended (deprioritize) or a new one (prioritize).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time saved per week:&lt;/strong&gt; About 45 minutes of scattered tab-hopping replaced by a 3-minute Monday morning scan.&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%2Fn4rxsn3hu9ztj3rkxow7.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%2Fn4rxsn3hu9ztj3rkxow7.png" alt=" " width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Before/After That Actually Matters
&lt;/h2&gt;

&lt;p&gt;I want to be direct about something, because most productivity writing isn't.&lt;/p&gt;

&lt;p&gt;None of these skills made me a different person. I still overspend on dining. I still have drafts I never finish. I still miss local events I would have loved.&lt;/p&gt;

&lt;p&gt;What changed is the &lt;strong&gt;friction cost&lt;/strong&gt; of staying on top of things I actually care about. The effort required to know where my money is going dropped from "requires a dedicated Sunday afternoon" to "two minutes on any Sunday." The effort required to publish an idea dropped from "needs a three-hour window I never have" to "four small tasks I can do across a normal day."&lt;/p&gt;

&lt;p&gt;Lower friction doesn't transform behavior. But it makes the behavior you already want to have actually achievable for the human you actually are — not the idealized, infinitely-disciplined version of yourself you keep planning for.&lt;/p&gt;

&lt;p&gt;That's the real value proposition of OpenClaw for non-developers. Not that it makes you superhuman. That it stops requiring you to be.&lt;/p&gt;




&lt;p&gt;You don't need to understand this to use OpenClaw. But if you've ever&lt;br&gt;
wondered why skills work the way they do — here's the honest explanation.&lt;/p&gt;

&lt;p&gt;When you define a skill, you're writing a &lt;strong&gt;system prompt&lt;/strong&gt; — a persistent&lt;br&gt;
set of instructions that sits above every conversation involving that skill.&lt;br&gt;
Think of it as the job description your AI reads before it responds to anything&lt;br&gt;
you say.&lt;/p&gt;

&lt;p&gt;The reason plain English works is because modern LLMs are instruction-followers&lt;br&gt;
at their core. The gap between "write code to parse a receipt" and "extract the&lt;br&gt;
merchant, amount, and date from whatever I paste" is mostly a gap in how we&lt;br&gt;
&lt;em&gt;frame&lt;/em&gt; the task — not a gap in capability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where it gets interesting: context and memory&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;OpenClaw skills are stateless by default. Every conversation starts fresh.&lt;br&gt;
This is actually a privacy feature — nothing persists unless you explicitly&lt;br&gt;
tell it to. But it means your "expense log" skill isn't storing a database&lt;br&gt;
somewhere. It's reconstructing context from whatever you paste into the&lt;br&gt;
conversation.&lt;/p&gt;

&lt;p&gt;This has an important implication: &lt;strong&gt;the quality of your skill is directly&lt;br&gt;
proportional to the quality of your input formatting.&lt;/strong&gt; A messy paste gets&lt;br&gt;
a messy output. A structured paste — even just consistent line breaks —&lt;br&gt;
dramatically improves reliability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skill chaining is where the real power is&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Content Pipeline I described isn't one skill — it's four skills running&lt;br&gt;
in sequence, each one's output becoming the next one's input. This is called&lt;br&gt;
&lt;strong&gt;skill chaining&lt;/strong&gt;, and it's the architectural pattern that separates useful&lt;br&gt;
automations from party tricks.&lt;/p&gt;

&lt;p&gt;The pattern looks like this:&lt;/p&gt;

&lt;p&gt;Raw Input → Skill A (structure it) → Skill B (transform it) &lt;br&gt;
  → Skill C (critique it) → Skill D (format it) → Output&lt;/p&gt;

&lt;p&gt;Each skill is simple and single-purpose. The intelligence lives in the&lt;br&gt;
sequence, not in any individual step. This is the same architectural&lt;br&gt;
principle behind Unix pipes — small tools that do one thing well,&lt;br&gt;
composed into something powerful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why local-first changes the threat model&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cloud AI tools operate on a simple tradeoff: convenience for data access.&lt;br&gt;
Your inputs train their models, improve their products, and live on their&lt;br&gt;
infrastructure.&lt;/p&gt;

&lt;p&gt;Local-first inverts this. The model runs on your machine. Your inputs go&lt;br&gt;
nowhere. The tradeoff is reversed: slightly more setup for complete data&lt;br&gt;
sovereignty.&lt;/p&gt;

&lt;p&gt;For a healthcare professional pasting patient notes, or a founder pasting&lt;br&gt;
competitive strategy — that tradeoff isn't even a question. Local-first&lt;br&gt;
isn't a preference. It's the only acceptable architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Build Your First Skill in 15 Minutes
&lt;/h2&gt;

&lt;p&gt;If you've read this far and you're not a developer, here's exactly how to start:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Install OpenClaw and get through the basic setup (their getting started guide is genuinely good — 10 minutes).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Think of one thing you do repeatedly that follows a pattern. Forwarding receipts. Summarizing meeting notes. Researching before making a purchase. Anything with inputs and a predictable output.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Write the skill as if you're explaining the task to a smart assistant on their first day. Be specific about inputs, outputs, and format. Don't use technical language — use the language you'd use in a text message.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Test it once with a real example. Adjust the instructions until the output is what you actually wanted.&lt;/p&gt;

&lt;p&gt;That's it. You just built a skill.&lt;/p&gt;

&lt;p&gt;The only thing standing between you and a personal AI that actually fits your life is twenty minutes and the willingness to describe what you already do in plain English.&lt;/p&gt;




&lt;h2&gt;
  
  
  What OpenClaw Gets Right About Where Personal AI Is Headed
&lt;/h2&gt;

&lt;p&gt;There's a version of personal AI that looks like the movie version: a sleek assistant with a voice interface that manages your entire life and knows what you want before you ask.&lt;/p&gt;

&lt;p&gt;That version requires trust you probably shouldn't extend to any single platform yet — trust with your health data, your financial data, your private conversations, your relationships.&lt;/p&gt;

&lt;p&gt;OpenClaw's model is different. Local-first means you decide what the AI knows. Skill-based means you define the behavior. The AI doesn't have opinions about your data or your life — it just executes what you asked it to do, with the information you chose to give it.&lt;/p&gt;

&lt;p&gt;That's not a limitation. That's a philosophy.&lt;/p&gt;

&lt;p&gt;As personal AI matures, the question won't be "which AI is the smartest?" It'll be "which AI can I actually trust with the parts of my life that matter?" The tools that answer that question with "you're always in control" are going to win — not just with developers, but with everyone else.&lt;/p&gt;

&lt;p&gt;OpenClaw is early. The interface isn't perfect. The skill library is thin. But the architecture is right. And for non-developers especially, right architecture is worth more than polished features.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you try building a skill after reading this, I'd genuinely like to hear what you built and what problem it solved. Drop it in the comments.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>openclawchallenge</category>
    </item>
    <item>
      <title>How I Built “Viral Ink” - An AI System That Turns Ideas Into Viral LinkedIn Content</title>
      <dc:creator>Soham Patel</dc:creator>
      <pubDate>Sun, 19 Apr 2026 19:57:59 +0000</pubDate>
      <link>https://forem.com/100hum_patel/-how-i-built-viral-ink-an-ai-system-that-turns-ideas-into-viral-linkedin-content-1fof</link>
      <guid>https://forem.com/100hum_patel/-how-i-built-viral-ink-an-ai-system-that-turns-ideas-into-viral-linkedin-content-1fof</guid>
      <description>&lt;h1&gt;
  
  
  🚀 I Built an AI Agent That Writes Viral LinkedIn Posts in My Voice
&lt;/h1&gt;

&lt;p&gt;Most AI writing tools sound the same.&lt;/p&gt;

&lt;p&gt;Same hooks. Same tone. Same “AI feel.”&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;LinkedIn Post Pilot&lt;/strong&gt; — an AI system that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Writes LinkedIn posts in &lt;strong&gt;my voice&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Predicts what will perform well&lt;/li&gt;
&lt;li&gt;Learns from real engagement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn’t a prompt wrapper.&lt;br&gt;&lt;br&gt;
It’s a &lt;strong&gt;self-improving AI pipeline&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 The Idea
&lt;/h2&gt;

&lt;p&gt;I wanted a system that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generates high-quality content daily&lt;/li&gt;
&lt;li&gt;Feels personal (not generic AI)&lt;/li&gt;
&lt;li&gt;Improves over time using feedback&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ⚙️ How It Works
&lt;/h2&gt;

&lt;p&gt;ONBOARD → GENERATE → SELECT → PUBLISH → LEARN&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Persona DNA (Voice Matching)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Analyzes my past posts
&lt;/li&gt;
&lt;li&gt;Extracts tone, structure, vocabulary
&lt;/li&gt;
&lt;li&gt;Injects rules into every generation
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Result: content sounds like &lt;em&gt;me&lt;/em&gt;, not AI :contentReference[oaicite:0]{index=0}&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Trend Radar
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Tracks topic momentum (velocity + growth)&lt;/li&gt;
&lt;li&gt;Identifies &lt;strong&gt;emerging trends early&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  3. Multi-Agent System
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Researcher → finds ideas
&lt;/li&gt;
&lt;li&gt;Writer → drafts posts
&lt;/li&gt;
&lt;li&gt;Critic → scores quality
&lt;/li&gt;
&lt;li&gt;Revision → improves output
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  4. Virality Scoring
&lt;/h3&gt;

&lt;p&gt;Each post gets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;3 hook variants
&lt;/li&gt;
&lt;li&gt;A score (0–100%) based on:

&lt;ul&gt;
&lt;li&gt;Hook strength
&lt;/li&gt;
&lt;li&gt;Format
&lt;/li&gt;
&lt;li&gt;Engagement potential
&lt;/li&gt;
&lt;li&gt;Trend timing
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  5. Daily Output
&lt;/h3&gt;

&lt;p&gt;Every morning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;7–10 ready-to-post ideas
&lt;/li&gt;
&lt;li&gt;Hook variations
&lt;/li&gt;
&lt;li&gt;Virality scores
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pick one → post in 2 minutes.&lt;/p&gt;




&lt;h3&gt;
  
  
  6. Post Autopsy (Learning Loop)
&lt;/h3&gt;

&lt;p&gt;After publishing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Track likes, comments, shares
&lt;/li&gt;
&lt;li&gt;Compare predicted vs actual performance
&lt;/li&gt;
&lt;li&gt;Update:

&lt;ul&gt;
&lt;li&gt;Scoring weights
&lt;/li&gt;
&lt;li&gt;Persona preferences
&lt;/li&gt;
&lt;li&gt;Topic memory
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;👉 The system improves every week :contentReference[oaicite:1]{index=1}&lt;/p&gt;




&lt;h2&gt;
  
  
  🧑‍💻 Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Python
&lt;/li&gt;
&lt;li&gt;OpenAI / Anthropic / Ollama
&lt;/li&gt;
&lt;li&gt;YAML configs
&lt;/li&gt;
&lt;li&gt;Pytest
&lt;/li&gt;
&lt;li&gt;SMTP / Resend
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧠 Why It’s Different
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Uses &lt;strong&gt;your voice&lt;/strong&gt;, not generic AI
&lt;/li&gt;
&lt;li&gt;Learns from real results
&lt;/li&gt;
&lt;li&gt;Avoids repeating content
&lt;/li&gt;
&lt;li&gt;Uses multi-agent reasoning
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 Try It
&lt;/h2&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/Sohamp2809/viral-ink" rel="noopener noreferrer"&gt;https://github.com/Sohamp2809/viral-ink&lt;/a&gt;  &lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 Final Thought
&lt;/h2&gt;

&lt;p&gt;AI won’t replace creators.&lt;/p&gt;

&lt;p&gt;But creators who use AI systems like this will win.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
    <item>
      <title>What if I told you that the future of software development hinges not on human expertise but on AI efficiency?</title>
      <dc:creator>Soham Patel</dc:creator>
      <pubDate>Sun, 19 Apr 2026 01:20:14 +0000</pubDate>
      <link>https://forem.com/100hum_patel/what-if-i-told-you-that-the-future-of-software-development-hinges-not-on-human-expertise-but-on-ai-18ci</link>
      <guid>https://forem.com/100hum_patel/what-if-i-told-you-that-the-future-of-software-development-hinges-not-on-human-expertise-but-on-ai-18ci</guid>
      <description>&lt;p&gt;The first time I watched AI-generated code replace a micro-SaaS service, I felt like I'd stepped into a science fiction novel. It took twenty minutes, maybe less, for a task that once demanded $120 a year.&lt;/p&gt;

&lt;p&gt;I've long doubted the notion that LLMs could revolutionize SaaS. But witnessing this transformation firsthand forced me to reconsider. The code spun effortlessly, creating a solution that previously needed a dedicated service.&lt;/p&gt;

&lt;p&gt;Critics argue that SaaS involves more than just code compliance, reliability, and continuous updates being critical elements. They're correct. But to ignore the economic shift LLMs usher into software development would be shortsighted.&lt;/p&gt;

&lt;p&gt;Imagine slashing your development time by 90%. This isn't just a minor efficiency gain. It's a seismic shift in your product roadmap and engineering priorities.&lt;/p&gt;

&lt;p&gt;This isn't the demise of SaaS. It's a new era in software creation.&lt;/p&gt;

&lt;p&gt;The real question is not whether you can see the change coming, but whether you're prepared to adapt your engineering workflows to it. The future demands we optimize hard.&lt;/p&gt;

&lt;p&gt;Adaptation is no longer optional. It's the keystone of survival in a rapidly evolving landscape.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>saas</category>
    </item>
    <item>
      <title>Claude Code vs Codex</title>
      <dc:creator>Soham Patel</dc:creator>
      <pubDate>Tue, 14 Apr 2026 18:50:50 +0000</pubDate>
      <link>https://forem.com/100hum_patel/claude-code-vs-codex-4ndi</link>
      <guid>https://forem.com/100hum_patel/claude-code-vs-codex-4ndi</guid>
      <description>&lt;p&gt;I’ve been spending time with both Claude Code and Codex lately, and the more I use them, the more I feel this is the wrong question to ask:&lt;/p&gt;

&lt;p&gt;“Which one is better?”&lt;/p&gt;

&lt;p&gt;I get why people ask it. We naturally want a winner. But after actually building with both, my honest take is that they shine in different situations.&lt;/p&gt;

&lt;p&gt;For me, Claude Code feels stronger when I need to stay close to the work. If I’m debugging something messy, untangling logic across multiple files, or working through a refactor that affects a bigger part of the codebase, it feels more like real pair programming. I can see what it’s doing, steer it quickly, and catch mistakes before they go too far.&lt;/p&gt;

&lt;p&gt;Codex feels stronger when I want to hand off a well-defined task and then come back to review the result. For repetitive changes, structured migrations, or work that can be clearly scoped upfront, that delegation style is incredibly useful. It helps me move faster without needing to sit inside every step.&lt;/p&gt;

&lt;p&gt;My biggest finding is that the value is not in choosing one over the other.&lt;/p&gt;

&lt;p&gt;It’s in knowing when to use each one.&lt;br&gt;
I’ve started thinking about them like this:&lt;br&gt;
Claude Code for work that needs presence.&lt;br&gt;
Codex for work that benefits from delegation.&lt;/p&gt;

&lt;p&gt;That shift in mindset has been much more useful for me than trying to force a comparison where one tool “wins.”&lt;/p&gt;

&lt;p&gt;I also think this is where a lot of engineering workflows are heading. The people who get the most out of these tools won’t just be the ones who try them once. It’ll be the ones who learn how to combine them well, based on the kind of problem in front of them.&lt;/p&gt;

&lt;p&gt;That’s been my experience so far.&lt;/p&gt;

&lt;p&gt;Curious how others are using them. Are you leaning more toward pair-programming style workflows, delegation style workflows, or a mix of both?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>programming</category>
      <category>tooling</category>
    </item>
    <item>
      <title>In my recent feature work, I’ve realized something: #AIEngineering #AIOrchestration #AgenticAI #SystemDesign #LLMEngineering</title>
      <dc:creator>Soham Patel</dc:creator>
      <pubDate>Tue, 07 Apr 2026 16:48:10 +0000</pubDate>
      <link>https://forem.com/100hum_patel/in-my-recent-feature-work-ive-realized-something-aiengineering-aiorchestration-agenticai-5f21</link>
      <guid>https://forem.com/100hum_patel/in-my-recent-feature-work-ive-realized-something-aiengineering-aiorchestration-agenticai-5f21</guid>
      <description>&lt;p&gt;The next big tech skill is not prompting.&lt;br&gt;
It is orchestration.&lt;/p&gt;

&lt;p&gt;A good prompt can get you a useful answer.&lt;/p&gt;

&lt;p&gt;But real product value does not come from asking one chatbot one smart question.&lt;/p&gt;

&lt;p&gt;It comes from designing how models, tools, APIs, business rules, memory, and workflows work together in production.&lt;/p&gt;

&lt;p&gt;That is the harder problem.&lt;br&gt;
And honestly, that is where the real engineering begins.&lt;/p&gt;

&lt;p&gt;Lately, I’ve noticed that the main challenge is no longer:&lt;/p&gt;

&lt;p&gt;“Can the model do this?”&lt;/p&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;p&gt;“Can the system fetch the right context, call the right tool, pass the output correctly, recover from failures, and still fit naturally into the user’s workflow?”&lt;/p&gt;

&lt;p&gt;That is orchestration.&lt;/p&gt;

&lt;p&gt;This is also where the industry is moving.&lt;/p&gt;

&lt;p&gt;We are seeing more systems built around multiple agents, multiple tools, and workflow-driven execution rather than a single model sitting in isolation.&lt;/p&gt;

&lt;p&gt;Prompting still matters.&lt;/p&gt;

&lt;p&gt;But prompting is becoming a baseline skill.&lt;/p&gt;

&lt;p&gt;Orchestration is what turns isolated AI capability into usable software.&lt;/p&gt;

&lt;p&gt;That is the shift I’ve been seeing in my own work.&lt;/p&gt;

&lt;p&gt;And I think engineers who understand routing, context management, tool use, validation, and reliability will stand out much more in the next wave of AI products.&lt;/p&gt;

&lt;p&gt;Curious how others see this:&lt;/p&gt;

&lt;p&gt;Are you spending more time improving prompts&lt;br&gt;
or more time designing the system around them?&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How Typed Conflict Resolution Beats Mem0 and MemGPT on the Hardest Memory Benchmark</title>
      <dc:creator>Soham Patel</dc:creator>
      <pubDate>Thu, 19 Mar 2026 17:25:59 +0000</pubDate>
      <link>https://forem.com/100hum_patel/how-typed-conflict-resolution-beats-mem0-and-memgpt-on-the-hardest-memory-benchmark-1016</link>
      <guid>https://forem.com/100hum_patel/how-typed-conflict-resolution-beats-mem0-and-memgpt-on-the-hardest-memory-benchmark-1016</guid>
      <description>&lt;p&gt;When multiple AI agents serve the same user, they lie to each other.&lt;/p&gt;

&lt;p&gt;Not intentionally. But Agent A hears "I switched to Vue" while Agent B still has "prefers React" in memory. When the user asks Agent B for a framework recommendation, they get React. The user already told the system they switched. The system forgot — or rather, it never resolved the contradiction.&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://github.com/Sohamp2809/mnemos" rel="noopener noreferrer"&gt;Mnemos&lt;/a&gt;, an open-source memory engine that fixes this. And I tested it on the hardest memory benchmark available — &lt;a href="https://huggingface.co/datasets/ai-hyz/MemoryAgentBench" rel="noopener noreferrer"&gt;MemoryAgentBench&lt;/a&gt; from ICLR 2026. The results surprised me.&lt;/p&gt;

&lt;h2&gt;
  
  
  The published ceiling is 7%. Mnemos hits 12%.
&lt;/h2&gt;

&lt;p&gt;MemoryAgentBench's Conflict Resolution split tests whether a system can handle contradictory facts. The multi-hop variant is the hardest — it requires chaining 2-3 reasoning steps to detect that a contradiction exists.&lt;/p&gt;

&lt;p&gt;The paper's own conclusion: &lt;em&gt;"In multi-hop conflict resolution scenarios, all methods achieve single-digit accuracy rates (at most 7%), highlighting this as a critical bottleneck."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Every system they tested — Mem0, MemGPT, Zep, HippoRAG, Self-RAG, even GPT-4o with full 128K context — scored below 7%.&lt;/p&gt;

&lt;p&gt;Mnemos scored 12%.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;System&lt;/th&gt;
&lt;th&gt;Multi-Hop Accuracy&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Mnemos&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;12.0%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dense RAG (top-10)&lt;/td&gt;
&lt;td&gt;7.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HippoRAG-v2&lt;/td&gt;
&lt;td&gt;6.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Self-RAG&lt;/td&gt;
&lt;td&gt;5.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zep&lt;/td&gt;
&lt;td&gt;4.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MemGPT&lt;/td&gt;
&lt;td&gt;3.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mem0&lt;/td&gt;
&lt;td&gt;2.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cognee&lt;/td&gt;
&lt;td&gt;1.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;On single-hop with short context, Mnemos reached 90%. But I'll be honest about the full picture later — there are splits where it struggles.&lt;/p&gt;

&lt;h2&gt;
  
  
  The insight: not all contradictions are the same
&lt;/h2&gt;

&lt;p&gt;Here's what existing memory systems do when "Lisa Patel was appointed CEO" arrives after "The CEO is John Smith" was already stored:&lt;/p&gt;

&lt;p&gt;They keep both.&lt;/p&gt;

&lt;p&gt;When the user asks "Who is the CEO?", the retrieval system finds both facts (they're both highly relevant), sends them to the LLM, and the LLM guesses. Sometimes it picks the old one. On multi-hop questions where the contradiction is indirect, it picks wrong most of the time.&lt;/p&gt;

&lt;p&gt;Mnemos takes a different approach. When new information arrives, it runs a conflict detection pipeline:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;New fact: "Lisa Patel was appointed CEO"
    |
[1] Embed with sentence-transformers
    |
[2] Find similar memories (cosine &amp;gt; 0.55)
    → Finds: "The CEO is John Smith" (similarity: 0.82)
    |
[3] Verify same topic (entity overlap: "CEO" in both)
    |
[4] Detect contradiction (transition language: "appointed")
    |
[5] Classify: FACTUAL_CORRECTION
    → Strategy: REPLACE (delete old fact)
    |
Result: Only "Lisa Patel was appointed CEO" survives
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The classification step is the key differentiator. Mnemos recognizes three types of conflicts:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PREFERENCE_EVOLUTION&lt;/strong&gt; — "Now prefers Vue" vs "Prefers React." The old preference is archived with a full history trail. You can still query what they used to prefer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FACTUAL_CORRECTION&lt;/strong&gt; — "Deadline is April 30" vs "Deadline is March 15." The old fact is deleted. There's one truth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CONTEXT_DEPENDENT&lt;/strong&gt; — "Uses Python at work" and "Uses JavaScript for personal projects." Both stay active, scoped to their context. This isn't a contradiction at all.&lt;/p&gt;

&lt;p&gt;The reason this matters: Mem0 and MemGPT don't distinguish between these cases. They either keep everything (contradiction persists) or do naive last-write-wins (context-dependent facts get destroyed).&lt;/p&gt;

&lt;h2&gt;
  
  
  A real example from the benchmark
&lt;/h2&gt;

&lt;p&gt;Question 2 in the benchmark asked: &lt;em&gt;"In which location did the spouse of Igor of Kiev pass away?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The context contained two conflicting facts about Olga of Kiev's death location — an old fact saying Kyiv and an updated fact saying Rodez.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Naive system&lt;/strong&gt; (same LLM, same embeddings, same retrieval): Retrieved both facts. The LLM picked Kyiv. &lt;strong&gt;Wrong.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mnemos&lt;/strong&gt;: Detected the contradiction during ingestion. Removed the stale "Kyiv" fact. When the question came, only "Rodez" was in memory. The LLM had no choice but to answer correctly. &lt;strong&gt;Right.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This happened 15 more times across the 100 multi-hop questions in that example. Mnemos got 35 right. Naive got 3.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the benchmark works
&lt;/h2&gt;

&lt;p&gt;I want to be transparent about methodology because reproducibility is what makes benchmark results credible.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://huggingface.co/datasets/ai-hyz/MemoryAgentBench" rel="noopener noreferrer"&gt;MemoryAgentBench&lt;/a&gt; dataset has a &lt;code&gt;Conflict_Resolution&lt;/code&gt; split with 8 examples, each containing ~100 questions. The contexts range from 6K to 262K tokens. Each context is packed with facts, some of which contradict earlier facts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memory construction phase&lt;/strong&gt;: The context is split into sentences. Each sentence is embedded with &lt;code&gt;all-MiniLM-L6-v2&lt;/code&gt; and stored as a semantic memory. Mnemos runs conflict detection at this stage — the naive baseline skips it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Query phase&lt;/strong&gt;: Each question is embedded. The top-15 most similar memories are retrieved by cosine similarity. GPT-4.1-mini generates the answer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scoring&lt;/strong&gt;: Substring Exact Match against gold answers, same as the paper's protocol.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The critical detail&lt;/strong&gt;: The naive baseline uses the exact same LLM, the exact same embeddings, and the exact same retrieval. The ONLY difference is that Mnemos runs conflict resolution during ingestion. So every percentage point above the baseline is purely the value of the conflict engine.&lt;/p&gt;

&lt;h2&gt;
  
  
  The full results — including where it fails
&lt;/h2&gt;

&lt;p&gt;Here's the complete breakdown:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Split&lt;/th&gt;
&lt;th&gt;Context&lt;/th&gt;
&lt;th&gt;Mnemos&lt;/th&gt;
&lt;th&gt;Naive&lt;/th&gt;
&lt;th&gt;Delta&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Multi-hop&lt;/td&gt;
&lt;td&gt;6K&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;27.0%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;9.0%&lt;/td&gt;
&lt;td&gt;+18pp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-hop&lt;/td&gt;
&lt;td&gt;32K&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;11.0%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3.0%&lt;/td&gt;
&lt;td&gt;+8pp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-hop&lt;/td&gt;
&lt;td&gt;64K&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;8.0%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;6.0%&lt;/td&gt;
&lt;td&gt;+2pp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-hop&lt;/td&gt;
&lt;td&gt;262K&lt;/td&gt;
&lt;td&gt;2.0%&lt;/td&gt;
&lt;td&gt;2.0%&lt;/td&gt;
&lt;td&gt;tied&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Single-hop&lt;/td&gt;
&lt;td&gt;6K&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;90.0%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;69.0%&lt;/td&gt;
&lt;td&gt;+21pp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Single-hop&lt;/td&gt;
&lt;td&gt;32K&lt;/td&gt;
&lt;td&gt;65.0%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;80.0%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;-15pp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Single-hop&lt;/td&gt;
&lt;td&gt;64K&lt;/td&gt;
&lt;td&gt;55.0%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;76.0%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;-21pp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Single-hop&lt;/td&gt;
&lt;td&gt;262K&lt;/td&gt;
&lt;td&gt;28.0%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;76.0%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;-48pp&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The multi-hop results are strong across the board. But look at single-hop on long contexts — Naive wins, and by a lot.&lt;/p&gt;

&lt;p&gt;Why? At 262K tokens, the context contains thousands of facts about hundreds of different entities. "David works at Google" and "Sarah works at Microsoft" have an embedding similarity of ~0.35 — both are about someone working somewhere. With a fixed similarity threshold of 0.55, some of these get flagged as conflicts and one gets deleted. Multiply this across thousands of facts and you get massive over-deletion.&lt;/p&gt;

&lt;p&gt;The fix is adaptive thresholds — higher threshold for longer contexts where there are more entities. This is the #1 item on the roadmap.&lt;/p&gt;

&lt;h2&gt;
  
  
  The code
&lt;/h2&gt;

&lt;p&gt;Mnemos is ~2000 lines of Python with zero heavy dependencies beyond &lt;code&gt;sentence-transformers&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;mnemos&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;MemoryHub&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Agent&lt;/span&gt;

&lt;span class="n"&gt;hub&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;MemoryHub&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;similarity_threshold&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.55&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;coder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;coding_assistant&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;hub&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;planner&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;project_planner&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;hub&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Coder stores a fact
&lt;/span&gt;&lt;span class="n"&gt;coder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;remember&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user_123&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;User prefers React&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
               &lt;span class="n"&gt;category&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;preference&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tags&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;framework&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="c1"&gt;# Planner stores contradictory info — resolved automatically
&lt;/span&gt;&lt;span class="n"&gt;mem&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;conflicts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;planner&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;remember&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user_123&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;User switched to Vue&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;category&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;preference&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tags&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;framework&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;conflicts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="c1"&gt;# [supersede] preference_evolution: 
&lt;/span&gt;    &lt;span class="c1"&gt;#   Archived 'User prefers React'
&lt;/span&gt;    &lt;span class="c1"&gt;#   Active: 'User switched to Vue'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The memory system has two layers:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Episodic memory&lt;/strong&gt; decays over time — session events, conversation fragments. These use an exponential decay formula: &lt;code&gt;score = relevance * e^(-rate * days) + frequency_boost&lt;/code&gt;. When they fade below a threshold, they're archived.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Semantic memory&lt;/strong&gt; persists forever — facts about the user. These are never decayed. They're only updated through the conflict resolution engine.&lt;/p&gt;

&lt;p&gt;When the same pattern appears in 3+ episodic sessions (configurable), it gets promoted to semantic memory.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reproduce it yourself
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/Sohamp2809/mnemos.git
&lt;span class="nb"&gt;cd &lt;/span&gt;mnemos
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s2"&gt;".[dev]"&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;datasets sentence-transformers openai

&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"sk-..."&lt;/span&gt;

&lt;span class="c"&gt;# Full benchmark: ~$1.50, ~3 hours&lt;/span&gt;
python Benchmark_sample/run_MemoryAgentBench.py &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--llm&lt;/span&gt; openai &lt;span class="nt"&gt;--model&lt;/span&gt; gpt-4.1-mini &lt;span class="nt"&gt;--verbose&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Machine-readable results are in &lt;code&gt;results/mabench_cr_full.json&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;Three priorities:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Adaptive thresholds&lt;/strong&gt; — Scale similarity threshold with context length to fix long-context over-deletion. This is the biggest accuracy gap right now.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;LLM-based conflict classification&lt;/strong&gt; — The current heuristic classifier uses transition language detection and negation matching. A GPT-4o-mini call for borderline cases would catch the contradictions that heuristics miss.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Framework adapters&lt;/strong&gt; — LangChain, CrewAI, and AutoGen integrations so you can drop Mnemos into existing agent pipelines.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why this matters beyond benchmarks
&lt;/h2&gt;

&lt;p&gt;Every production multi-agent system has this problem. When your customer support bot, your sales assistant, and your onboarding agent all talk to the same user, they need shared memory that stays accurate. Today, developers either build custom memory management (expensive) or accept that agents will contradict each other (bad UX).&lt;/p&gt;

&lt;p&gt;Mnemos is the open-source answer. MIT licensed. One &lt;code&gt;pip install&lt;/code&gt; away. And now — benchmarked.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Sohamp2809/mnemos" rel="noopener noreferrer"&gt;GitHub: Sohamp2809/mnemos&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you're working on agent memory systems, I'd love to hear what conflict patterns you've encountered that the current three types don't cover. Drop a comment or open an issue on the repo.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>llm</category>
      <category>python</category>
    </item>
  </channel>
</rss>
