{"cssClassNames":"blog-page page basicpage summit-page","templateName":"blog-page","allowedRenditionsWidth":["320","480","640","768","960","1200","1440","1920"],"language":"en","description":"Explore ArcticMem, Snowflake’s persistent semantic memory system for AI coding agents. See how dual-tier memory improves benchmark pass rates to 73%.","title":"Why AI Coding Agents Forget — And How ArcticMem Fixes It","analyticsPageType":"homepage","analyticsCategory":"general","analyticsSubCategory":"","excludeFromAnalytics":false,":mappedPath":"/en/blog/engineering/arcticmem-persistent-memory-ai-agents/",":type":"snowflake-site/components/structure/page",":items":{"root":{"columnCount":12,"columnClassNames":{"experiencefragment-banner":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-sub-header":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-pre-footer":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-header":"aem-GridColumn aem-GridColumn--default--12","markup_editor-table":"aem-GridColumn aem-GridColumn--default--12","responsivegrid":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-footer":"aem-GridColumn aem-GridColumn--default--12","markup_editor":"aem-GridColumn aem-GridColumn--default--12","container_47873732":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12",":items":{"experiencefragment-banner":{"id":"experiencefragment-ab3be5487f","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/pushdown-banner/pushdown-banner-blank/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/pushdown-banner/pushdown-banner-blank.xfmodel.json"},"experiencefragment-header":{"id":"experiencefragment-ac8e0bbf68","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master.xfmodel.json","languageNavPath":"/content/snowflake-site/global/en/blog/engineering/arcticmem-persistent-memory-ai-agents.languagenav.json","appliedCssClassNames":"snowflake-sticky-nav-host"},"experiencefragment-sub-header":{"id":"experiencefragment-a2aba0bd1d","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/sub-navigation/engineering-blog-sub-nav/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/sub-navigation/engineering-blog-sub-nav.xfmodel.json"},"responsivegrid":{"columnCount":12,"columnClassNames":{"container_breadcrumb":"aem-GridColumn aem-GridColumn--default--12","container_main_content":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12",":items":{"container_breadcrumb":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"breadcrumb":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"blog-page-breadcrumb-indentation",":type":"snowflake-site/components/container",":items":{"breadcrumb":{"id":"breadcrumb-41ac42395f","breadcrumbItems":[{"title":"Blog","path":"/en/blog/engineering/","active":false},{"title":"Data Engineering","path":"/en/blog/engineering/data-engineering/","active":false},{"title":"ArcticMem: Persistent Memory behind Snowflake CoCo ","path":"/en/blog/engineering/arcticmem-persistent-memory-ai-agents/","active":false}],":type":"snowflake-site/components/blog/breadcrumb"}},":itemsOrder":["breadcrumb"],"appliedCssClassNames":"snowflake-container"},"container_main_content":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"flexible_column_container":"aem-GridColumn aem-GridColumn--default--12","related_content":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"main-content",":type":"snowflake-site/components/container",":items":{"flexible_column_container":{"id":"flexible-column-container-75ed33dbc1","propertiesId":"snowflake-blog-template-main-container","type":"2-column-60-40","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"none","bottomPadding":"none","spaceBetween":"none","reverseOnMobile":true,"carouselOnMobile":false,"backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-3f368c919f",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"container_hero":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"blog_hero":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-cfb9f8ff4a",":type":"snowflake-site/components/container",":items":{"blog_hero":{"id":"blog-hero-4f5e3658e1","linkedInShareUrl":"https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.snowflake.com%2Fcontent%2Fsnowflake-site%2Fglobal%2Fen%2Fblog%2Fengineering%2Farcticmem-persistent-memory-ai-agents&title=ArcticMem%3A+Persistent+Memory+behind+Snowflake+CoCo+","twitterShareUrl":"https://x.com/intent/post?url=https%3A%2F%2Fwww.snowflake.com%2Fcontent%2Fsnowflake-site%2Fglobal%2Fen%2Fblog%2Fengineering%2Farcticmem-persistent-memory-ai-agents&text=ArcticMem%3A+Persistent+Memory+behind+Snowflake+CoCo+","facebookShareUrl":"https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.snowflake.com%2Fcontent%2Fsnowflake-site%2Fglobal%2Fen%2Fblog%2Fengineering%2Farcticmem-persistent-memory-ai-agents","showClaude":true,"showChatGpt":true,"authors":[{"authorImage":{"id":"image-82472346cb","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--2f4d3c68-5933-4c6c-9c34-b566af36c920/ming-yin.jpg?quality=85&preferwebp=true",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-c100d96f33","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/ming-yin/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Ming Yin"}},{"authorImage":{"id":"image-507399681e","height":"512","alt":"Danmei Xu","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--15ebdd56-bea2-423c-be95-18693e9ac4ec/danmeihead.png?quality=85&preferwebp=true","width":"512",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-03d79d9d0b","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/danmei-xu/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Danmei Xu"}},{"authorImage":{"id":"image-461c4395b3","height":"3557","alt":"Zhewei Yao","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--b83797d3-baae-46b4-b8fd-3b89fd88f643/zhewei-yao.jpg?quality=85&preferwebp=true","width":"3144",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-9e8f69245c","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/zhewei-yao/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Zhewei Yao"}},{"authorImage":{"id":"image-e22bc37d75","height":"328","alt":"Yuxiong He","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--91e118d5-5e68-4422-b71b-2a33781308d9/yuxiong-headshot.png?quality=85&preferwebp=true","width":"216",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-67a5ee52c6","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/yuxiong-he/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Yuxiong He"}},{"authorCta":{"id":"button-edbfb1ace5","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/harshn-pathak/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Harshn Pathak"}},{"authorCta":{"id":"button-dbfa4c4b8e","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/asim-shankar/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Asim Shankar"}}],"image":{"id":"image-3acea01057","height":"720","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--b1aa056b-f206-4c84-bcb1-5337938b10e6/sf-eng-blog-ml-0.png?quality=85&preferwebp=true","width":"1680",":type":"snowflake-site/components/image"},"timeToRead":"11","publicationDate":"JUL 29, 2026","tag":{"tagText":"Data Engineering","tagColor":"#29B5E8"},"title":{"lines":["ArcticMem: Persistent Memory behind Snowflake CoCo "],"type":"heading2",":type":"snowflake-site/components/title-v2"},":type":"snowflake-site/components/blog/blog-hero"}},":itemsOrder":["blog_hero"]},"responsivegrid_content":{"columnCount":12,"columnClassNames":{"image":"aem-GridColumn aem-GridColumn--default--12","image_820413353":"aem-GridColumn aem-GridColumn--default--12","blog_text_798631874":"aem-GridColumn aem-GridColumn--default--12","blog_text":"aem-GridColumn aem-GridColumn--default--12","blog_text_1774114553":"aem-GridColumn aem-GridColumn--default--12","blog_text_344468706":"aem-GridColumn aem-GridColumn--default--12","blog_text_483897363":"aem-GridColumn aem-GridColumn--default--12","image_1180076172":"aem-GridColumn aem-GridColumn--default--12","blog_text_1682092966":"aem-GridColumn aem-GridColumn--default--12","blog_text_760383122":"aem-GridColumn aem-GridColumn--default--12","image_4395033":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","appliedCssClassNames":"snowflake-layout-container-inner-padding-small",":items":{"blog_text":{"id":"blog-text-ee8dd38f5f","text":"\u003Cp\u003EAI agents today are stateless. Every session begins from scratch, with no memory of what worked yesterday, no record of which approaches failed, and no accumulated understanding of the codebase. A human developer would never operate this way. After debugging a join issue once, they remember the pattern. After finding dirty data in a staging table, they know to clean it next time.\u003C/p\u003E\r\n\u003Cp\u003E\u003Cb\u003EArcticMem\u003C/b\u003E is a persistent semantic memory system that closes this gap. It automatically extracts reusable knowledge from successful agent sessions (debugging insights, confirmed implementation patterns, data quality discoveries, project-specific conventions) and stores them in a local vector store. On future sessions, the agent retrieves relevant memories through semantic search and applies them immediately. The agent gets smarter every time it is used.\u003C/p\u003E\r\n\u003Cp\u003EIntegrated into Cortex Code (CoCo), Snowflake's AI coding agent, ArcticMem delivers consistent gains across five out of seven challenging internal benchmark tasks (as shown in Figure 1), with no prompt engineering, no fine-tuning and no user configuration required.\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003EPass rate: Improved from \u003Cb\u003E47% to 73%\u003C/b\u003E overall, with market basket analysis jumping from \u003Cb\u003E33% to 87%\u003C/b\u003E\u003C/li\u003E\r\n\u003Cli\u003EEfficiency: Agents with memory skipped entire false debugging paths that baseline agents pursued\u003C/li\u003E\r\n\u003C/ul\u003E\r\n\u003Cp\u003EIn this blog, we walk through how ArcticMem works, show concrete examples of what changes inside agent sessions with and without memory and share evaluation results across seven benchmark tasks.\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"image":{"id":"image-cd14df50ed","height":"558","alt":"Figure 1. Accuracy on seven complex internal benchmark tasks, comparing CoCo (Baseline, no memory) vs. ArcticMem+CoCo. ArcticMem improves five of seven tasks, while the remaining two are either on par or slightly below baseline.","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--95e65a8b-cc78-4f75-b762-87ceab608bd8/figure-1.-snowmem-arcticmem-.jpg?quality=85&preferwebp=true","width":"1024","title":"Figure 1. Accuracy on seven complex internal benchmark tasks, comparing CoCo (Baseline, no memory) vs. ArcticMem+CoCo. ArcticMem improves five of seven tasks, while the remaining two are either on par or slightly below baseline.",":type":"snowflake-site/components/image"},"blog_text_798631874":{"id":"blog-text-b34821086c","text":"\u003Ch2\u003EWhat is ArcticMem?\u003C/h2\u003E\r\n\u003Cp\u003EArcticMem is a derived semantic index built on top of canonical memory sources.\u003C/p\u003E\r\n\u003Cp\u003EIt combines file-based knowledge (Tier 1) with conversation-extracted knowledge (Tier 2) into a unified, searchable memory store for coding agents, as shown in Figure 2.\u003C/p\u003E\r\n\u003Cp\u003E\u003Cb\u003EWhy two tiers?\u003C/b\u003E They cover complementary kinds of knowledge. Tier 1 captures what you can articulate before doing the work — coding standards, project conventions, architectural constraints. These are things a team would put in an onboarding document. Tier 2, on the other hand, captures what you can only articulate after the work is done — the debugging insight that a fact table should be the FROM clause, the discovery that churn scores are correct even when they look wrong, the edge case in NTILE with sparse data. Nobody writes these in a README; they emerge from execution. Tier 1 alone is a developer who read the manual but never touched the code. Tier 2 alone requires the agent to fail first before learning anything. With both tiers working together, each session closes gaps the other tier cannot cover.\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"image_820413353":{"id":"image-6d52f46786","height":"480","alt":"Figure 2. ArcticMem architecture. Tier 1 indexes workspace files; Tier 2 extracts facts from successful sessions. Both feed a unified memory store with two retrieval channels: passive injection and active search. ","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--e8446dbf-6925-4e4d-83bf-c7b2fc315fb6/figure-2.-snowmem-arcticmem-.jpg?quality=85&preferwebp=true","width":"1024","title":"Figure 2. ArcticMem architecture. Tier 1 indexes workspace files; Tier 2 extracts facts from successful sessions. Both feed a unified memory store with two retrieval channels: passive injection and active search.",":type":"snowflake-site/components/image"},"blog_text_344468706":{"id":"blog-text-9160319541","text":"\u003Ch3\u003ETier 1: File-based memory\u003C/h3\u003E\r\n\u003Cp\u003ETier 1 indexes explicit knowledge that already exists in the user's workspace — markdown files containing rules, preferences, project conventions and architectural decisions. These are documents the user or team has written: a \u003Ci\u003E\u003Ccode\u003ECLAUDE.md\u003C/code\u003E\u003C/i\u003E with coding standards, a \u003Ci\u003E\u003Ccode\u003ERULES.md\u003C/code\u003E\u003C/i\u003E with project conventions, memory files with personal preferences.\u003C/p\u003E\r\n\u003Cp\u003EArcticMem chunks these files, embeds them using a text Snowflake embedding model, and stores the vectors in a local vector database for fast retrieval. Tier 1 memory is available immediately, no extraction needed. When the workspace changes, ArcticMem reindexes automatically.\u003C/p\u003E\r\n\u003Ch3\u003ETier 2: Conversation-extracted memory\u003C/h3\u003E\r\n\u003Cp\u003ETier 2 is where ArcticMem becomes powerful. This is the conversation-extracted knowledge layer, where facts are distilled from successful sessions rather than written in advance. After a successful agent session, the ArcticMem \u003Ccode\u003EExtractor\u003C/code\u003E processes the full conversation through an LLM and distills it into a small set of reusable facts. Each fact captures not just what happened, but \u003Cb\u003Ewhy\u003C/b\u003E it matters and \u003Cb\u003Ewhen\u003C/b\u003E to apply it.\u003C/p\u003E\r\n\u003Cp\u003EThe extraction classifies each fact into one of four types:\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Cb\u003ELesson\u003C/b\u003E: What went wrong or right: debugging insights, rejected approaches, confirmed patterns\u003C/li\u003E\r\n\u003Cli\u003E\u003Cb\u003EContext\u003C/b\u003E: Project state not derivable from code: constraints, stakeholder decisions, data characteristics\u003C/li\u003E\r\n\u003Cli\u003E\u003Cb\u003EPreference\u003C/b\u003E: How the user works: coding style, tool choices, workflow conventions\u003C/li\u003E\r\n\u003Cli\u003E\u003Cb\u003EPointer\u003C/b\u003E: External references: dashboards, trackers, design specs\u003C/li\u003E\r\n\u003C/ul\u003E\r\n\u003Cp\u003EThe extraction is deliberately selective. Generic coding patterns, build output, file paths and anything the LLM already knows are excluded. What remains are the nonobvious insights: the kind of tribal knowledge that makes experienced developers fast.\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"image_4395033":{"id":"image-b38ebf4394","height":"416","alt":"Figure 3. The ArcticMem ingestion pipeline. Conversations are summarized, then an LLM extracts up to 10 typed facts per session. Each fact goes through lifecycle classification before being stored. ","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--91607706-2571-473a-ae2d-70b0ac0c68e8/figure-3.-snowmem-arcticmem-.jpg?quality=85&preferwebp=true","width":"1024","title":"Figure 3. The ArcticMem ingestion pipeline. Conversations are summarized, then an LLM extracts up to 10 typed facts per session. Each fact goes through lifecycle classification before being stored.",":type":"snowflake-site/components/image"},"blog_text_760383122":{"id":"blog-text-fdf7638c3e","text":"\u003Ch2\u003EHow ArcticMem ingests knowledge from agent sessions\u003C/h2\u003E\r\n\u003Cp\u003EWhen a session completes, ArcticMem's ingestion pipeline transforms raw conversation history into searchable memory through four stages (visualization in Figure 3).\u003C/p\u003E\r\n\u003Cp\u003E\u003Cb\u003ETurn Summarization:\u003C/b\u003E Long sessions (over 80K characters) are compressed before extraction. Assistant responses are summarized by an LLM while user messages are preserved verbatim; they contain feedback signals like corrections and confirmations that are critical for identifying what the agent learned.\u003C/p\u003E\r\n\u003Cp\u003E\u003Cb\u003EFact Extraction:\u003C/b\u003E The summarized conversation is sent to an LLM with a specialized extraction prompt. The prompt extracts up to 10 facts per session, each structured with content, rationale (\u003Cb\u003EWhy\u003C/b\u003E), application guidance (\u003Cb\u003EHow to apply\u003C/b\u003E) and a retrieval trigger (\u003Cb\u003EWhen to use\u003C/b\u003E) that describes when this fact should be recalled.\u003C/p\u003E\r\n\u003Cp\u003E\u003Cb\u003ELifecycle Classification:\u003C/b\u003E New facts are compared against existing memories through a second LLM call that decides: ADD (for a genuinely new knowledge), UPDATE (which refines an existing memory), DELETE (contradicts an existing memory) or NONE (for things that have already been covered). This prevents the memory store from accumulating duplicates or stale information.\u003C/p\u003E\r\n\u003Cp\u003E\u003Cb\u003EEmbedding and Storage:\u003C/b\u003E Accepted facts are embedded and stored with a vector index for semantic search, plus full-text search indexes for keyword matching. The result is a compact local memory store that captures the essential knowledge from each session.\u003C/p\u003E\r\n\u003Ch2\u003EHow ArcticMem retrieves relevant memories\u003C/h2\u003E\r\n\u003Cp\u003EWhen a new session begins, ArcticMem makes stored knowledge available through two complementary channels:\u003C/p\u003E\r\n\u003Col\u003E\r\n\u003Cli\u003E\u003Cb\u003EPassive Injection:\u003C/b\u003E At the start of every session, ArcticMem performs a semantic search and surfaces the most relevant memory titles in an \u003Ccode\u003E&lt;agent-memory&gt;\u003C/code\u003E block. The agent sees a concise table of contents of its accumulated knowledge — enough to know what's available without flooding the context. A full manifest of all stored memories is also provided in the system reminders. This costs zero tool calls and gives the agent immediate awareness.\u003C/li\u003E\r\n\u003Cli\u003E\u003Cb\u003EActive Search:\u003C/b\u003E The agent can call \u003Ccode\u003Ememory_search\u003C/code\u003E at any point to retrieve full details on a specific topic. A query like \u003Ci\u003E&quot;division by zero customer metrics&quot;\u003C/i\u003E returns the matching facts with complete content, rationale and application guidance. In practice, agents call \u003Ccode\u003Ememory_search\u003C/code\u003E a few times per session; typically once at the start to load context, and occasionally mid-task when encountering a familiar problem pattern.\u003C/li\u003E\r\n\u003C/ol\u003E\r\n\u003Cp\u003EThe retrieval pipeline runs vector search, full-text search and symbolic search in parallel, then fuses results using Reciprocal Rank Fusion (RRF) for robust ranking across different match types (as shown in Figure 4).\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"image_1180076172":{"id":"image-c97793bbc5","height":"562","alt":"Figure 4. The ArcticMem retrieval pipeline. Three parallel search paths (vector, full-text, symbolic) are fused into ranked results, delivered via passive injection at session start or active search on demand.","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--5d19b3a5-506b-4573-8d95-c79210cbd49c/figure-4.-snowmem-arcticmem-.jpg?quality=85&preferwebp=true","width":"1024","title":"Figure 4. The ArcticMem retrieval pipeline. Three parallel search paths (vector, full-text, symbolic) are fused into ranked results, delivered via passive injection at session start or active search on demand.",":type":"snowflake-site/components/image"},"blog_text_1774114553":{"id":"blog-text-03bd93dc50","text":"\u003Ch2\u003EHow ArcticMem helps users\u003C/h2\u003E\r\n\u003Cp\u003EThe numbers tell the aggregate story. The agent trajectories show what actually changes inside each session. We evaluated ArcticMem on seven internal benchmark tasks covering bug fixes, multimodel builds and complex analytics, each verified by automated test suites.\u003C/p\u003E\r\n\u003Ch3\u003EExample 1: Fixing bugs in one shot\u003C/h3\u003E\r\n\u003Cp\u003E\u003Cb\u003ETask: Revenue Model Debug:\u003C/b\u003E Debug a SQL model producing incorrect revenue numbers.\u003C/p\u003E\r\n\u003Cp\u003EWithout memory, the agent investigates the model through trial and error, testing hypotheses about joins, checking data quality, iterating on fixes across many steps before converging on a solution.\u003C/p\u003E\r\n\u003Cp\u003EWith memory, the agent's first move is to search for relevant context:\u003C/p\u003E\r\n\u003Cp\u003E\u003Ci\u003E&quot;I'll start by investigating the environment, reading the model file, and searching memory for relevant context.&quot;\u003C/i\u003E\u003C/p\u003E\r\n\u003Cp\u003E\u003Ccode\u003Ememory_search(&quot;category performance revenue incorrect&quot;)\u003C/code\u003E\u003C/p\u003E\r\n\u003Cp\u003E\u003Ci\u003E&quot;Memory confirms: fact table aggregations should start FROM the fact table and INNER JOIN to dimensions. The current model starts FROM products with LEFT JOINs — that's the bug.&quot;\u003C/i\u003E\u003C/p\u003E\r\n\u003Cp\u003EThe agent fixes the JOIN direction in one shot. Memory makes the agent not just more accurate but significantly more efficient (fewer steps, fewer wrong turns).\u003C/p\u003E\r\n\u003Ch3\u003EExample 2: Not debugging what isn't broken\u003C/h3\u003E\r\n\u003Cp\u003E\u003Cb\u003ETask: Metrics Bug Fix:\u003C/b\u003E Fix a model with inf/NaN values and add new analytics columns.\u003C/p\u003E\r\n\u003Cp\u003EWithout memory, the agent fixes the division-by-zero bugs correctly but then discovers that all churn risk scores are 100. It spends many steps investigating whether this is a new bug: querying the data, checking formulas, testing edge cases. It isn't a bug: when all order data is over a year old, maximum churn risk is mathematically correct.\u003C/p\u003E\r\n\u003Cp\u003EWith memory, the agent skips the false investigation entirely:\u003C/p\u003E\r\n\u003Cp\u003E\u003Ci\u003E&quot;All validations pass. The churn risk scores are all 100, which is expected per the memory note since all data is historical (max order date was 2024-12-31, which is over a year ago). This aligns with the memory note.&quot;\u003C/i\u003E\u003C/p\u003E\r\n\u003Cp\u003EKnowing what isn't a bug is as valuable as knowing how to fix one. Memory prevents false debugging that wastes time and occasionally leads the agent down wrong paths.\u003C/p\u003E\r\n\u003Ch3\u003EExample 3: Eliminating all-or-nothing failures\u003C/h3\u003E\r\n\u003Cp\u003E\u003Cb\u003ETask: Customer Segmentation:\u003C/b\u003E Build an RFM customer segmentation system with tier transitions and predictive scoring.\u003C/p\u003E\r\n\u003Cp\u003EWithout memory, this task has a striking bimodal pattern: the agent either passes all tests or fails completely. The complete failures stem from a quirk in how SQL handles NTILE with sparse data, a circular dependency in the query structure and incorrect tier transition logic.\u003C/p\u003E\r\n\u003Cp\u003EWith memory, the agent has direct access to these exact pitfalls: NTILE quintile handling for sparse data, the correct CTE structure for historical vs. current state comparisons, and churn score validation for stale data. The complete failures nearly disappear.\u003C/p\u003E\r\n\u003Ch2\u003EEvaluation results\u003C/h2\u003E\r\n\u003Cp\u003EWe evaluated ArcticMem across seven internal benchmark tasks: a diverse suite covering bug fixes, multimodel builds and complex analytics — each verified by automated test suites. We ran each task multiple times independently for consistency.\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_text_483897363":{"id":"blog-text-9a2633a651","text":"\u003Ctable\u003E\r\n\u003Cthead\u003E\u003Ctr\u003E\u003Cth\u003ETask\u003C/th\u003E\r\n\u003Cth\u003ETests\u003C/th\u003E\r\n\u003Cth\u003EBaseline\u003C/th\u003E\r\n\u003Cth\u003EArcticMem\u003C/th\u003E\r\n\u003Cth\u003EΔ\u003C/th\u003E\r\n\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd\u003EMarket Basket Analysis\u003C/td\u003E\r\n\u003Ctd\u003E63\u003C/td\u003E\r\n\u003Ctd\u003E33%\u003C/td\u003E\r\n\u003Ctd\u003E\u003Cb\u003E87%\u003C/b\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Cb\u003E+54pp\u003C/b\u003E\u003C/td\u003E\r\n\u003C/tr\u003E\u003Ctr\u003E\u003Ctd\u003ECustomer Segmentation\u003C/td\u003E\r\n\u003Ctd\u003E5\u003C/td\u003E\r\n\u003Ctd\u003E60%\u003C/td\u003E\r\n\u003Ctd\u003E\u003Cb\u003E93%\u003C/b\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Cb\u003E+33pp\u003C/b\u003E\u003C/td\u003E\r\n\u003C/tr\u003E\u003Ctr\u003E\u003Ctd\u003EHR Analytics\u003C/td\u003E\r\n\u003Ctd\u003E134\u003C/td\u003E\r\n\u003Ctd\u003E58%\u003C/td\u003E\r\n\u003Ctd\u003E\u003Cb\u003E87%\u003C/b\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Cb\u003E+29pp\u003C/b\u003E\u003C/td\u003E\r\n\u003C/tr\u003E\u003Ctr\u003E\u003Ctd\u003EMetrics Bug Fix\u003C/td\u003E\r\n\u003Ctd\u003E15\u003C/td\u003E\r\n\u003Ctd\u003E20%\u003C/td\u003E\r\n\u003Ctd\u003E\u003Cb\u003E47%\u003C/b\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Cb\u003E+27pp\u003C/b\u003E\u003C/td\u003E\r\n\u003C/tr\u003E\u003Ctr\u003E\u003Ctd\u003ERevenue Model Debug\u003C/td\u003E\r\n\u003Ctd\u003E10\u003C/td\u003E\r\n\u003Ctd\u003E46%\u003C/td\u003E\r\n\u003Ctd\u003E\u003Cb\u003E73%\u003C/b\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Cb\u003E+27pp\u003C/b\u003E\u003C/td\u003E\r\n\u003C/tr\u003E\u003Ctr\u003E\u003Ctd\u003EOrder Analytics\u003C/td\u003E\r\n\u003Ctd\u003E13\u003C/td\u003E\r\n\u003Ctd\u003E46%\u003C/td\u003E\r\n\u003Ctd\u003E40%\u003C/td\u003E\r\n\u003Ctd\u003E-6pp\u003C/td\u003E\r\n\u003C/tr\u003E\u003Ctr\u003E\u003Ctd\u003EAccount Ledger\u003C/td\u003E\r\n\u003Ctd\u003E27\u003C/td\u003E\r\n\u003Ctd\u003E80%\u003C/td\u003E\r\n\u003Ctd\u003E80%\u003C/td\u003E\r\n\u003Ctd\u003E0pp\u003C/td\u003E\r\n\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_text_1682092966":{"id":"blog-text-6e577ea916","text":"\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n\u003Cp\u003EFive of seven tasks improved with ArcticMem. The gains are largest where memory contains directly applicable knowledge: market basket analysis (+54pp), customer segmentation (+33pp), revenue model debugging (+27pp). The one task that didn't improve (order analytics) shows that memory provided schema location hints but the core failure mode (incorrect column schema) wasn't covered by any stored fact. The average improvement across the tasks that gained is 28 percentage points.\u003C/p\u003E\r\n\u003Cp\u003EThe memory footprint is minimal: only a few dozen facts stored in the compact memory store. The agent calls memory_search three to four times per session on average, enough to load the relevant context without significant overhead.\u003C/p\u003E\r\n\u003Cp\u003EOn the metrics bug fix task, ArcticMem agents use 18% fewer tool calls than baseline, demonstrating that memory makes the agent not just more accurate but more efficient.\u003C/p\u003E\r\n\u003Ch2\u003EDesign tradeoffs\u003C/h2\u003E\r\n\u003Cp\u003EPersistent memory for AI agents is an emerging design space. Most production systems converge on similar capabilities — automatic knowledge extraction, selective retrieval, and lifecycle management — but differ in how they implement them.\u003C/p\u003E\r\n\u003Cp\u003EThe two main retrieval approaches represent a fundamental tradeoff: LLM-based selection uses a language model to read memory descriptions and pick relevant entries per query. This requires no embedding infrastructure and can make nuanced semantic judgments — a model reading &quot;this memory is about LEFT JOIN pitfalls in fact-to-dimension aggregations&quot; can decide relevance more flexibly than distance in vector space. The cost is latency (a model call per retrieval) and a hard cap on index size (the full manifest must fit in the selection model's context).\u003C/p\u003E\r\n\u003Cp\u003EVector-based retrieval (ArcticMem's approach) embeds memories and queries into the same space, enabling submillisecond search with no per-query model call. Combined with full-text and symbolic search in a hybrid pipeline, this scales to large memory stores without index size limits. The tradeoff is that embedding similarity can miss nuanced relevance that a language model would catch.\u003C/p\u003E\r\n\u003Cp\u003EArcticMem's design is optimized for a specific regime: an enterprise coding agent running complex, repeated tasks where the same pitfalls recur across sessions.\u003C/p\u003E\r\n\u003Cp\u003EIn this setting, the key requirements are:\u003C/p\u003E\r\n\u003Col\u003E\r\n\u003Cli\u003EFast retrieval that doesn't add latency to every tool call\u003C/li\u003E\r\n\u003Cli\u003EFine-grained atomic facts that match precisely to subproblems\u003C/li\u003E\r\n\u003Cli\u003EDeterministic lifecycle management (ADD/UPDATE/DELETE classification) to keep the memory store clean without relying on model compliance\u003C/li\u003E\r\n\u003C/ol\u003E\r\n\u003Cp\u003EThe eval results validate this choice: memory retrieval fires multiple times per session with negligible overhead, and the structured lifecycle prevents the duplication and staleness that accumulate over many sessions.\u003C/p\u003E\r\n\u003Ch2\u003EWhat ArcticMem means for AI agents beyond CoCo\u003C/h2\u003E\r\n\u003Cp\u003EArcticMem demonstrates that AI agents don't need to be stateless. By extracting reusable knowledge from successful sessions and retrieving it through semantic search, agents accumulate expertise over time rather than starting fresh on every task.\u003C/p\u003E\r\n\u003Cp\u003EThe architecture is deliberately general. While CoCo is the first and most validated integration, ArcticMem's Tier 1 + Tier 2 memory model applies to any agent that benefits from remembering past experience: customer support agents that learn from resolved tickets, data analysis agents that remember schema quirks and research agents that build on previous findings. The memory store is local, the retrieval is fast (vector + full-text search) and the extraction is configurable for different domains.\u003C/p\u003E\r\n\u003Cp\u003EWe're exploring how this memory architecture applies beyond CoCo, to data analysis agents that learn schema quirks across sessions and research agents that build on previous findings rather than starting from scratch each time.\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"}},":itemsOrder":["blog_text","image","blog_text_798631874","image_820413353","blog_text_344468706","image_4395033","blog_text_760383122","image_1180076172","blog_text_1774114553","blog_text_483897363","blog_text_1682092966"],":type":"wcm/foundation/components/responsivegrid"},"responsivegrid_premium_content_banner":{"columnCount":12,"columnClassNames":{},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","appliedCssClassNames":"snowflake-responsive-component-top-padding-medium",":items":{},":itemsOrder":[],":type":"wcm/foundation/components/responsivegrid"},"container_author_chip":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"author_chip":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-1ecfd4e65c",":type":"snowflake-site/components/container",":items":{"author_chip":{"id":"author-chip-935b5fb04e","title":{"id":"title","type":"heading2","lines":["Learn more about the authors"],":type":"snowflake-site/components/title-v2"},"authors":[{"authorImage":{"id":"image-82472346cb","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--2f4d3c68-5933-4c6c-9c34-b566af36c920/ming-yin.jpg?quality=85&preferwebp=true",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-c100d96f33","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/ming-yin/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Ming Yin"},"authorTitle":"Senior Research Scientist"},{"authorImage":{"id":"image-507399681e","height":"512","alt":"Danmei Xu","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--15ebdd56-bea2-423c-be95-18693e9ac4ec/danmeihead.png?quality=85&preferwebp=true","width":"512",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-03d79d9d0b","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/danmei-xu/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Danmei Xu"},"authorTitle":"Software Engineer, ML"},{"authorImage":{"id":"image-461c4395b3","height":"3557","alt":"Zhewei Yao","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--b83797d3-baae-46b4-b8fd-3b89fd88f643/zhewei-yao.jpg?quality=85&preferwebp=true","width":"3144",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-9e8f69245c","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/zhewei-yao/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Zhewei Yao"},"authorTitle":"Staff Software Engineer"},{"authorImage":{"id":"image-e22bc37d75","height":"328","alt":"Yuxiong He","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--91e118d5-5e68-4422-b71b-2a33781308d9/yuxiong-headshot.png?quality=85&preferwebp=true","width":"216",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-67a5ee52c6","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/yuxiong-he/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Yuxiong He"},"authorTitle":"Sr. Director, Software Engineering"},{"authorCta":{"id":"button-edbfb1ace5","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/harshn-pathak/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Harshn Pathak"},"authorTitle":"Staff Research Scientist"},{"authorCta":{"id":"button-dbfa4c4b8e","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/asim-shankar/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Asim Shankar"},"authorTitle":"Distinguished Software Engineer"}],":type":"snowflake-site/components/blog/author-chip"}},":itemsOrder":["author_chip"],"appliedCssClassNames":"snowflake-responsive-component-top-padding-medium"}},":itemsOrder":["container_hero","responsivegrid_content","responsivegrid_premium_content_banner","container_author_chip"]},"flexible_column_content_container_2":{"layout":"SIMPLE","id":"container-4fbb41de27",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"blog_table_of_content":{"id":"blog-table-of-content-07420354dc",":type":"snowflake-site/components/blog/blog-table-of-content","tableOfContents":[]}},":itemsOrder":["blog_table_of_content"]},":type":"snowflake-site/components/flexible-column-container","isActiveTOC":false,"isBlogPage":true},"related_content":{"id":"related-content-98ce4c7fd8","relatedContent":[],":type":"snowflake-site/components/blog/related-content","isBlogPage":true}},":itemsOrder":["flexible_column_container","related_content"],"appliedCssClassNames":"snowflake-container"}},":itemsOrder":["container_breadcrumb","container_main_content"],":type":"wcm/foundation/components/responsivegrid"},"container_47873732":{"additionalClasses":"section--blog-newsletter","layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"flexible_column_cont":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-3aa3e3d721",":type":"snowflake-site/components/container",":items":{"flexible_column_cont":{"id":"flexible-column-container-280e8c0046","type":"1-column","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"small","bottomPadding":"none","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"propertiesCSSClasses":"section--blog-newsletter","backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-9264a99c6d",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"marketo_v2":{"id":"marketo-v2-1f58160525","marketoForm":{"hidden":null,"formId":"3320","successUrl":null,"edit":false,"script":null,"values":null},"title":{"id":"title","type":"heading3","lines":["Subscribe to our blog newsletter","Get the best, coolest and latest delivered to your inbox each week"],":type":"snowflake-site/components/title-v2"},"munchkinId":"252-RFO-227","serverInstance":"252-RFO-227.mktoweb.com","marketoConfigured":true,"formConfigured":true,":type":"snowflake-site/components/form/marketo-v2"},"text":{"id":"text-21108042a4","additionalClasses":"newsletter-disclaimer","text":"\u003Cp\u003EBy submitting this form, I understand Snowflake will process my personal information in accordance with their Privacy Notice.\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/text"}},":itemsOrder":["marketo_v2","text"]},":type":"snowflake-site/components/flexible-column-container","isActiveTOC":false,"isBlogPage":true}},":itemsOrder":["flexible_column_cont"],"appliedCssClassNames":"snowflake-container"},"experiencefragment-pre-footer":{"id":"experiencefragment-1ba04fd969","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/get-started-pre-footer/get-started-pre-footer/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/get-started-pre-footer/get-started-pre-footer.xfmodel.json"},"markup_editor":{"id":"markup-editor-4a10ee2f33","title":"Page CSS","cssContent":"@media screen and (min-width:768px){.snowflake-blog-author-chip-wrapper{justify-content:flex-start}.snowflake-blog-related-content-on-blog-page{max-width:1408px;margin-left:auto;margin-right:auto}.snowflake-text{font-family:Lato,sans-serif;font-weight:400;font-size:16px;line-height:24px}}.section--blog-newsletter{max-width:none;width:100%;padding-left:0;padding-right:0;margin-left:0;margin-right:0;margin-bottom:0}.section--blog-newsletter .mktoField{background-color:transparent !important}.section--blog-newsletter\u003E.container{padding-left:0;padding-right:0}@media screen and (min-width:768px){.section--blog-newsletter\u003E.container{padding-left:0;padding-right:0}}.newsletter-disclaimer p{font-size:14px !important}.section--blog-newsletter .snowflake-marketo-form-container{margin-bottom:24px;background-color:#f6f9fa;gap:48px;box-shadow:none}.section--blog-newsletter .snowflake-title p.snowflake-title-line:first-child{font-family:Texta;font-size:24px;line-height:26px;font-weight:700;margin-bottom:4px}.section--blog-newsletter .snowflake-title p.snowflake-title-line{text-transform:none;font-family:\"Lato\",sans-serif;font-size:16px;line-height:24px;font-weight:normal}@media screen and (min-width:1024px){.section--blog-newsletter .snowflake-marketo-form-container{display:flex;justify-content:center}.section--blog-newsletter .snowflake-title .snowflake-title-line{text-align:left}.section--blog-newsletter .snowflake-marketo-form .mktoFormRow:has(\u003E input[type=\"hidden\"]){flex-grow:0}.section--blog-newsletter .snowflake-marketo-form{display:flex;width:50% !important}.section--blog-newsletter .snowflake-marketo-form .mktoButtonRow{flex-grow:0;width:auto !important;margin-left:0;margin-right:0}.section--blog-newsletter .snowflake-marketo-form .mktoFormRow{flex-grow:1}.section--blog-newsletter\u003E.container{padding-left:0;padding-right:0}.section--blog-newsletter .snowflake-marketo-form-title{width:50%;margin-bottom:0 !important}.section--blog-newsletter .center .snowflake-title{align-items:flex-start}}.snowflake-sub-navigation a.snowflake-sub-navigation-primary-link{width:auto !important}.snowflake-blog-hero{align-items:stretch !important}",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false},"markup_editor-table":{"id":"markup-editor-b0b63b10af","title":"Table Styling CSS","cssContent":"#snowflake-blog-template-main-container table{width:100%;background-color:var(--ui-background-01);border-collapse:collapse;border:2px solid var(--ui-background-09);font-family:'Lato',sans-serif;color:var(--ui-background-09)}#snowflake-blog-template-main-container table thead{background-color:var(--ui-01)}#snowflake-blog-template-main-container table th,#snowflake-blog-template-main-container table td{border:2px solid var(--ui-background-09);padding:var(--spacing-01)}",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false},"experiencefragment-footer":{"id":"experiencefragment-0b2fbf105d","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/footer/master/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/footer/master.xfmodel.json"}},":itemsOrder":["experiencefragment-banner","experiencefragment-header","experiencefragment-sub-header","responsivegrid","container_47873732","experiencefragment-pre-footer","markup_editor","markup_editor-table","experiencefragment-footer"],":type":"wcm/foundation/components/responsivegrid"}},":itemsOrder":["root"],":hierarchyType":"page",":path":"/content/snowflake-site/global/en/blog/engineering/arcticmem-persistent-memory-ai-agents","analyticsContentTags":["snowflake-site:taxonomy/blog/engineering-blog/data-engineering"],"analyticsEnabled":true,"isPasswordProtected":false,"coveoConfig":{"searchHub":"snowflake.com","organizationId":"snowflakecomputingproduction8neljofn","apiKey":"xx335921a6-2a0a-40f2-a167-e390b4766c3d","pipeline":"snowflake.com"},"analyticsDebugMode":false,"analyticsData":{"excludeFromAnalytics":false,"subCategory":"","pageType":"homepage","templateName":"blog-page","siteName":"snowflake","pageUrl":"/content/snowflake-site/global/en/blog/engineering/arcticmem-persistent-memory-ai-agents","language":"en","category":"general","pageName":"ArcticMem: Persistent Memory behind Snowflake CoCo ","contentTags":["snowflake-site:taxonomy/blog/engineering-blog/data-engineering"]},"locale":"en"}
  