{"allowedRenditionsWidth":["320","480","640","768","960","1200","1440","1920"],"templateName":"blog-page","cssClassNames":"blog-page page basicpage summit-page","canonicalLink":"https://www.snowflake.com/en/blog/snowflake-internal-context-layer-for-ai-agents/","robotsTags":["index","follow"],"language":"en","description":"Learn best practices for creating a semantic layer using Snowflake semantic views. Improve data accuracy and scale AI agent performance across your stack.","title":"Building a Context Layer for AI Agents | Snowflake","analyticsPageType":"homepage","analyticsCategory":"general","analyticsSubCategory":"","excludeFromAnalytics":false,"analyticsContentTags":["snowflake-site:taxonomy/blog/product-and-technology","snowflake-site:taxonomy/blog/product-and-technology/ai-ml"],"isPasswordProtected":false,"coveoConfig":{"pipeline":"snowflake.com","searchHub":"snowflake.com","organizationId":"snowflakecomputingproduction8neljofn","apiKey":"xx335921a6-2a0a-40f2-a167-e390b4766c3d"},"analyticsDebugMode":false,"analyticsData":{"excludeFromAnalytics":false,"subCategory":"","pageType":"homepage","templateName":"blog-page","siteName":"snowflake","pageUrl":"/content/snowflake-site/global/en/blog/snowflake-internal-context-layer-for-ai-agents","language":"en","category":"general","pageName":"Building an Internal Context Layer for AI Agents at Snowflake","contentTags":["snowflake-site:taxonomy/blog/product-and-technology","snowflake-site:taxonomy/blog/product-and-technology/ai-ml"]},":hierarchyType":"page",":path":"/content/snowflake-site/global/en/blog/snowflake-internal-context-layer-for-ai-agents",":type":"snowflake-site/components/structure/page",":mappedPath":"/en/blog/snowflake-internal-context-layer-for-ai-agents/",":items":{"root":{"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","columnCount":12,":items":{"experiencefragment-banner":{"id":"experiencefragment-99a42461f9","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-f579371036","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/snowflake-internal-context-layer-for-ai-agents.languagenav.json","appliedCssClassNames":"snowflake-sticky-nav-host"},"experiencefragment-sub-header":{"id":"experiencefragment-4346b7f385","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/sub-navigation/master/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/sub-navigation/master.xfmodel.json"},"responsivegrid":{"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","columnCount":12,":items":{"container_breadcrumb":{"columnClassNames":{"breadcrumb":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","layout":"RESPONSIVE_GRID","columnCount":12,"id":"blog-page-breadcrumb-indentation",":type":"snowflake-site/components/container",":items":{"breadcrumb":{"id":"breadcrumb-105092463c","breadcrumbItems":[{"title":"Blog","path":"/en/blog/","active":false},{"title":"Product and Technology","path":"/en/blog/product-and-technology/","active":false},{"title":"Building an Internal Context Layer for AI Agents at Snowflake","path":"/en/blog/snowflake-internal-context-layer-for-ai-agents/","active":false}],":type":"snowflake-site/components/blog/breadcrumb"}},":itemsOrder":["breadcrumb"],"appliedCssClassNames":"snowflake-container"},"container_main_content":{"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","layout":"RESPONSIVE_GRID","columnCount":12,"id":"main-content",":type":"snowflake-site/components/container",":items":{"flexible_column_container":{"id":"flexible-column-container-ab19784992","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-45b5dd34b2",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"container_hero":{"columnClassNames":{"blog_hero":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-b6f1751a69",":type":"snowflake-site/components/container",":items":{"blog_hero":{"id":"blog-hero-091e522b31","showClaude":true,"showChatGpt":true,"image":{"id":"image-eab807a085","isLcpImage":false,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--6ce0caad-4cf2-4e9e-9149-2e60b59a5bb5/18-ai.png?quality=85&preferwebp=true","lazyEnabled":true,"height":"720","width":"1680",":type":"snowflake-site/components/image"},"timeToRead":"7","publicationDate":"AUG 17, 2026","authors":[{"authorImage":{"id":"image-2ebcf6fbc7","isLcpImage":false,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--db167c3d-7d49-4abc-8edb-41510b90bac8/aniruth-narayanan.jpg?quality=85&preferwebp=true","lazyEnabled":true,"height":"1901","width":"1900",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-9af84be8e6","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/aniruth-narayanan/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Aniruth Narayanan"}}],"tag":{"tagText":"Product and Technology","tagColor":"#3F808A"},"title":{"lines":["Building an Internal Context Layer for AI Agents at Snowflake"],"type":"heading2",":type":"snowflake-site/components/title-v2"},":type":"snowflake-site/components/blog/blog-hero"}},":itemsOrder":["blog_hero"]},"responsivegrid_content":{"columnClassNames":{"image":"aem-GridColumn aem-GridColumn--default--12","blog_text_780361790":"aem-GridColumn aem-GridColumn--default--12","blog_text_472101785":"aem-GridColumn aem-GridColumn--default--12","blog_text_1146053579":"aem-GridColumn aem-GridColumn--default--12","image_679668369":"aem-GridColumn aem-GridColumn--default--12","blog_text_1390016524":"aem-GridColumn aem-GridColumn--default--12","code_snippet_1451248663":"aem-GridColumn aem-GridColumn--default--12","blog_text_190091065":"aem-GridColumn aem-GridColumn--default--12","code_snippet":"aem-GridColumn aem-GridColumn--default--12","code_snippet_189871437":"aem-GridColumn aem-GridColumn--default--12","blog_text":"aem-GridColumn aem-GridColumn--default--12","image_1878868536":"aem-GridColumn aem-GridColumn--default--12","code_snippet_459763898":"aem-GridColumn aem-GridColumn--default--12","blog_text_2131723365":"aem-GridColumn aem-GridColumn--default--12","quote_item":"aem-GridColumn aem-GridColumn--default--12","blog_text_2124538559":"aem-GridColumn aem-GridColumn--default--12","blog_text_1132243723":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnCount":12,"appliedCssClassNames":"snowflake-layout-container-inner-padding-small",":items":{"blog_text":{"id":"blog-text-1f9e43f218","text":"\u003Cp\u003EModern enterprises collect and manage millions of data sources and signals across their business. At Snowflake, we use Snowflake internally to monitor our business systems and product telemetry at scale — across every query, warehouse and click. But without a shared understanding, petabytes of raw data become a source of conflicting answers, not a foundation for action.\u003C/p\u003E\r\n\u003Cp\u003ETo leverage our data at scale for both humans and AI agents, we curate an internal semantic layer. This post covers how we built our context layer using semantics and the best practices we learned in the process.\u003C/p\u003E\r\n\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"image":{"id":"image-e2fc9e510f","isLcpImage":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--6a225bd2-13ff-4e4b-96b2-42b29b33e6ad/figure-1-building-internal-png.png?quality=85&preferwebp=true","alt":"fig 1","lazyEnabled":true,"height":"1920","width":"3180",":type":"snowflake-site/components/image"},"blog_text_2131723365":{"id":"blog-text-a0d04d6169","text":"\u003Cp\u003E\u003Csub\u003EFigure 1: Snowflake’s internal environment uses a semantic layer to empower every entity to query consistent and accurate data.\u003C/sub\u003E\u003C/p\u003E\r\n\u003Ch2\u003EThe bottleneck was never the data — it was context\u003C/h2\u003E\r\n\u003Cp\u003EThe immense amount of internal telemetry makes it incredibly powerful, but that same scale makes failure modes frustrating. Take a seemingly simple question such as “What is an active customer?” That question could yield different answers across different tables and varying metric definitions:\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Cp\u003EActive is WHERE days_since_last_login &lt; 30 from the table login_counts\u003C/p\u003E\r\n\u003C/li\u003E\r\n\u003Cli\u003E\u003Cp\u003EActive is WHERE credits_consumed &gt; 0 and account_type != ‘TRIAL’ from the table customers\u003C/p\u003E\r\n\u003C/li\u003E\r\n\u003Cli\u003E\u003Cp\u003EActive is COUNT(DISTINCT account_id) without a region identifier from the table customers_with_accounts\u003C/p\u003E\r\n\u003C/li\u003E\r\n\u003C/ul\u003E\r\n\u003Cp\u003ETypically, based on our internal use cases and what we have seen from our customers, the burden of clarifying data’s meaning falls on data science teams: Humans design queries and confirm these queries with a trusted data scientist, who calls out flaws and gotchas.\u003C/p\u003E\r\n\u003Cp\u003EThe alignment problem becomes exponentially worse with AI. New metrics and data sources are built at lightning speed, creating information gaps for even skilled analysts. If a Cortex Agent reports one number while a legacy dashboard shows another, no one knows which source to trust.\u003C/p\u003E\r\n\u003Ch2\u003EOne definition for every AI and BI interface\u003C/h2\u003E\r\n\u003Cp\u003EEvery interface needs consistent meaning, or context, for its data, which can be achieved by using a semantic layer. A semantic view is a top-level object that sits between the downstream consumers and raw data tables, translating governed business language into physical database schemas.\u003C/p\u003E\r\n\u003Cp\u003EInstead of exposing raw tables to dashboards or AI agents directly, the semantic view standardizes the data flow from physical tables to facts, dimensions and metrics. This gives people and tools consistent context about what the data means before they query it.\u003C/p\u003E\r\n\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"image_679668369":{"id":"image-d5c18b17ec","isLcpImage":false,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--147864d4-cff5-4b5f-a3f6-149aba9b79ef/figure-2-building-interna.png?quality=85&preferwebp=true","alt":"fig 2","lazyEnabled":true,"height":"2000","width":"2400",":type":"snowflake-site/components/image"},"blog_text_1146053579":{"id":"blog-text-bc98031173","text":"\u003Cp\u003E\u003Csub\u003EFigure 2: Semantic views consist of logical names, metrics and AI metadata on top of physical tables to power downstream consumption.\u003C/sub\u003E\u003C/p\u003E\r\n\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n\u003Cp\u003EAI agents gain two benefits when using semantic views to query data at scale:\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Cp\u003E\u003Cb\u003EFaster execution:\u003C/b\u003E Agents querying raw data spend time finding, understanding and sampling multiple data sources. At scale, these processes can dominate runtime. Instead, agents can use semantic views to go directly to SQL execution.\u003C/p\u003E\r\n\u003C/li\u003E\r\n\u003Cli\u003E\u003Cp\u003E\u003Cb\u003ELower cost:\u003C/b\u003E Agents are significantly more token-efficient when using table relationships and join data in semantic views. With materialization, semantic SQL natively leverages preaggregated data, reducing repeated computation.\u003C/p\u003E\r\n\u003C/li\u003E\r\n\u003C/ul\u003E\r\n\u003Cp\u003EWith a semantic-oriented data architecture, returns compound quickly across the stack:\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Cp\u003E\u003Cb\u003EIncreased accuracy: \u003C/b\u003EProvide precise business context to models. In AtScale’s \u003Ca rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https://www.atscale.com/blog/enable-natural-language-prompting-with-semantic-layer-genai/\"\u003Ebenchmark testing\u003C/a\u003E, adding semantic context increased text-to-SQL accuracy from 20% to more than 90% across 40 business questions on TPC-DS.\u003C/p\u003E\r\n\u003C/li\u003E\r\n\u003Cli\u003E\u003Cp\u003E\u003Cb\u003EOne source of truth: \u003C/b\u003EReplace isolated, tool-specific semantics with a single semantic layer.\u003C/p\u003E\r\n\u003C/li\u003E\r\n\u003Cli\u003E\u003Cp\u003E\u003Cb\u003EFree governance: \u003C/b\u003ELeverage Snowflake’s access controls on semantic views and metric objects natively.\u003C/p\u003E\r\n\u003C/li\u003E\r\n\u003Cli\u003E\u003Cp\u003E\u003Cb\u003ETrue self-service: \u003C/b\u003ESupport ad hoc, natural-language questions for any user on their own.\u003C/p\u003E\r\n\u003C/li\u003E\r\n\u003C/ul\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"quote_item":{"id":"quote-item-5b0028ed26","alignment":"left","layout":"card","quoteSourceName":"Zachary Blackwood","quoteSourceTitle":"Staff Data Scientist at Snowflake","showQuoteIcon":false,"quote":"\"With semantic views we get a golden layer, a single trusted API for our data. With semantic view materializations, this one semantic API now works for every downstream consumer of our data, including use cases where query performance is critical. Now queries from dashboards, AI and ad hoc workflows can run through the same trusted data API.\"\r\n\r\n","showHangingPunctuation":false,":type":"snowflake-site/components/quote-item"},"blog_text_1390016524":{"id":"blog-text-fe4a8b4e8c","text":"\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n\u003Cp\u003ESnowflake’s internal product data science team uses an agent that leverages the internal semantic layer to field product questions from across the company. In July 2025 alone, more than 400 distinct internal users ran over 5,400 queries through the product data science agent and the semantic layer. And in the same time frame, more than 5,600 internal employees across all Snowflake teams and agents ran over 320,000 queries using the broad semantic layer in sales, HR, support and other areas.\u003C/p\u003E\r\n\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"image_1878868536":{"id":"image-4de0c4adc9","isLcpImage":false,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--27228a95-0e33-4c27-905b-0b51c31447bd/figure-3-building-interna.png?quality=85&preferwebp=true","alt":"fig 3","lazyEnabled":true,"height":"1600","width":"3200",":type":"snowflake-site/components/image"},"blog_text_190091065":{"id":"blog-text-f36955b5e9","text":"\u003Cp\u003E\u003Csub\u003EFigure 3: With a unified semantic layer, all tools and interfaces get one consistent, governed meaning of data.\u003C/sub\u003E\u003C/p\u003E\r\n\u003Ch2\u003EBest practices for the semantic layer\u003C/h2\u003E\r\n\u003Ch3\u003EVersion, test and evaluate semantic views\u003C/h3\u003E\r\n\u003Cp\u003EThe semantic layer needs to be treated with the same rigor as production software. With Snowflake’s native data build tool (dbt) integration, we’re able to fully version control, peer review and apply continuous integration and continuous delivery (CI/CD) to our metrics. Though at Snowflake we primarily build semantic views using code, we use the UI to test and suggest improvements that integrate with our code. And because the UI and underlying code are perfectly synced, users can move between constructing a view in the Snowflake UI and committing fields to repositories easily.\u003C/p\u003E\r\n\u003Cp\u003ETo evaluate semantic views, we needed access to the questions that people actually ask. A high-signal source for evals is popular dashboard tiles, which are constructed and used precisely to answer questions. We also log common questions to refine our eval sets.\u003C/p\u003E\r\n\u003Ch3\u003EPrioritize performance with data engineering\u003C/h3\u003E\r\n\u003Cp\u003EIf your semantic layer sits on top of slow queries and poorly constructed tables, your AI agents will be slow. Early on, we tried pointing a semantic view at multiple raw, billion-count event tables. Every time a user asked a question, the view crawled and joined these tables, resulting in massive latency.\u003C/p\u003E\r\n\u003Cp\u003EInitially, we built and maintained our own preaggregated slices with Dynamic Tables. Each dashboard had the rollup and grain that it needed. However, as we expanded our semantic coverage to support new questions and domains, we had to manually add new pipelines and tables and maintain a rapidly growing estate.\u003C/p\u003E\r\n\u003Cp\u003EWith \u003Ca rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https://docs.snowflake.com/en/user-guide/views-semantic/materializations\"\u003Esemantic view materializations\u003C/a\u003E, we’re able to model semantic views directly on high-grain source tables and declare which dimension and metric combinations need to be fast. Snowflake intelligently maintains those slices for us in the background, helping reduce response times.\u003C/p\u003E\r\n\u003Cp\u003EAs a bonus, we used Snowflake CoCo to draft and refine our semantic and data processes, as its built-in semantic view skills are purpose built for these use cases.\u003C/p\u003E\r\n\u003Ch3\u003ECurate relentlessly and route intelligently\u003C/h3\u003E\r\n\u003Cp\u003EA cluttered and inconsistent semantic layer defeats the purpose of standardizing metrics. For the key product areas that are frequently queried, we curate semantic views (using CoCo) to answer specific questions we have in mind. Every query is logged within Snowflake, including the returned results. With this, we’re able to easily build new semantic views and verified queries to continually expand our scope to what our users are asking.\u003C/p\u003E\r\n\u003Cp\u003EFor intelligent routing, Cortex Agents automatically scan across all semantic views using our custom routing instructions to find the right context for a given query. And for broad coverage of the long tail of data, we lean on Cortex Sense, which evaluates data across our estate to help route questions to relevant data sets.\u003C/p\u003E\r\n\u003Ch2\u003EBuild your semantic layer today\u003C/h2\u003E\r\n\u003Cp\u003ERaw data doesn't answer questions; context does. The semantic layer acts as this &quot;golden layer&quot; — defining business logic once to power every dashboard, Streamlit app and Cortex Agent across the agentic enterprise.\u003C/p\u003E\r\n\u003Cp\u003EWe can get started with a useful semantic view in just one file. Note that we are using YAML in this example, but the use of SQL to define semantic views is also fully supported.\u003C/p\u003E\r\n\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"code_snippet":{"id":"code-snippet-dee8a74dd7","codeSnippet":"name: account_activity_model\r\ntables:\r\n  - name: daily_account_usage\r\n    base_table:\r\n      database: core\r\n      schema: metrics\r\n      table: daily_account_usage\r\n\r\n    dimensions:\r\n      - name: region\r\n        expr: region\r\n        data_type: VARCHAR\r\n        description: \"The geographic region of the account.\"   # AI metadata\r\n        synonyms: [\"location\", \"geography\", \"area\"]                          # AI metadata\r\n\r\n    metrics:\r\n      - name: compute_spend\r\n        expr: SUM(credits_used)\r\n        description: \"The total number of Snowflake credits consumed.\"       # AI metadata\r\n        synonyms: [\"cost\", \"spend\", \"credits used\", \"usage\"]                 # AI metadata\r\n\r\nverified_queries:                                                            # AI metadata\r\n  - name: total_spend\r\n    question: \"What is the total compute spend?\"\r\n    use_as_onboarding_question: true\r\n    sql: |\r\n      SELECT\r\n        SUM(credits_used) AS compute_spend\r\n      FROM core.metrics.daily_account_usage\r\n      ORDER BY compute_spend DESC\r\n","multiLine":true,":type":"snowflake-site/components/code-snippet"},"blog_text_2124538559":{"id":"blog-text-00cc69f1c7","text":"\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n\u003Cp\u003ENow we can query the semantic view directly using standard SQL, without ever having to worry about underlying joins or raw column names:\u003C/p\u003E\r\n\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"code_snippet_459763898":{"id":"code-snippet-ca312180fd","language":"sql","codeSnippet":"SELECT\r\n    region,\r\n    AGG(compute_spend) as compute_spend\r\nFROM account_activity_model\r\nGROUP BY region\r\nORDER BY compute_spend DESC;\r\n","multiLine":true,":type":"snowflake-site/components/code-snippet"},"blog_text_472101785":{"id":"blog-text-c0b879fd9d","text":"\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n\u003Cp\u003EFor improved performance, we can also materialize this semantic view to preaggregate metrics (compute_spend) across dimensions (region):\u003C/p\u003E\r\n\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"code_snippet_1451248663":{"id":"code-snippet-32fb7bc27f","language":"sql","codeSnippet":"ALTER SEMANTIC VIEW account_activity_model SET MAX_STALENESS = '1 hour';\r\n\r\nALTER SEMANTIC VIEW account_activity_model \r\nADD MATERIALIZATION spend_by_region\r\nWAREHOUSE = semantic_wh\r\nAS \r\n  DIMENSIONS \r\n    region\r\n  METRICS \r\n    compute_spend;\r\n","multiLine":true,":type":"snowflake-site/components/code-snippet"},"blog_text_1132243723":{"id":"blog-text-16ba0a05d8","text":"\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n\u003Cp\u003ESnowflake semantic views are also interoperable with \u003Ca rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https://www.snowflake.com/en/blog/apache-ossie-open-semantic-interchange-incubator/\"\u003EApache Ossie™ (incubating)\u003C/a\u003E. Ossie is the vendor-neutral, open standard for semantic and business context models. This allows you to use your semantics with the tool and platform of your choice. Even if your semantic models are stored elsewhere, you can always read them in Snowflake with a single function call:\u003C/p\u003E\r\n\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"code_snippet_189871437":{"id":"code-snippet-212ef203d7","language":"sql","codeSnippet":"SELECT SYSTEM$READ_OSSIE_YAML_FROM_SEMANTIC_VIEW('db.schema.account_activity');","multiLine":true,":type":"snowflake-site/components/code-snippet"},"blog_text_780361790":{"id":"blog-text-17e7a32e80","text":"\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n\u003Cp\u003ESemantics are the shared foundation for the entire AI and analytics stack. Get started with building a single, governed source of truth \u003Ca href=\"https://docs.snowflake.com/en/user-guide/views-semantic/overview\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"\u003Eusing Snowflake\u003C/a\u003E today, and stay tuned for a follow-up post where we’ll cover real-world customer case studies leveraging semantics in production.\u003C/p\u003E\r\n\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"}},":itemsOrder":["blog_text","image","blog_text_2131723365","image_679668369","blog_text_1146053579","quote_item","blog_text_1390016524","image_1878868536","blog_text_190091065","code_snippet","blog_text_2124538559","code_snippet_459763898","blog_text_472101785","code_snippet_1451248663","blog_text_1132243723","code_snippet_189871437","blog_text_780361790"],":type":"wcm/foundation/components/responsivegrid"},"responsivegrid_premium_content_banner":{"columnClassNames":{},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnCount":12,"appliedCssClassNames":"snowflake-responsive-component-top-padding-medium",":items":{},":itemsOrder":[],":type":"wcm/foundation/components/responsivegrid"},"container_author_chip":{"columnClassNames":{"author_chip":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-42ad7e119b",":type":"snowflake-site/components/container",":items":{"author_chip":{"id":"author-chip-860b35d3e7","title":{"id":"title","type":"heading2","lines":["Learn more about the authors"],":type":"snowflake-site/components/title-v2"},"authors":[{"authorImage":{"id":"image-2ebcf6fbc7","isLcpImage":false,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--db167c3d-7d49-4abc-8edb-41510b90bac8/aniruth-narayanan.jpg?quality=85&preferwebp=true","lazyEnabled":true,"height":"1901","width":"1900",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-9af84be8e6","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/aniruth-narayanan/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Aniruth Narayanan"},"authorTitle":"Product Manager"}],":type":"snowflake-site/components/blog/author-chip"}},":itemsOrder":["author_chip"],"appliedCssClassNames":"snowflake-responsive-component-top-padding-medium"},"container_share_article":{"columnClassNames":{"share_article":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-3be169547e",":type":"snowflake-site/components/container",":items":{"share_article":{"id":"share-article-965abc3149","linkedInShareUrl":"https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.snowflake.com%2Fcontent%2Fsnowflake-site%2Fglobal%2Fen%2Fblog%2Fsnowflake-internal-context-layer-for-ai-agents&title=Building+an+Internal+Context+Layer+for+AI+Agents+at+Snowflake","twitterShareUrl":"https://x.com/intent/post?url=https%3A%2F%2Fwww.snowflake.com%2Fcontent%2Fsnowflake-site%2Fglobal%2Fen%2Fblog%2Fsnowflake-internal-context-layer-for-ai-agents&text=Building+an+Internal+Context+Layer+for+AI+Agents+at+Snowflake","facebookShareUrl":"https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.snowflake.com%2Fcontent%2Fsnowflake-site%2Fglobal%2Fen%2Fblog%2Fsnowflake-internal-context-layer-for-ai-agents",":type":"snowflake-site/components/blog/share-article"}},":itemsOrder":["share_article"],"appliedCssClassNames":"snowflake-responsive-component-top-padding-small"}},":itemsOrder":["container_hero","responsivegrid_content","responsivegrid_premium_content_banner","container_author_chip","container_share_article"]},"flexible_column_content_container_2":{"layout":"SIMPLE","id":"container-3dba3e374a",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"blog_table_of_content":{"id":"blog-table-of-content-94bfa8e119","tableOfContents":[],":type":"snowflake-site/components/blog/blog-table-of-content"}},":itemsOrder":["blog_table_of_content"]},"isBlogPage":true,"isActiveTOC":false,":type":"snowflake-site/components/flexible-column-container"},"related_content":{"id":"related-content-f7c8062799","relatedContent":[],"isBlogPage":true,":type":"snowflake-site/components/blog/related-content"}},":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","columnClassNames":{"flexible_column_cont":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-351194ca36",":type":"snowflake-site/components/container",":items":{"flexible_column_cont":{"id":"flexible-column-container-2035c71a17","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-f621409d77",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"marketo_v2":{"id":"marketo-v2-512de56fde","marketoForm":{"edit":false,"formId":"3320","successUrl":null,"script":null,"hidden":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","partnerCampaignPage":false,"marketoConfigured":true,"formConfigured":true,":type":"snowflake-site/components/form/marketo-v2"},"text":{"id":"text-c92947fc53","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"]},"isBlogPage":true,"isActiveTOC":false,":type":"snowflake-site/components/flexible-column-container"}},":itemsOrder":["flexible_column_cont"],"appliedCssClassNames":"snowflake-container"},"experiencefragment-pre-footer":{"id":"experiencefragment-caa08c96bb","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-5f7824087a","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}","isGSAPEnabled":false,":type":"snowflake-site/components/markup-editor"},"markup_editor-table":{"id":"markup-editor-e0d3f6dfa8","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)}","isGSAPEnabled":false,":type":"snowflake-site/components/markup-editor"},"experiencefragment-footer":{"id":"experiencefragment-139e56876b","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"],"analyticsEnabled":true,"locale":"en"}
  