File size: 65,549 Bytes
3d16fe6
896453f
 
1f7780e
896453f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fcf298e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
<!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-deployment/databricks-migration" data-has-hydrated=false><head><meta charset=UTF-8><meta name=generator content="Docusaurus v3.10.0"><title data-rh=true>Databricks Agent Bricks Refactoring - Summary | Open Navigator</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"/><meta data-rh=true property=og:image content=https://www.communityone.com/img/docusaurus-social-card.jpg /><meta data-rh=true name=twitter:image content=https://www.communityone.com/img/docusaurus-social-card.jpg /><meta data-rh=true property=og:url content=https://www.communityone.com/docs/deployment/databricks-migration /><meta data-rh=true property=og:locale content=en /><meta data-rh=true name=docusaurus_locale content=en /><meta data-rh=true name=docsearch:language content=en /><meta data-rh=true name=keywords content="civic engagement, policy tracking, meeting minutes, nonprofit tracking, municipal government, advocacy, open data, local government"/><meta data-rh=true property=og:type content=website /><meta data-rh=true property=og:site_name content="Open Navigator"/><meta data-rh=true name=twitter:card content=summary_large_image /><meta data-rh=true name=docusaurus_version content=current /><meta data-rh=true name=docusaurus_tag content=docs-default-current /><meta data-rh=true name=docsearch:version content=current /><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current /><meta data-rh=true property=og:title content="Databricks Agent Bricks Refactoring - Summary | Open Navigator"/><meta data-rh=true name=description content="What Was Done"/><meta data-rh=true property=og:description content="What Was Done"/><link data-rh=true rel=icon href=/img/favicon.ico /><link data-rh=true rel=canonical href=https://www.communityone.com/docs/deployment/databricks-migration /><link data-rh=true rel=alternate href=https://www.communityone.com/docs/deployment/databricks-migration hreflang=en /><link data-rh=true rel=alternate href=https://www.communityone.com/docs/deployment/databricks-migration hreflang=x-default /><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://www.communityone.com/docs/for-developers","name":"Developers & Technical Users","position":1},{"@type":"ListItem","item":"https://www.communityone.com/docs/deployment/databricks-migration","name":"Databricks Agent Bricks Refactoring - Summary","position":2}]}</script><link rel=alternate type=application/rss+xml href=/blog/rss.xml title="Open Navigator RSS Feed"><link rel=alternate type=application/atom+xml href=/blog/atom.xml title="Open Navigator Atom Feed"><link rel=preconnect href=https://www.google-analytics.com><link rel=preconnect href=https://www.googletagmanager.com><script async src="https://www.googletagmanager.com/gtag/js?id=G-5EQV815915"></script><script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-5EQV815915",{anonymize_ip:!0})</script><link rel=stylesheet href=/assets/css/styles.c89d6b2d.css /><script src=/assets/js/runtime~main.c8fa085e.js defer></script><script src=/assets/js/main.6e24e536.js defer></script></head><body><svg style="display: none;"><defs>
<symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme-7e9")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><link rel=preload as=image href=/img/communityone_logo.svg /><script type=application/ld+json>{"@context":"https://schema.org","@type":"Organization","address":{"@type":"PostalAddress","addressCountry":"US","addressLocality":"Tuscaloosa","addressRegion":"AL","postalCode":"35406","streetAddress":"5617 Lakeridge Court"},"contactPoint":{"@type":"ContactPoint","availableLanguage":["English"],"contactType":"Customer Service","email":"johnbowyer@communityone.com"},"description":"Track 90,000+ jurisdictions, 1.8M nonprofits, and analyze meeting minutes with AI. The open path to everything local.","email":"johnbowyer@communityone.com","legalName":"CommunityOne","logo":"https://www.communityone.com/img/communityone_logo.svg","name":"CommunityOne","sameAs":["https://www.facebook.com/communityone","https://www.instagram.com/communityone","https://twitter.com/communityone","https://www.linkedin.com/company/communityone","https://www.youtube.com/@communityone","https://discord.gg/communityone","https://github.com/getcommunityone/open-navigator"],"url":"https://www.communityone.com"}</script><script type=application/ld+json>{"@context":"https://schema.org","@type":"WebSite","alternateName":"CommunityOne Open Navigator","description":"AI-powered civic engagement platform tracking jurisdictions, nonprofits, and government meetings","name":"Open Navigator","potentialAction":{"@type":"SearchAction","query-input":"required name=search_term_string","target":{"@type":"EntryPoint","urlTemplate":"https://www.communityone.com/search?q={search_term_string}"}},"url":"https://www.communityone.com"}</script><script type=application/ld+json>{"@context":"https://schema.org","@type":"SoftwareApplication","aggregateRating":{"@type":"AggregateRating","ratingCount":"1","ratingValue":"5"},"applicationCategory":"BusinessApplication","description":"Track 90,000+ jurisdictions, 1.8M nonprofits, and analyze meeting minutes with AI","featureList":["Track 90,000+ jurisdictions","Monitor 1.8M nonprofits","Analyze meeting minutes","Legislative bill tracking","Campaign finance data"],"name":"Open Navigator","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"operatingSystem":"Web","screenshot":"https://www.communityone.com/img/docusaurus-social-card.jpg","softwareVersion":"1.0.0"}</script><div role=region aria-label="Skip to main content"><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a href=https://www.communityone.com target=_self rel="noopener noreferrer" class=navbar__brand><div class=navbar__logo><img src=/img/communityone_logo.svg alt="CommunityOne Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"/><img src=/img/communityone_logo.svg alt="CommunityOne Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"/></div><b class="navbar__title text--truncate">Open Navigator Home</b></a><a class="navbar__item navbar__link" href=/docs/intro>Getting Started</a><a class="navbar__item navbar__link" href=/docs/for-families>Families & Individuals</a><a class="navbar__item navbar__link" href=/docs/for-advocates>Policy Makers</a><a class="navbar__item navbar__link" href=/docs/for-developers>Developers</a><a class="navbar__item navbar__link" href=/docs/data-sources/citations>Data and Terms</a><a class="navbar__item navbar__link" href=/blog>Blog</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href=https://github.com/getcommunityone/open-navigator-for-engagement target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class=docsWrapper_hBAB><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type=button></button><div class=docRoot_UBD9><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class=sidebarViewport_aRkj><div class=sidebar_njMd><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=true href=/docs/intro><span title="Getting Started" class=categoryLinkLabel_W154>Getting Started</span></a></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/intro><span title=Introduction class=linkLabel_WmDU>Introduction</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/open-navigator><span title="Open Navigator" class=linkLabel_WmDU>Open Navigator</span></a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist" href=/docs/for-families><span title="Families & Individuals" class=categoryLinkLabel_W154>Families & Individuals</span></a><button aria-label="Collapse sidebar category 'Families & Individuals'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul class=menu__list><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/families/community-events><span title="Resources for Families" class=categoryLinkLabel_W154>Resources for Families</span></a></div><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/open-navigator><span title="Getting Started with Open Navigator" class=linkLabel_WmDU>Getting Started with Open Navigator</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/data-sources/citations><span title="Data and Citations" class=linkLabel_WmDU>Data and Citations</span></a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist" href=/docs/for-advocates><span title="Policy Makers & Advocates" class=categoryLinkLabel_W154>Policy Makers & Advocates</span></a><button aria-label="Collapse sidebar category 'Policy Makers & Advocates'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul class=menu__list><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/data-sources/overview><span title="Understanding the Data" class=categoryLinkLabel_W154>Understanding the Data</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/guides/political-economy><span title="Analysis & Strategy" class=categoryLinkLabel_W154>Analysis & Strategy</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/case-studies/tuscaloosa-complete><span title="Real-World Examples" class=categoryLinkLabel_W154>Real-World Examples</span></a></div></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--active" href=/docs/for-developers><span title="Developers & Technical Users" class=categoryLinkLabel_W154>Developers & Technical Users</span></a><button aria-label="Collapse sidebar category 'Developers & Technical Users'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul class=menu__list><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/quickstart><span title="Setup & Installation" class=categoryLinkLabel_W154>Setup & Installation</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/data-sources/citations><span title="Data Sources (Technical)" class=categoryLinkLabel_W154>Data Sources (Technical)</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/guides/jurisdiction-setup><span title="How-To Guides" class=categoryLinkLabel_W154>How-To Guides</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/integrations/mcp-server><span title=Integrations class=categoryLinkLabel_W154>Integrations</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role=button aria-expanded=true tabindex=0 href=/docs/deployment/databricks-apps><span title=Deployment class=categoryLinkLabel_W154>Deployment</span></a></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/deployment/databricks-apps><span title="Databricks Apps Deployment Guide" class=linkLabel_WmDU>Databricks Apps Deployment Guide</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/docs/deployment/databricks-migration><span title="Databricks Agent Bricks Refactoring - Summary" class=linkLabel_WmDU>Databricks Agent Bricks Refactoring - Summary</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/deployment/quickstart-databricks><span title="Quick Start Guide - React + FastAPI Databricks App" class=linkLabel_WmDU>Quick Start Guide - React + FastAPI Databricks App</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/deployment/huggingface-spaces><span title="Hugging Face Spaces Deployment" class=linkLabel_WmDU>Hugging Face Spaces Deployment</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/deployment/oauth-providers-setup><span title="OAuth Providers Setup" class=linkLabel_WmDU>OAuth Providers Setup</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/deployment/authentication-setup><span title="Authentication Setup Guide" class=linkLabel_WmDU>Authentication Setup Guide</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/deployment/schema-migration><span title="Schema Migration Guide" class=linkLabel_WmDU>Schema Migration Guide</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/deployment/build-verification><span title="Build Verification & CI/CD" class=linkLabel_WmDU>Build Verification & CI/CD</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/deployment/variable-migration><span title="πŸ”„ Variable Name Migration Guide" class=linkLabel_WmDU>πŸ”„ Variable Name Migration Guide</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/deployment/d-drive-configuration><span title="D Drive Configuration for Large Datasets" class=linkLabel_WmDU>D Drive Configuration for Large Datasets</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/deployment/docker-troubleshooting><span title="πŸ› Docker Build Troubleshooting Guide" class=linkLabel_WmDU>πŸ› Docker Build Troubleshooting Guide</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/deployment/build-protection><span title="Build Protection & CI/CD" class=linkLabel_WmDU>Build Protection & CI/CD</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/deployment/rename-repository><span title="Rename Repository & Make Public" class=linkLabel_WmDU>Rename Repository & Make Public</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/deployment/costs><span title="πŸ’° Cost Breakdown: $0 for Data Access" class=linkLabel_WmDU>πŸ’° Cost Breakdown: $0 for Data Access</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/deployment/jurisdiction-discovery><span title="Jurisdiction Discovery - Deployment Options" class=linkLabel_WmDU>Jurisdiction Discovery - Deployment Options</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/deployment/scale><span title="πŸš€ RUNNING DISCOVERY FOR ALL U.S. CITIES AND COUNTIES" class=linkLabel_WmDU>πŸš€ RUNNING DISCOVERY FOR ALL U.S. CITIES AND COUNTIES</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/deployment/storage><span title="πŸ’° COST-EFFECTIVE STORAGE STRATEGY (Personal Budget)" class=linkLabel_WmDU>πŸ’° COST-EFFECTIVE STORAGE STRATEGY (Personal Budget)</span></a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/development/database-setup><span title=Development class=categoryLinkLabel_W154>Development</span></a></div></ul></ul></nav></div></div></aside><main class=docMainContainer_TBSr><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_VOVn"><div class=docItemContainer_Djhp><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label=Breadcrumbs><ul class=breadcrumbs><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_YNFT><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li class=breadcrumbs__item><a class=breadcrumbs__link href=/docs/for-developers><span>Developers & Technical Users</span></a><li class=breadcrumbs__item><span class=breadcrumbs__link>Deployment</span><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>Databricks Agent Bricks Refactoring - Summary</span></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type=button class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Databricks Agent Bricks Refactoring - Summary</h1></header>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=what-was-done>What Was Done<a href=#what-was-done class=hash-link aria-label="Direct link to What Was Done" title="Direct link to What Was Done" translate=no>​</a></h2>
<p>This system has been refactored to support <strong>Databricks Agent Bricks</strong> (Mosaic AI Agent Framework), enabling production-ready deployment on Databricks with full governance, monitoring, and scalability.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=new-files-created>New Files Created<a href=#new-files-created class=hash-link aria-label="Direct link to New Files Created" title="Direct link to New Files Created" translate=no>​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=1-core-agent-infrastructure>1. <strong>Core Agent Infrastructure</strong><a href=#1-core-agent-infrastructure class=hash-link aria-label="Direct link to 1-core-agent-infrastructure" title="Direct link to 1-core-agent-infrastructure" translate=no>​</a></h3>
<ul>
<li class="">
<p><code>agents/mlflow_base.py</code> - MLflow Pyfunc base classes for agents</p>
<ul>
<li class=""><code>MLflowAgentBase</code>: Base class with tracing, Model Serving compatibility</li>
<li class=""><code>MLflowChainAgent</code>: LangChain integration with automatic logging</li>
<li class="">Automatic signature inference</li>
<li class="">Unity Catalog registration methods</li>
<li class="">Model Serving deployment helpers</li>
</ul>
</li>
<li class="">
<p><code>agents/mlflow_classifier.py</code> - Production classifier agent</p>
<ul>
<li class="">Hybrid keyword + LLM classification</li>
<li class="">MLflow tracing for all calls</li>
<li class="">Unity Catalog ready</li>
<li class="">Can be deployed to Model Serving</li>
<li class="">Includes registration script</li>
</ul>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=2-deployment--operations>2. <strong>Deployment & Operations</strong><a href=#2-deployment--operations class=hash-link aria-label="Direct link to 2-deployment--operations" title="Direct link to 2-deployment--operations" translate=no>​</a></h3>
<ul>
<li class="">
<p><code>databricks/deployment.py</code> - Deployment automation</p>
<ul>
<li class=""><code>AgentDeploymentManager</code> class</li>
<li class="">Register agents to Unity Catalog</li>
<li class="">Deploy to Model Serving endpoints</li>
<li class="">Multi-agent endpoints with traffic splitting</li>
<li class="">Endpoint testing and monitoring</li>
<li class="">Auto-scaling configuration</li>
</ul>
</li>
<li class="">
<p><code>databricks/evaluation.py</code> - Quality assurance</p>
<ul>
<li class=""><code>AgentEvaluator</code> class</li>
<li class="">Automated evaluation pipelines</li>
<li class="">A/B testing between versions</li>
<li class="">Metrics: accuracy, precision, recall, F1, latency</li>
<li class="">Confusion matrix generation</li>
<li class="">Feedback loop integration with Delta Lake</li>
</ul>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=3-interactive-development>3. <strong>Interactive Development</strong><a href=#3-interactive-development class=hash-link aria-label="Direct link to 3-interactive-development" title="Direct link to 3-interactive-development" translate=no>​</a></h3>
<ul>
<li class="">
<p><code>databricks/notebooks/01_agent_bricks_quickstart.py</code> - Databricks notebook</p>
<ul>
<li class="">Step-by-step deployment guide</li>
<li class="">Local testing examples</li>
<li class="">Unity Catalog registration</li>
<li class="">Model Serving deployment</li>
<li class="">Evaluation examples</li>
<li class="">Delta Lake queries</li>
<li class="">Monitoring and observability</li>
</ul>
</li>
<li class="">
<p><code>databricks/README.md</code> - Comprehensive documentation</p>
<ul>
<li class="">Architecture diagrams</li>
<li class="">Deployment workflows</li>
<li class="">API usage examples</li>
<li class="">Cost considerations</li>
<li class="">Troubleshooting guide</li>
<li class="">Best practices</li>
</ul>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=4-dependencies>4. <strong>Dependencies</strong><a href=#4-dependencies class=hash-link aria-label="Direct link to 4-dependencies" title="Direct link to 4-dependencies" translate=no>​</a></h3>
<ul>
<li class="">Updated <code>requirements-cpu.txt</code> with:<!-- -->
<ul>
<li class=""><code>mlflow>=2.10.0</code> - MLflow tracking and serving</li>
<li class=""><code>databricks-agents>=0.1.0</code> - Agent Framework</li>
<li class=""><code>databricks-vectorsearch>=0.22.0</code> - Vector search</li>
<li class=""><code>langgraph>=0.0.20</code> - Stateful agent graphs</li>
<li class=""><code>databricks-sdk>=0.18.0</code> - Databricks API client</li>
</ul>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=5-updated-existing-files>5. <strong>Updated Existing Files</strong><a href=#5-updated-existing-files class=hash-link aria-label="Direct link to 5-updated-existing-files" title="Direct link to 5-updated-existing-files" translate=no>​</a></h3>
<ul>
<li class=""><code>README.md</code> - Added Databricks Agent Bricks section</li>
<li class=""><code>install.sh</code> - Detects and uses <code>requirements-cpu.txt</code></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=key-features-added>Key Features Added<a href=#key-features-added class=hash-link aria-label="Direct link to Key Features Added" title="Direct link to Key Features Added" translate=no>​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=1-mlflow-integration>1. <strong>MLflow Integration</strong><a href=#1-mlflow-integration class=hash-link aria-label="Direct link to 1-mlflow-integration" title="Direct link to 1-mlflow-integration" translate=no>​</a></h3>
<p>βœ… Automatic tracing of all agent calls
βœ… LLM request/response logging
βœ… Metrics tracking (latency, tokens, cost)
βœ… Experiment tracking and versioning
βœ… Model registry integration</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=2-unity-catalog-governance>2. <strong>Unity Catalog Governance</strong><a href=#2-unity-catalog-governance class=hash-link aria-label="Direct link to 2-unity-catalog-governance" title="Direct link to 2-unity-catalog-governance" translate=no>​</a></h3>
<p>βœ… Centralized model registration
βœ… Permissions and access control
βœ… Data lineage tracking
βœ… Version management
βœ… Tag-based organization</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=3-model-serving>3. <strong>Model Serving</strong><a href=#3-model-serving class=hash-link aria-label="Direct link to 3-model-serving" title="Direct link to 3-model-serving" translate=no>​</a></h3>
<p>βœ… REST API endpoints
βœ… Auto-scaling (scale-to-zero capable)
βœ… A/B testing with traffic splitting
βœ… Multi-agent pipelines
βœ… Monitoring and alerting</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=4-evaluation-framework>4. <strong>Evaluation Framework</strong><a href=#4-evaluation-framework class=hash-link aria-label="Direct link to 4-evaluation-framework" title="Direct link to 4-evaluation-framework" translate=no>​</a></h3>
<p>βœ… Automated quality metrics
βœ… Regression detection
βœ… Version comparison
βœ… Confusion matrices
βœ… Feedback loop from production</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=5-production-ready>5. <strong>Production Ready</strong><a href=#5-production-ready class=hash-link aria-label="Direct link to 5-production-ready" title="Direct link to 5-production-ready" translate=no>​</a></h3>
<p>βœ… CPU-only compatibility (no GPU needed)
βœ… Enterprise monitoring
βœ… Cost optimization (keyword filtering before LLM)
βœ… Error handling and retries
βœ… Comprehensive logging</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=deployment-architecture>Deployment Architecture<a href=#deployment-architecture class=hash-link aria-label="Direct link to Deployment Architecture" title="Direct link to Deployment Architecture" translate=no>​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚                    Databricks Workspace                   β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚                                                            β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”‚  Unity Catalog   │◄──────  MLflow Tracking   β”‚       β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”‚  - Policy Class. β”‚      β”‚  - Experiments     β”‚       β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”‚  - Sentiment An. β”‚      β”‚  - Traces          β”‚       β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”‚  - Advocacy Gen. β”‚      β”‚  - Metrics         β”‚       β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚           β”‚                                               β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚           β–Ό                                               β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”           β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”‚      Model Serving Endpoints              β”‚           β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚           β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”‚  β”‚ Classifier β”‚  β”‚ Sentiment Analyzer  β”‚ β”‚           β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”‚  β”‚ (Small)    β”‚  β”‚ (Small)             β”‚ β”‚           β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”‚  β”‚ Scale-to-0 β”‚  β”‚ Scale-to-0          β”‚ β”‚           β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚           β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”‚                β”‚                                          β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">                 β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">                 β–Ό</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">         β”‚  External API  β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">         β”‚  FastAPI App   β”‚</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜</span><br/></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=usage-examples>Usage Examples<a href=#usage-examples class=hash-link aria-label="Direct link to Usage Examples" title="Direct link to Usage Examples" translate=no>​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=register-agent-to-unity-catalog>Register Agent to Unity Catalog<a href=#register-agent-to-unity-catalog class=hash-link aria-label="Direct link to Register Agent to Unity Catalog" title="Direct link to Register Agent to Unity Catalog" translate=no>​</a></h3>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-python codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token keyword" style=color:#00009f>from</span><span class="token plain"> agents</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">mlflow_classifier </span><span class="token keyword" style=color:#00009f>import</span><span class="token plain"> PolicyClassifierAgent</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token keyword" style=color:#00009f>from</span><span class="token plain"> databricks</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">deployment </span><span class="token keyword" style=color:#00009f>import</span><span class="token plain"> AgentDeploymentManager</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">manager </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> AgentDeploymentManager</span><span class="token punctuation" style=color:#393A34>(</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">version </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> manager</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">register_agent</span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    agent_class</span><span class="token operator" style=color:#393A34>=</span><span class="token plain">PolicyClassifierAgent</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    agent_name</span><span class="token operator" style=color:#393A34>=</span><span class="token string" style=color:#e3116c>"policy_classifier"</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    description</span><span class="token operator" style=color:#393A34>=</span><span class="token string" style=color:#e3116c>"Classifies documents for oral health topics"</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    tags</span><span class="token operator" style=color:#393A34>=</span><span class="token punctuation" style=color:#393A34>{</span><span class="token string" style=color:#e3116c>"team"</span><span class="token punctuation" style=color:#393A34>:</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>"advocacy"</span><span class="token punctuation" style=color:#393A34>}</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token punctuation" style=color:#393A34>)</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=deploy-to-model-serving>Deploy to Model Serving<a href=#deploy-to-model-serving class=hash-link aria-label="Direct link to Deploy to Model Serving" title="Direct link to Deploy to Model Serving" translate=no>​</a></h3>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-python codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">endpoint_url </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> manager</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">deploy_agent</span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    agent_name</span><span class="token operator" style=color:#393A34>=</span><span class="token string" style=color:#e3116c>"policy_classifier"</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    endpoint_name</span><span class="token operator" style=color:#393A34>=</span><span class="token string" style=color:#e3116c>"policy-classifier-prod"</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    workload_size</span><span class="token operator" style=color:#393A34>=</span><span class="token string" style=color:#e3116c>"Small"</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    scale_to_zero</span><span class="token operator" style=color:#393A34>=</span><span class="token boolean" style=color:#36acaa>True</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token punctuation" style=color:#393A34>)</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=evaluate-agent>Evaluate Agent<a href=#evaluate-agent class=hash-link aria-label="Direct link to Evaluate Agent" title="Direct link to Evaluate Agent" translate=no>​</a></h3>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-python codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token keyword" style=color:#00009f>from</span><span class="token plain"> databricks</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">evaluation </span><span class="token keyword" style=color:#00009f>import</span><span class="token plain"> AgentEvaluator</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">evaluator </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> AgentEvaluator</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>"policy_classifier"</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">metrics </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> evaluator</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">evaluate_classifier</span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    model_uri</span><span class="token operator" style=color:#393A34>=</span><span class="token string" style=color:#e3116c>"models:/main.agents.policy_classifier/1"</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    test_documents</span><span class="token operator" style=color:#393A34>=</span><span class="token plain">test_docs</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    ground_truth</span><span class="token operator" style=color:#393A34>=</span><span class="token plain">labels</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token keyword" style=color:#00009f>print</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string-interpolation string" style=color:#e3116c>f"Accuracy: </span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>{</span><span class="token string-interpolation interpolation">metrics</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>.</span><span class="token string-interpolation interpolation">accuracy</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>:</span><span class="token string-interpolation interpolation format-spec">.2%</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>}</span><span class="token string-interpolation string" style=color:#e3116c>"</span><span class="token punctuation" style=color:#393A34>)</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=invoke-via-api>Invoke via API<a href=#invoke-via-api class=hash-link aria-label="Direct link to Invoke via API" title="Direct link to Invoke via API" translate=no>​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">curl -X POST https://workspace.cloud.databricks.com/serving-endpoints/policy-classifier-prod/invocations \</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">  -H "Authorization: Bearer $DATABRICKS_TOKEN" \</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">  -H "Content-Type: application/json" \</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">  -d '{</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    "dataframe_records": [{</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">      "document_id": "doc_001",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">      "title": "Meeting",</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">      "content": "Fluoride discussion..."</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    }]</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">  }'</span><br/></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=benefits>Benefits<a href=#benefits class=hash-link aria-label="Direct link to Benefits" title="Direct link to Benefits" translate=no>​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=before-custom-implementation>Before (Custom Implementation)<a href=#before-custom-implementation class=hash-link aria-label="Direct link to Before (Custom Implementation)" title="Direct link to Before (Custom Implementation)" translate=no>​</a></h3>
<ul>
<li class="">❌ Manual deployment and versioning</li>
<li class="">❌ No built-in observability</li>
<li class="">❌ Limited scalability</li>
<li class="">❌ No governance or lineage</li>
<li class="">❌ Manual evaluation pipelines</li>
<li class="">❌ Complex monitoring setup</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=after-databricks-agent-bricks>After (Databricks Agent Bricks)<a href=#after-databricks-agent-bricks class=hash-link aria-label="Direct link to After (Databricks Agent Bricks)" title="Direct link to After (Databricks Agent Bricks)" translate=no>​</a></h3>
<ul>
<li class="">βœ… One-command deployment</li>
<li class="">βœ… Automatic tracing and logging</li>
<li class="">βœ… Auto-scaling Model Serving</li>
<li class="">βœ… Unity Catalog governance</li>
<li class="">βœ… Built-in evaluation framework</li>
<li class="">βœ… Enterprise monitoring included</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=cost-optimization>Cost Optimization<a href=#cost-optimization class=hash-link aria-label="Direct link to Cost Optimization" title="Direct link to Cost Optimization" translate=no>​</a></h2>
<p>The refactored system includes several cost optimizations:</p>
<ol>
<li class=""><strong>Hybrid Classification</strong>: Uses keyword matching before expensive LLM calls</li>
<li class=""><strong>Scale-to-Zero</strong>: Endpoints scale down when idle</li>
<li class=""><strong>Batch Processing</strong>: Supports bulk document classification</li>
<li class=""><strong>Caching</strong>: Frequently requested results can be cached</li>
<li class=""><strong>Small Workloads</strong>: Starts with small endpoints, scales on demand</li>
</ol>
<p>Estimated cost: <strong>~$0.10-0.50/hour for active endpoints</strong> (much less with scale-to-zero)</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=next-steps>Next Steps<a href=#next-steps class=hash-link aria-label="Direct link to Next Steps" title="Direct link to Next Steps" translate=no>​</a></h2>
<ol>
<li class="">
<p><strong>Deploy to Databricks</strong>:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">python -m databricks.deployment</span><br/></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Run Evaluation</strong>:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">python -m databricks.evaluation</span><br/></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Test in Notebook</strong>: Open <code>databricks/notebooks/01_agent_bricks_quickstart.py</code></p>
</li>
<li class="">
<p><strong>Monitor Production</strong>: Set up alerts in Databricks UI</p>
</li>
<li class="">
<p><strong>Add Feedback Loop</strong>: Collect corrections and retrain</p>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=migration-path>Migration Path<a href=#migration-path class=hash-link aria-label="Direct link to Migration Path" title="Direct link to Migration Path" translate=no>​</a></h2>
<p>For existing users:</p>
<ol>
<li class="">βœ… <strong>Standalone mode still works</strong> - No breaking changes to existing code</li>
<li class="">πŸ”„ <strong>Gradual migration</strong> - Can use both modes simultaneously</li>
<li class="">☁️ <strong>Databricks optional</strong> - Only needed for production scale</li>
<li class="">🎯 <strong>Choose your path</strong>:<!-- -->
<ul>
<li class="">Small projects: Use standalone mode</li>
<li class="">Production/Enterprise: Use Databricks Agent Bricks</li>
</ul>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=questions>Questions?<a href=#questions class=hash-link aria-label="Direct link to Questions?" title="Direct link to Questions?" translate=no>​</a></h2>
<ul>
<li class="">See <a class="" href=/docs/deployment/databricks/README.md><code>databricks/README.md</code></a> for detailed docs</li>
<li class="">Run <code>databricks/notebooks/01_agent_bricks_quickstart.py</code> for hands-on tutorial</li>
<li class="">Check examples in <code>databricks/deployment.py</code> and <code>databricks/evaluation.py</code></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=summary>Summary<a href=#summary class=hash-link aria-label="Direct link to Summary" title="Direct link to Summary" translate=no>​</a></h2>
<p>This refactoring transforms the Oral Health Policy Pulse from a standalone multi-agent system into a <strong>production-ready, enterprise-grade application</strong> that leverages Databricks' full stack for AI governance, deployment, and monitoring. The system now has:</p>
<ul>
<li class="">🏒 <strong>Enterprise deployment</strong> via Model Serving</li>
<li class="">πŸ“Š <strong>Automatic observability</strong> with MLflow tracing</li>
<li class="">πŸ” <strong>Data governance</strong> through Unity Catalog</li>
<li class="">πŸ“ˆ <strong>Quality assurance</strong> with evaluation framework</li>
<li class="">πŸ’° <strong>Cost optimization</strong> with scale-to-zero and hybrid approach</li>
<li class="">πŸš€ <strong>Production readiness</strong> out of the box</li>
</ul>
<p>All while maintaining backward compatibility with the standalone mode! πŸŽ‰</div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href=https://github.com/getcommunityone/open-navigator-for-engagement/tree/main/website/docs/deployment/databricks-migration.md target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_Z9Sw aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href=/docs/deployment/databricks-apps><div class=pagination-nav__sublabel>Previous</div><div class=pagination-nav__label>Databricks Apps Deployment Guide</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/docs/deployment/quickstart-databricks><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>Quick Start Guide - React + FastAPI Databricks App</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href=#what-was-done class="table-of-contents__link toc-highlight">What Was Done</a><li><a href=#new-files-created class="table-of-contents__link toc-highlight">New Files Created</a><ul><li><a href=#1-core-agent-infrastructure class="table-of-contents__link toc-highlight">1. <strong>Core Agent Infrastructure</strong></a><li><a href=#2-deployment--operations class="table-of-contents__link toc-highlight">2. <strong>Deployment & Operations</strong></a><li><a href=#3-interactive-development class="table-of-contents__link toc-highlight">3. <strong>Interactive Development</strong></a><li><a href=#4-dependencies class="table-of-contents__link toc-highlight">4. <strong>Dependencies</strong></a><li><a href=#5-updated-existing-files class="table-of-contents__link toc-highlight">5. <strong>Updated Existing Files</strong></a></ul><li><a href=#key-features-added class="table-of-contents__link toc-highlight">Key Features Added</a><ul><li><a href=#1-mlflow-integration class="table-of-contents__link toc-highlight">1. <strong>MLflow Integration</strong></a><li><a href=#2-unity-catalog-governance class="table-of-contents__link toc-highlight">2. <strong>Unity Catalog Governance</strong></a><li><a href=#3-model-serving class="table-of-contents__link toc-highlight">3. <strong>Model Serving</strong></a><li><a href=#4-evaluation-framework class="table-of-contents__link toc-highlight">4. <strong>Evaluation Framework</strong></a><li><a href=#5-production-ready class="table-of-contents__link toc-highlight">5. <strong>Production Ready</strong></a></ul><li><a href=#deployment-architecture class="table-of-contents__link toc-highlight">Deployment Architecture</a><li><a href=#usage-examples class="table-of-contents__link toc-highlight">Usage Examples</a><ul><li><a href=#register-agent-to-unity-catalog class="table-of-contents__link toc-highlight">Register Agent to Unity Catalog</a><li><a href=#deploy-to-model-serving class="table-of-contents__link toc-highlight">Deploy to Model Serving</a><li><a href=#evaluate-agent class="table-of-contents__link toc-highlight">Evaluate Agent</a><li><a href=#invoke-via-api class="table-of-contents__link toc-highlight">Invoke via API</a></ul><li><a href=#benefits class="table-of-contents__link toc-highlight">Benefits</a><ul><li><a href=#before-custom-implementation class="table-of-contents__link toc-highlight">Before (Custom Implementation)</a><li><a href=#after-databricks-agent-bricks class="table-of-contents__link toc-highlight">After (Databricks Agent Bricks)</a></ul><li><a href=#cost-optimization class="table-of-contents__link toc-highlight">Cost Optimization</a><li><a href=#next-steps class="table-of-contents__link toc-highlight">Next Steps</a><li><a href=#migration-path class="table-of-contents__link toc-highlight">Migration Path</a><li><a href=#questions class="table-of-contents__link toc-highlight">Questions?</a><li><a href=#summary class="table-of-contents__link toc-highlight">Summary</a></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Documentation</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/docs/intro>Getting Started</a><li class=footer__item><a class=footer__link-item href=/docs/data-sources/citations>Citations & Data Sources</a><li class=footer__item><a class=footer__link-item href=/docs/data-sources/overview>Data Sources</a><li class=footer__item><a class=footer__link-item href=/docs/for-developers>For Developers</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Resources</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://www.communityone.com target=_blank rel="noopener noreferrer" class=footer__link-item>Launch Open Navigator<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://github.com/getcommunityone/open-navigator-for-engagement target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://www.groundvue.org/ target=_blank rel="noopener noreferrer" class=footer__link-item>GroundVue (Partner)<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Community</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://www.instagram.com/getcommunityone/ target=_blank rel="noopener noreferrer" class=footer__link-item>Instagram<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://www.facebook.com/getcommunityone target=_blank rel="noopener noreferrer" class=footer__link-item>Facebook<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://x.com/getcommunityone/ target=_blank rel="noopener noreferrer" class=footer__link-item>X (Twitter)<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://www.linkedin.com/company/getcommunityone target=_blank rel="noopener noreferrer" class=footer__link-item>LinkedIn<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://www.youtube.com/@getcommunityone target=_blank rel="noopener noreferrer" class=footer__link-item>YouTube<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://discord.gg/uH6Dytek target=_blank rel="noopener noreferrer" class=footer__link-item>Discord<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Legal</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/docs/legal/privacy-policy>Privacy Policy</a><li class=footer__item><a class=footer__link-item href=/docs/legal/terms-of-service>Terms of Service</a><li class=footer__item><a class=footer__link-item href=/docs/legal/data-provider-terms>Data Provider Terms</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>More</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/blog>Blog</a><li class=footer__item><a href=https://github.com/getcommunityone/open-navigator-for-engagement/blob/main/LICENSE target=_blank rel="noopener noreferrer" class=footer__link-item>License (MIT)<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=footer__copyright>Copyright Β© 2026 Community One. Built with Docusaurus.</div></div></div></footer></div></body>