{"id":92,"date":"2026-08-05T08:00:45","date_gmt":"2026-08-05T08:00:45","guid":{"rendered":"https:\/\/www.dobryakov.net\/blog\/92\/"},"modified":"2026-08-05T08:00:45","modified_gmt":"2026-08-05T08:00:45","slug":"agent-learns-from-mistakes","status":"publish","type":"post","link":"https:\/\/www.dobryakov.net\/blog\/92\/","title":{"rendered":"The Self-Learning Agent Pattern: decisions.md + mistakes.md"},"content":{"rendered":"<p>Developers complain that AI repeats the same mistakes. &quot;I&#x27;ve explained five times that we don&#x27;t use Redux here.&quot; &quot;It suggested FTP again instead of a queue.&quot; &quot;It keeps ignoring our naming conventions.&quot;<\/p>\n<p>That&#x27;s not a model problem. It&#x27;s an engineering gap.<\/p>\n<p><!--more--><\/p>\n<h2>Why the agent &quot;doesn&#x27;t learn&quot;<\/h2>\n<p>Every new agent session starts from a blank slate. The model has no memory of previous conversations. Everything it knows about your project is what you put in its context. If you put nothing specific in \u2014 you get the average of the internet.<\/p>\n<p>Without domain context, the agent falls back on its training distribution, where production-grade architectural decisions appear far less often than beginner tutorials. The result: FTP instead of event-driven, global state where local state belongs, camelCase where your codebase has used snake_case for three years.<\/p>\n<p>The problem isn&#x27;t that AI &quot;doesn&#x27;t learn.&quot; The problem is that no one gave it anything to learn from.<\/p>\n<h2>The mechanism: two files<\/h2>\n<p>Any agent that automatically pulls a rules file into context at the start of each session can become an accumulating system with two lines of instruction.<\/p>\n<p>For Claude Code, this is <code>CLAUDE.md<\/code>. For Cursor, it&#x27;s <code>.cursorrules<\/code> or <code>.mdc<\/code> files. The principle is the same: instructions stored in the repository get loaded automatically on every run.<\/p>\n<p>Add two lines to your rules file:<\/p>\n<pre><code>- If you made a decision that proved correct and cost real effort \u2014 log it in decisions.md (pattern + why it worked, 3 sentences max).\n- If you made a mistake that caused a problem \u2014 identify the root cause (not the symptom) and log it in mistakes.md.<\/code><\/pre>\n<p>That&#x27;s it. Two plain text files at the root of the project.<\/p>\n<p>From the first session, the agent starts filling both files. Every subsequent session opens with them in context. The agent now sees that in this project:<\/p>\n<ul>\n<li>dual write is forbidden (and why),<\/li>\n<li>Redis cache is the wrong tool for this data type,<\/li>\n<li>last time this pattern was used, it caused this specific failure.<\/li>\n<\/ul>\n<p>Mistakes stop repeating. Domain context is in the toolchain now \u2014 it wasn&#x27;t before.<\/p>\n<h2>The principle behind it<\/h2>\n<p>There&#x27;s a rule I&#x27;ve tested across different contexts \u2014 from <a href=\"https:\/\/www.dobryakov.net\/blog\/98\/\">AI enablement<\/a> programs with 100+ engineers at a $680M retail enterprise to smaller team settings: <strong>a rule that isn&#x27;t in the tool doesn&#x27;t exist<\/strong>.<\/p>\n<p>Explaining standards at a quarterly meeting doesn&#x27;t work, and neither does a Confluence page nobody opens. Only what the agent reads on every run actually sticks.<\/p>\n<p>The same principle drives more complex setups. The <code>github.com\/dobryakov\/cursor-rules<\/code> repository packages architectural standards as versioned <code>.mdc<\/code> files in git. A new team member inherits the same guardrails from the first commit. The AI assistant won&#x27;t propose violating an architectural rule because that rule is in its context, not buried in a corporate wiki. The decisions\/mistakes pattern is a lightweight version of the same idea \u2014 for individual and small-team projects where you don&#x27;t need the full governance infrastructure.<\/p>\n<h2>Failure modes<\/h2>\n<p>The pattern is simple. But a few places break it if you don&#x27;t address them upfront.<\/p>\n<p><strong>Files grow without bounds.<\/strong> Without format constraints, after a few months mistakes.md turns into 300 lines where 200 are variations of the same root pattern. Fix: limit each entry to 3 sentences, don&#x27;t duplicate root causes, and only write mechanisms \u2014 not symptom descriptions like &quot;there was an API error.&quot;<\/p>\n<p><strong>Root cause isn&#x27;t identified.<\/strong> The agent writes &quot;there was an API error&quot; instead of &quot;attempted to read from Redis before the connection pool finished initializing.&quot; Add an explicit instruction: root cause must be a specific technical mechanism, not a description of the symptom.<\/p>\n<p><strong>Context window gets consumed.<\/strong> Large files compete with working code for context space. Fix: periodically ask the agent to compress the files, keeping only unique patterns. One root cause = one entry, regardless of how many incidents it produced.<\/p>\n<p><strong>Entries go stale after refactoring.<\/strong> After a stack change, some entries describe a reality that no longer exists. Add a date stamp to each entry \u2014 stale ones become visible immediately.<\/p>\n<h2>Scale<\/h2>\n<p>The pattern isn&#x27;t limited to personal projects.<\/p>\n<p><strong>Personal project:<\/strong> one rules file, two memory files. The agent remembers what you&#x27;ve already tried, what didn&#x27;t work, what &quot;correct&quot; looks like in your specific context.<\/p>\n<p><strong>Team:<\/strong> files in git \u2014 decisions.md and mistakes.md as shared artifacts. A new developer gets the accumulated team knowledge when they clone the repo. Every team member&#x27;s AI assistant operates with the same domain context.<\/p>\n<p><strong>Enterprise:<\/strong> modular structure \u2014 separate <code>.mdc<\/code> files by domain (architecture, security, API style), decisions\/mistakes split by service or team. The mechanism is the same: files in the repository, auto-loaded into context.<\/p>\n<h2>Why RAG is overkill here<\/h2>\n<p>When people hear &quot;agent memory,&quot; the conversation usually jumps to vector databases, RAG pipelines, and fine-tuning. That&#x27;s all valid \u2014 but for most projects it&#x27;s overengineering.<\/p>\n<p>RAG is for when you have thousands of documents and need semantic filtering \u2014 not everything in context, just what&#x27;s relevant. decisions.md is for when you have dozens of patterns and all of them should always be in context. These are different problems.<\/p>\n<p>When the rules file fits entirely in the context window, plain text beats RAG: no embedding drift, no index versioning, no retrieval latency. Just markdown the agent reads completely at startup.<\/p>\n<hr \/>\n<p>The pattern works with any agent that auto-loads rules into session context. Exact paths depend on your tool. The mechanism is the same.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AI keeps repeating the same mistakes? That&#8217;s not a model problem. It&#8217;s an engineering gap. How to give your agent persistent memory in three minutes \u2014 and why this beats RAG for most projects.<\/p>\n","protected":false},"author":0,"featured_media":91,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24,78],"tags":[80,26,79,45,82,81,83],"class_list":["post-92","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-engineering","category-developer-productivity","tag-agent-memory","tag-ai-agents","tag-claude-md","tag-context-engineering","tag-cursor-rules","tag-developer-tools","tag-persistent-memory"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"How to add persistent memory to any AI agent in minutes using CLAUDE.md: the decisions.md + mistakes.md pattern, failure modes, and scaling from personal to enterprise.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.dobryakov.net\/blog\/92\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Grigoriy Dobryakov - IT+AI Blog - Grigoriy Dobryakov&#039;s blog: management, development and testing\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Self-Learning AI Agent: The decisions.md + mistakes.md Pattern\" \/>\n\t\t<meta property=\"og:description\" content=\"How to add persistent memory to any AI agent in minutes using CLAUDE.md: the decisions.md + mistakes.md pattern, failure modes, and scaling from personal to enterprise.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.dobryakov.net\/blog\/92\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-05T08:00:45+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-05T08:00:45+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Self-Learning AI Agent: The decisions.md + mistakes.md Pattern\" \/>\n\t\t<meta name=\"twitter:description\" content=\"How to add persistent memory to any AI agent in minutes using CLAUDE.md: the decisions.md + mistakes.md pattern, failure modes, and scaling from personal to enterprise.\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/92\\\/#blogposting\",\"name\":\"Self-Learning AI Agent: The decisions.md + mistakes.md Pattern\",\"headline\":\"The Self-Learning Agent Pattern: decisions.md + mistakes.md\",\"author\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/author\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/agent-learns-from-mistakes.jpg\",\"width\":1200,\"height\":630,\"caption\":\"The Self-Learning Agent Pattern: decisions.md + mistakes.md\"},\"datePublished\":\"2026-08-05T08:00:45+00:00\",\"dateModified\":\"2026-08-05T08:00:45+00:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/92\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/92\\\/#webpage\"},\"articleSection\":\"AI Engineering, Developer Productivity, agent memory, AI agents, CLAUDE.md, context engineering, cursor rules, developer tools, persistent memory\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/92\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/category\\\/ai-engineering\\\/#listItem\",\"name\":\"AI Engineering\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/category\\\/ai-engineering\\\/#listItem\",\"position\":2,\"name\":\"AI Engineering\",\"item\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/category\\\/ai-engineering\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/92\\\/#listItem\",\"name\":\"The Self-Learning Agent Pattern: decisions.md + mistakes.md\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/92\\\/#listItem\",\"position\":3,\"name\":\"The Self-Learning Agent Pattern: decisions.md + mistakes.md\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/category\\\/ai-engineering\\\/#listItem\",\"name\":\"AI Engineering\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/#organization\",\"name\":\"Grigoriy Dobryakov - IT+AI Blog\",\"description\":\"Grigoriy Dobryakov's blog: management, development and testing\",\"url\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/92\\\/#webpage\",\"url\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/92\\\/\",\"name\":\"Self-Learning AI Agent: The decisions.md + mistakes.md Pattern\",\"description\":\"How to add persistent memory to any AI agent in minutes using CLAUDE.md: the decisions.md + mistakes.md pattern, failure modes, and scaling from personal to enterprise.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/92\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/author\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/author\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/agent-learns-from-mistakes.jpg\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/92\\\/#mainImage\",\"width\":1200,\"height\":630,\"caption\":\"The Self-Learning Agent Pattern: decisions.md + mistakes.md\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/92\\\/#mainImage\"},\"datePublished\":\"2026-08-05T08:00:45+00:00\",\"dateModified\":\"2026-08-05T08:00:45+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/\",\"name\":\"Grigoriy Dobryakov - IT+AI Blog\",\"description\":\"Grigoriy Dobryakov's blog: management, development and testing\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Self-Learning AI Agent: The decisions.md + mistakes.md Pattern","description":"How to add persistent memory to any AI agent in minutes using CLAUDE.md: the decisions.md + mistakes.md pattern, failure modes, and scaling from personal to enterprise.","canonical_url":"https:\/\/www.dobryakov.net\/blog\/92\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.dobryakov.net\/blog\/92\/#blogposting","name":"Self-Learning AI Agent: The decisions.md + mistakes.md Pattern","headline":"The Self-Learning Agent Pattern: decisions.md + mistakes.md","author":{"@id":"https:\/\/www.dobryakov.net\/blog\/author\/#author"},"publisher":{"@id":"https:\/\/www.dobryakov.net\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/www.dobryakov.net\/blog\/wp-content\/uploads\/2026\/08\/agent-learns-from-mistakes.jpg","width":1200,"height":630,"caption":"The Self-Learning Agent Pattern: decisions.md + mistakes.md"},"datePublished":"2026-08-05T08:00:45+00:00","dateModified":"2026-08-05T08:00:45+00:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.dobryakov.net\/blog\/92\/#webpage"},"isPartOf":{"@id":"https:\/\/www.dobryakov.net\/blog\/92\/#webpage"},"articleSection":"AI Engineering, Developer Productivity, agent memory, AI agents, CLAUDE.md, context engineering, cursor rules, developer tools, persistent memory"},{"@type":"BreadcrumbList","@id":"https:\/\/www.dobryakov.net\/blog\/92\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.dobryakov.net\/blog#listItem","position":1,"name":"Home","item":"https:\/\/www.dobryakov.net\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/www.dobryakov.net\/blog\/category\/ai-engineering\/#listItem","name":"AI Engineering"}},{"@type":"ListItem","@id":"https:\/\/www.dobryakov.net\/blog\/category\/ai-engineering\/#listItem","position":2,"name":"AI Engineering","item":"https:\/\/www.dobryakov.net\/blog\/category\/ai-engineering\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.dobryakov.net\/blog\/92\/#listItem","name":"The Self-Learning Agent Pattern: decisions.md + mistakes.md"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.dobryakov.net\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.dobryakov.net\/blog\/92\/#listItem","position":3,"name":"The Self-Learning Agent Pattern: decisions.md + mistakes.md","previousItem":{"@type":"ListItem","@id":"https:\/\/www.dobryakov.net\/blog\/category\/ai-engineering\/#listItem","name":"AI Engineering"}}]},{"@type":"Organization","@id":"https:\/\/www.dobryakov.net\/blog\/#organization","name":"Grigoriy Dobryakov - IT+AI Blog","description":"Grigoriy Dobryakov's blog: management, development and testing","url":"https:\/\/www.dobryakov.net\/blog\/"},{"@type":"WebPage","@id":"https:\/\/www.dobryakov.net\/blog\/92\/#webpage","url":"https:\/\/www.dobryakov.net\/blog\/92\/","name":"Self-Learning AI Agent: The decisions.md + mistakes.md Pattern","description":"How to add persistent memory to any AI agent in minutes using CLAUDE.md: the decisions.md + mistakes.md pattern, failure modes, and scaling from personal to enterprise.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.dobryakov.net\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.dobryakov.net\/blog\/92\/#breadcrumblist"},"author":{"@id":"https:\/\/www.dobryakov.net\/blog\/author\/#author"},"creator":{"@id":"https:\/\/www.dobryakov.net\/blog\/author\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/www.dobryakov.net\/blog\/wp-content\/uploads\/2026\/08\/agent-learns-from-mistakes.jpg","@id":"https:\/\/www.dobryakov.net\/blog\/92\/#mainImage","width":1200,"height":630,"caption":"The Self-Learning Agent Pattern: decisions.md + mistakes.md"},"primaryImageOfPage":{"@id":"https:\/\/www.dobryakov.net\/blog\/92\/#mainImage"},"datePublished":"2026-08-05T08:00:45+00:00","dateModified":"2026-08-05T08:00:45+00:00"},{"@type":"WebSite","@id":"https:\/\/www.dobryakov.net\/blog\/#website","url":"https:\/\/www.dobryakov.net\/blog\/","name":"Grigoriy Dobryakov - IT+AI Blog","description":"Grigoriy Dobryakov's blog: management, development and testing","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.dobryakov.net\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Grigoriy Dobryakov - IT+AI Blog - Grigoriy Dobryakov's blog: management, development and testing","og:type":"article","og:title":"Self-Learning AI Agent: The decisions.md + mistakes.md Pattern","og:description":"How to add persistent memory to any AI agent in minutes using CLAUDE.md: the decisions.md + mistakes.md pattern, failure modes, and scaling from personal to enterprise.","og:url":"https:\/\/www.dobryakov.net\/blog\/92\/","article:published_time":"2026-08-05T08:00:45+00:00","article:modified_time":"2026-08-05T08:00:45+00:00","twitter:card":"summary_large_image","twitter:title":"Self-Learning AI Agent: The decisions.md + mistakes.md Pattern","twitter:description":"How to add persistent memory to any AI agent in minutes using CLAUDE.md: the decisions.md + mistakes.md pattern, failure modes, and scaling from personal to enterprise."},"aioseo_meta_data":{"post_id":"92","title":"Self-Learning AI Agent: The decisions.md + mistakes.md Pattern","description":"How to add persistent memory to any AI agent in minutes using CLAUDE.md: the decisions.md + mistakes.md pattern, failure modes, and scaling from personal to enterprise.","keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":"Self-Learning AI Agent: The decisions.md + mistakes.md Pattern","og_description":"How to add persistent memory to any AI agent in minutes using CLAUDE.md: the decisions.md + mistakes.md pattern, failure modes, and scaling from personal to enterprise.","og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":"Self-Learning AI Agent: The decisions.md + mistakes.md Pattern","twitter_description":"How to add persistent memory to any AI agent in minutes using CLAUDE.md: the decisions.md + mistakes.md pattern, failure modes, and scaling from personal to enterprise.","schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-08-05 08:01:05","updated":"2026-08-05 08:01:05"},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.dobryakov.net\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.dobryakov.net\/blog\/category\/ai-engineering\/\" title=\"AI Engineering\">AI Engineering<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tThe Self-Learning Agent Pattern: decisions.md + mistakes.md\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.dobryakov.net\/blog"},{"label":"AI Engineering","link":"https:\/\/www.dobryakov.net\/blog\/category\/ai-engineering\/"},{"label":"The Self-Learning Agent Pattern: decisions.md + mistakes.md","link":"https:\/\/www.dobryakov.net\/blog\/92\/"}],"_links":{"self":[{"href":"https:\/\/www.dobryakov.net\/blog\/wp-json\/wp\/v2\/posts\/92","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dobryakov.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dobryakov.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dobryakov.net\/blog\/wp-json\/wp\/v2\/comments?post=92"}],"version-history":[{"count":0,"href":"https:\/\/www.dobryakov.net\/blog\/wp-json\/wp\/v2\/posts\/92\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dobryakov.net\/blog\/wp-json\/wp\/v2\/media\/91"}],"wp:attachment":[{"href":"https:\/\/www.dobryakov.net\/blog\/wp-json\/wp\/v2\/media?parent=92"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dobryakov.net\/blog\/wp-json\/wp\/v2\/categories?post=92"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dobryakov.net\/blog\/wp-json\/wp\/v2\/tags?post=92"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}