<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Content Hub</title>
    <link>https://ridewithvia.com/resources</link>
    <description>Explore what’s new, what’s next, and what should be on your radar in the world of transportation. Our insights are supported by real-world data from our partners across the globe.</description>
    <language>en</language>
    <pubDate>Wed, 03 Jun 2026 17:54:47 GMT</pubDate>
    <dc:date>2026-06-03T17:54:47Z</dc:date>
    <dc:language>en</dc:language>
    <item>
      <title>How to make paratransit eligibility management easy.</title>
      <link>https://ridewithvia.com/resources/how-to-make-paratransit-eligibility-management-easy</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/how-to-make-paratransit-eligibility-management-easy?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/Eligibility%20manager%20dashboard%20(2).png" alt="eligibility manager" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;span&gt;Eligibility managers are some of the most dedicated people on your team. They know every application deadline. They know the stakes for the riders waiting on a decision. And they show up every day determined to get it right — often despite spreadsheets, scattered reminders, and systems that can make work harder.&lt;/span&gt;&lt;/p&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/how-to-make-paratransit-eligibility-management-easy?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/Eligibility%20manager%20dashboard%20(2).png" alt="eligibility manager" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;span&gt;Eligibility managers are some of the most dedicated people on your team. They know every application deadline. They know the stakes for the riders waiting on a decision. And they show up every day determined to get it right — often despite spreadsheets, scattered reminders, and systems that can make work harder.&lt;/span&gt;&lt;/p&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=39563058&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fridewithvia.com%2Fresources%2Fhow-to-make-paratransit-eligibility-management-easy&amp;amp;bu=https%253A%252F%252Fridewithvia.com%252Fresources&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <pubDate>Thu, 28 May 2026 19:18:16 GMT</pubDate>
      <guid>https://ridewithvia.com/resources/how-to-make-paratransit-eligibility-management-easy</guid>
      <dc:date>2026-05-28T19:18:16Z</dc:date>
      <dc:creator>Lauren Van Oss</dc:creator>
    </item>
    <item>
      <title>MIT study: How transit makes Seattle one of America's most affordable metros</title>
      <link>https://ridewithvia.com/resources/mit-study-how-transit-makes-seattle-one-of-americas-most-affordable-metros</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/mit-study-how-transit-makes-seattle-one-of-americas-most-affordable-metros?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/MIT_Email%20hero-1.jpg" alt="MIT Mobility Initiative Image" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;span&gt;Most readers of this newsletter are probably familiar with the APTA statistic that every $1 invested in public transit yields $5 in economic development. While that national average is impressive, localized data has been harder to come by. Thankfully, a new report from MIT’s Mobility Initiative, &lt;/span&gt;&lt;em&gt;&lt;span&gt;The Value of Transit in Seattle and the King County Region&lt;/span&gt;&lt;/em&gt;&lt;span&gt;, paints a detailed, data-driven picture of what robust transportation investment unlocks. Published in partnership with King County Metro and the Puget Sound Regional Council it underscores the immense economic value of high-quality transit.&lt;/span&gt;&lt;/p&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/mit-study-how-transit-makes-seattle-one-of-americas-most-affordable-metros?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/MIT_Email%20hero-1.jpg" alt="MIT Mobility Initiative Image" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;span&gt;Most readers of this newsletter are probably familiar with the APTA statistic that every $1 invested in public transit yields $5 in economic development. While that national average is impressive, localized data has been harder to come by. Thankfully, a new report from MIT’s Mobility Initiative, &lt;/span&gt;&lt;em&gt;&lt;span&gt;The Value of Transit in Seattle and the King County Region&lt;/span&gt;&lt;/em&gt;&lt;span&gt;, paints a detailed, data-driven picture of what robust transportation investment unlocks. Published in partnership with King County Metro and the Puget Sound Regional Council it underscores the immense economic value of high-quality transit.&lt;/span&gt;&lt;/p&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=39563058&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fridewithvia.com%2Fresources%2Fmit-study-how-transit-makes-seattle-one-of-americas-most-affordable-metros&amp;amp;bu=https%253A%252F%252Fridewithvia.com%252Fresources&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>public-transit; community; research</category>
      <pubDate>Thu, 28 May 2026 17:42:57 GMT</pubDate>
      <guid>https://ridewithvia.com/resources/mit-study-how-transit-makes-seattle-one-of-americas-most-affordable-metros</guid>
      <dc:date>2026-05-28T17:42:57Z</dc:date>
      <dc:creator>Via Transportation</dc:creator>
    </item>
    <item>
      <title>5 things we learned about driver safety from 198 drivers across 19 days</title>
      <link>https://ridewithvia.com/resources/5-things-we-learned-about-driver-safety-from-198-drivers-across-19-days</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/5-things-we-learned-about-driver-safety-from-198-drivers-across-19-days?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/Blog%20Page%20BRT%20(1200%20x%20820%20px).png" alt="Discover key insights on driver safety from a 19-day pilot study" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;span&gt;Safety technology in transit has had a trust problem. Dashcams and telematics collect enormous amounts of data but historically, that data has only flowed in one direction: to dispatchers and fleet managers. Drivers get flagged days after the fact, with little context and no way to course-correct in real time. We wanted to see what would happen if we changed that.&lt;/span&gt;&lt;/p&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/5-things-we-learned-about-driver-safety-from-198-drivers-across-19-days?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/Blog%20Page%20BRT%20(1200%20x%20820%20px).png" alt="Discover key insights on driver safety from a 19-day pilot study" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;span&gt;Safety technology in transit has had a trust problem. Dashcams and telematics collect enormous amounts of data but historically, that data has only flowed in one direction: to dispatchers and fleet managers. Drivers get flagged days after the fact, with little context and no way to course-correct in real time. We wanted to see what would happen if we changed that.&lt;/span&gt;&lt;/p&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=39563058&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fridewithvia.com%2Fresources%2F5-things-we-learned-about-driver-safety-from-198-drivers-across-19-days&amp;amp;bu=https%253A%252F%252Fridewithvia.com%252Fresources&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>Drivers</category>
      <pubDate>Thu, 28 May 2026 17:42:41 GMT</pubDate>
      <guid>https://ridewithvia.com/resources/5-things-we-learned-about-driver-safety-from-198-drivers-across-19-days</guid>
      <dc:date>2026-05-28T17:42:41Z</dc:date>
      <dc:creator>Via Transportation</dc:creator>
    </item>
    <item>
      <title>Same budget, double the ridership; how the City of Rosemead transformed their transit system</title>
      <link>https://ridewithvia.com/resources/same-budget-double-the-ridership-how-the-city-of-rosemead-transformed-their-transit-system</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/same-budget-double-the-ridership-how-the-city-of-rosemead-transformed-their-transit-system?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/Rosemead_blog%20thumbnail.jpg" alt="Same budget, double the ridership; how the City of Rosemead transformed their transit system" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #303030;"&gt;We sat down with Sam Gutierrez, the City of Rosemead’s Director of Public works, to hear how the City was able to reduce the cost per ride of their senior dial-a-ride service by more than 60% while doubling their total public transit ridership - all for the same budget. &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/same-budget-double-the-ridership-how-the-city-of-rosemead-transformed-their-transit-system?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/Rosemead_blog%20thumbnail.jpg" alt="Same budget, double the ridership; how the City of Rosemead transformed their transit system" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #303030;"&gt;We sat down with Sam Gutierrez, the City of Rosemead’s Director of Public works, to hear how the City was able to reduce the cost per ride of their senior dial-a-ride service by more than 60% while doubling their total public transit ridership - all for the same budget. &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=39563058&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fridewithvia.com%2Fresources%2Fsame-budget-double-the-ridership-how-the-city-of-rosemead-transformed-their-transit-system&amp;amp;bu=https%253A%252F%252Fridewithvia.com%252Fresources&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>microtransit</category>
      <pubDate>Thu, 28 May 2026 17:42:10 GMT</pubDate>
      <guid>https://ridewithvia.com/resources/same-budget-double-the-ridership-how-the-city-of-rosemead-transformed-their-transit-system</guid>
      <dc:date>2026-05-28T17:42:10Z</dc:date>
      <dc:creator>Via Transportation</dc:creator>
    </item>
    <item>
      <title>How to protect your OTP with Via’s Overflow Manager</title>
      <link>https://ridewithvia.com/resources/how-to-protect-your-otp-with-vias-overflow-manager</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/how-to-protect-your-otp-with-vias-overflow-manager?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/Trip%20Brokering_0429.jpg" alt="How to protect your OTP with Via’s Overflow Manager" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;span&gt;Some days, transit operations are humming along. And some days, an operator calls out, a vehicle goes down, demand spikes after a major event, or a trip comes in from the farthest edge of your service zone.&lt;/span&gt;&lt;/p&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/how-to-protect-your-otp-with-vias-overflow-manager?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/Trip%20Brokering_0429.jpg" alt="How to protect your OTP with Via’s Overflow Manager" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;span&gt;Some days, transit operations are humming along. And some days, an operator calls out, a vehicle goes down, demand spikes after a major event, or a trip comes in from the farthest edge of your service zone.&lt;/span&gt;&lt;/p&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=39563058&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fridewithvia.com%2Fresources%2Fhow-to-protect-your-otp-with-vias-overflow-manager&amp;amp;bu=https%253A%252F%252Fridewithvia.com%252Fresources&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <pubDate>Wed, 29 Apr 2026 21:03:38 GMT</pubDate>
      <guid>https://ridewithvia.com/resources/how-to-protect-your-otp-with-vias-overflow-manager</guid>
      <dc:date>2026-04-29T21:03:38Z</dc:date>
      <dc:creator>Alexandra Sacristan</dc:creator>
    </item>
    <item>
      <title>How the right software drives high-performing paratransit</title>
      <link>https://ridewithvia.com/resources/how-the-right-software-drives-high-performing-paratransit</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/how-the-right-software-drives-high-performing-paratransit?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/1-Apr-15-2026-09-08-27-5261-PM.png" alt="How the right software drives high-performing paratransit" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/how-the-right-software-drives-high-performing-paratransit?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/1-Apr-15-2026-09-08-27-5261-PM.png" alt="How the right software drives high-performing paratransit" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=39563058&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fridewithvia.com%2Fresources%2Fhow-the-right-software-drives-high-performing-paratransit&amp;amp;bu=https%253A%252F%252Fridewithvia.com%252Fresources&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>Webinar</category>
      <pubDate>Wed, 29 Apr 2026 19:59:19 GMT</pubDate>
      <guid>https://ridewithvia.com/resources/how-the-right-software-drives-high-performing-paratransit</guid>
      <dc:date>2026-04-29T19:59:19Z</dc:date>
      <dc:creator>Via Transportation</dc:creator>
    </item>
    <item>
      <title>Q&amp;A: How CATA saved $2M and grew ridership</title>
      <link>https://ridewithvia.com/resources/qa-how-cata-saved-2m-and-grew-ridership</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/qa-how-cata-saved-2m-and-grew-ridership?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/CATA-blog%20thumbnail.png" alt="How CATA saved $2M and grew ridership" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;span style="font-weight: bold;"&gt;We sat down with the Centre Area Transportation Authority’s (CATA) Chief Operating Officer, Derek Sherman to learn how the agency saved $2M+ per year, drove unprecedented ridership, and served 62% more of their municipalities’ constituents.&lt;/span&gt;&lt;strong&gt;&lt;span style="color: #303030;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/qa-how-cata-saved-2m-and-grew-ridership?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/CATA-blog%20thumbnail.png" alt="How CATA saved $2M and grew ridership" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;span style="font-weight: bold;"&gt;We sat down with the Centre Area Transportation Authority’s (CATA) Chief Operating Officer, Derek Sherman to learn how the agency saved $2M+ per year, drove unprecedented ridership, and served 62% more of their municipalities’ constituents.&lt;/span&gt;&lt;strong&gt;&lt;span style="color: #303030;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=39563058&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fridewithvia.com%2Fresources%2Fqa-how-cata-saved-2m-and-grew-ridership&amp;amp;bu=https%253A%252F%252Fridewithvia.com%252Fresources&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>CATA</category>
      <category>efficiency</category>
      <pubDate>Fri, 17 Apr 2026 21:24:09 GMT</pubDate>
      <guid>https://ridewithvia.com/resources/qa-how-cata-saved-2m-and-grew-ridership</guid>
      <dc:date>2026-04-17T21:24:09Z</dc:date>
      <dc:creator>Via Transportation</dc:creator>
    </item>
    <item>
      <title>California transit funding in 2026: which grant opportunity fits your project?</title>
      <link>https://ridewithvia.com/resources/california-transit-funding-in-2026-which-grant-opportunity-fits-your-project</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/california-transit-funding-in-2026-which-grant-opportunity-fits-your-project?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/CA%20Funding%20Webinar.png" alt="California transit funding in 2026: which grant opportunity fits your project?" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h2&gt;Jump to a funding program to learn more:&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href="#TIRCP" style="font-weight: bold;"&gt;TIRCP: The Transit and Intercity Rail Capital Program&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href="#TCC" style="font-weight: bold;"&gt;TCC: Transformative Climate Communities&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href="#sandag" style="font-weight: bold;"&gt;SANDAG Flexible Fleets&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href="#la-visionary-seed" style="font-weight: bold;"&gt;LA Visionary Seed Fund&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href="#other" style="font-weight: bold;"&gt;Other Programs&lt;/a&gt;&lt;a href="#resources" style="font-weight: bold;"&gt;&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;Prefer audio?&lt;/span&gt; &lt;/span&gt;&lt;a href="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/GMT20260416-180144_Recording_gallery_1760x900.mp4"&gt;&lt;span style="font-style: italic;"&gt;You can tune into the full discussion&amp;nbsp;on playback.&lt;/span&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/california-transit-funding-in-2026-which-grant-opportunity-fits-your-project?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/CA%20Funding%20Webinar.png" alt="California transit funding in 2026: which grant opportunity fits your project?" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h2&gt;Jump to a funding program to learn more:&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href="#TIRCP" style="font-weight: bold;"&gt;TIRCP: The Transit and Intercity Rail Capital Program&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href="#TCC" style="font-weight: bold;"&gt;TCC: Transformative Climate Communities&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href="#sandag" style="font-weight: bold;"&gt;SANDAG Flexible Fleets&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href="#la-visionary-seed" style="font-weight: bold;"&gt;LA Visionary Seed Fund&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href="#other" style="font-weight: bold;"&gt;Other Programs&lt;/a&gt;&lt;a href="#resources" style="font-weight: bold;"&gt;&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;Prefer audio?&lt;/span&gt; &lt;/span&gt;&lt;a href="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/GMT20260416-180144_Recording_gallery_1760x900.mp4"&gt;&lt;span style="font-style: italic;"&gt;You can tune into the full discussion&amp;nbsp;on playback.&lt;/span&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=39563058&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fridewithvia.com%2Fresources%2Fcalifornia-transit-funding-in-2026-which-grant-opportunity-fits-your-project&amp;amp;bu=https%253A%252F%252Fridewithvia.com%252Fresources&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>Webinar</category>
      <pubDate>Fri, 17 Apr 2026 21:16:02 GMT</pubDate>
      <guid>https://ridewithvia.com/resources/california-transit-funding-in-2026-which-grant-opportunity-fits-your-project</guid>
      <dc:date>2026-04-17T21:16:02Z</dc:date>
      <dc:creator>Via Transportation</dc:creator>
    </item>
    <item>
      <title>Beyond Dashboards: Building a Domain-Specific Agentic AI Assistant</title>
      <link>https://ridewithvia.com/resources/beyond-dashboards-building-a-domain-specific-agentic-ai-assistant</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/beyond-dashboards-building-a-domain-specific-agentic-ai-assistant?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/chart1%20(1).png" alt="Beyond Dashboards: Building a Domain-Specific Agentic AI Assistant" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h2&gt;The Power of Tool Orchestration&lt;/h2&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;“Which Texas microtransit services reached new performance milestones in the recent quarter, and who are the key partners involved?”&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;Via is a global transit-tech company with development, operations, partnerships and analytics teams spread across countries and continents. System design, service performance and partnership data are created by different teams and managed across diverse, dedicated systems. Answering the question above requires filtering by service type, geographic lookup, quarterly trend analysis, comparative ranking, and partner accounts mapping. No single database query or API call can answer it, but an AI agent with the right tools can in under a minute!&lt;br&gt;&lt;br&gt;Internal business teams manage interaction with existing and potential partners. These interactions often raise questions that require combining data from multiple sources in ways that the sources weren’t designed for. Traditionally, this means navigating several analytics tools, exporting CSVs, and manually cross-referencing - a slow and error-prone process.&lt;br&gt;&lt;br&gt;The agentic approach is fundamentally different: the agent interprets the user’s intent, selects the right tools, and synthesizes results into a single response. The value is not in any one tool, but in the agent’s ability to orchestrate tools intelligently with routing guardrails and multi-step execution. This architecture is built to scale, so new tools and skills can be added without redesigning the whole system.&lt;br&gt;&lt;br&gt;To make this difference concrete, let’s compare how a typical question is answered using traditional analytics versus an agentic approach.&lt;br&gt;&lt;/p&gt; 
&lt;h2&gt;Tools + Reasoning = Intelligence&lt;/h2&gt; 
&lt;p&gt;&lt;span&gt;We built our internal agentic AI assistant using &lt;/span&gt;&lt;em&gt;&lt;span&gt;LangChain&lt;/span&gt;&lt;/em&gt;&lt;span&gt; for agent orchestration, &lt;/span&gt;&lt;em&gt;&lt;span&gt;AWS Bedrock&lt;/span&gt;&lt;/em&gt;&lt;span&gt; for the LLM, and many specialized tools for accessing Via transportation data and relevant external sources. This is more than a single LLM prompt: the agent can route queries, call tools, execute multi-step analysis, and adapt across conversation context, with user feedback captured for iterative improvement.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;span&gt;Our tool registry includes specialized capabilities:&lt;/span&gt;&lt;/p&gt; 
&lt;div&gt; 
 &lt;div style="overflow-x: auto; max-width: 100%; width: 99.3785%; margin: 0px;"&gt; 
  &lt;table style="border-collapse: collapse; width: 100%; border-image: initial; border: medium none currentcolor; border-color: #999999;"&gt; 
   &lt;colgroup&gt; 
    &lt;col style="width: 13.253%;" width="110"&gt; 
    &lt;col style="width: 30.241%;" width="251"&gt; 
    &lt;col style="width: 34.8193%;" width="289"&gt; 
   &lt;/colgroup&gt; 
   &lt;thead&gt; 
    &lt;tr&gt; 
     &lt;th style="vertical-align: top; border: 1.33333px solid #000000;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;strong&gt;&lt;span&gt;Category&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/th&gt; 
     &lt;th style="vertical-align: top; border: 1.33333px solid #000000;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;strong&gt;&lt;span&gt;Purpose&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/th&gt; 
     &lt;th style="vertical-align: top; border: 1.33333px solid #000000;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;strong&gt;&lt;span&gt;Example Query&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/th&gt; 
    &lt;/tr&gt; 
   &lt;/thead&gt; 
   &lt;tbody&gt; 
    &lt;tr&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Service Design&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Describe transportation service attributes and configuration&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;“Which microtransit services operate in Texas?”&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr style="height: 50px;"&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Performance Metrics&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Retrieve operational metrics and trends&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;"Show me ridership trends for 2025/Q4"&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Geospatial&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Location-based filtering and proximity search&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;“Which services operate within 20 miles of Austin, Tx?”&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;External Data&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Integrate benchmarks &amp;amp; third-party datasets&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;“How do these services compare to NTD averages?”&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;/tr&gt; 
   &lt;/tbody&gt; 
  &lt;/table&gt; 
  &lt;p&gt;&amp;nbsp;&lt;/p&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;span&gt;The anti-pattern in tool design is creating one giant &lt;/span&gt;&lt;em&gt;&lt;span&gt;get_everything()&lt;/span&gt;&lt;/em&gt;&lt;span&gt; tool with 50 parameters. Instead, we built &lt;/span&gt;&lt;strong&gt;&lt;span&gt;a set of focused tools that an agent can chain&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;. This approach offers key advantages:&lt;/span&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;span&gt;The agent can reason about which specific tools to use&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;New combinations emerge without requiring new tools&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Prevents context pollution: focused tools return only relevant data, keeping the agent’s working context clean&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Reduces inference cost: smaller, targeted responses mean fewer tokens and faster processing&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Each tool is easier to maintain and test independently&lt;/span&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;span&gt;The agent’s job is to understand intent, plan execution, chain tools intelligently, synthesize results, and explain its reasoning. These capabilities are what distinguish an agent from a thin LLM wrapper.&lt;/span&gt;&lt;/p&gt; 
&lt;h3&gt;Real example 1: Multi-Step Analysis&lt;/h3&gt; 
&lt;p&gt;&lt;span&gt;Let's see how the agent handles a complex request: &lt;/span&gt;&lt;strong&gt;&lt;span&gt;"Which microtransit services in Texas saw the most significant performance gains in the recent quarter?"&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;The agent interprets “performance gains” as a comparative question, and understands that it first needs to find the relevant services (Texas + Microtransit). It correctly calls a dedicated tool to retrieve them. Next, it selects an appropriate comparison window (Quarter), and ranks results based on KPI deltas by calling a dedicated tool for KPIs retrieval. The tool defines available KPIs, and the agent decides which to use and how to interpret change.&lt;/p&gt; 
&lt;h3&gt;Real example 2: Discovery&lt;/h3&gt; 
&lt;p&gt;&lt;span&gt;Let’s ask an open-ended exploratory question - &lt;/span&gt;&lt;strong&gt;&lt;span&gt;"What is the common feature for top utilization TaaS&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span&gt; services?"&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;&lt;strong&gt;*&lt;/strong&gt;&lt;/em&gt;&lt;span style="font-weight: normal;"&gt;&lt;em&gt;TaaS stands for transportation-as-a-service: services where Via provides turnkey solutions including management of drivers, vehicles, and other operational aspects.&amp;nbsp;&lt;/em&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;span&gt;The agent:&lt;/span&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;span&gt;Retrieves TaaS services&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;And their Q4 2025 utilization metrics&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Identifies the top four performers&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Analyzes their attributes to extract commonalities&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;span&gt;We discover that university campus shuttles achieve higher utilization than typical microtransit services because they serve concentrated demand in small geographic areas with predictable travel patterns. This insight required analysis across multiple data sources!&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;span&gt;The discovery can be improved with conversation mode, which maintains context across follow-up questions. This mirrors how a human analyst works and removes the friction of repeatedly reconfiguring dashboards or re-running queries.&lt;/span&gt;&lt;/p&gt; 
&lt;h2&gt;Development Lessons: Making Agents Reliable&lt;/h2&gt; 
&lt;p&gt;&lt;span&gt;Building an agent that works in production requires addressing several key challenges.&lt;/span&gt;&lt;/p&gt; 
&lt;h3&gt;Challenge 1: Agent Loops&lt;/h3&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Problem:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; The agent repeatedly invokes the same tool with identical parameters, unnecessarily consuming tokens, increasing latency, and frustrating users.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Solution:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; We implemented a layered approach to prevent loops:&lt;/span&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Limited tool results&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;: Each tool returns only essential, structured data (not full datasets), keeping context clean and consistent.&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;High-Reasoning Models:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; We leverage models such as Claude Sonnet to enable the agent to 'self-reflect' on its execution plan. Unlike smaller models prone to repetitive logic, Sonnet more reliably identifies when a task is complete or requires a different tool.&lt;/span&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Recursion limits&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;: As a safety net, we produce structured empty results and enforce a maximum of reasoning steps to force termination if other safeguards fail.&lt;/span&gt;&lt;/p&gt; 
&lt;h3&gt;Challenge 2: User Experience &amp;amp; Performance&lt;/h3&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Problem:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; Queries to analytics databases can take 1-2 minutes to complete. Users need fast, consistent response times and visibility into what the agent is doing to maintain user confidence.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Solution:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; We implemented multiple optimizations to reduce latency and keep users engaged:&lt;/span&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Performance optimization:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; We reduced latency through agent instance caching, data pre-warming, query result caching, and efficient conversation state management via LangGraph’s checkpointer.&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Progress transparency:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; The UI streams real-time updates as the agent reasons and executes tools, giving users visibility into what’s happening. Long-running queries run asynchronously with status updating to maintain responsiveness.&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;span&gt;These optimizations enable the system to provide sub-two minute response times, while keeping users informed throughout the process.&lt;/span&gt;&lt;/p&gt; 
&lt;h3&gt;Challenge 3: Empty Tool Results&lt;/h3&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Problem:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; The agent expects tool results as structured input for reasoning. When a tool encounters missing data or unavailable resources (e.g. database connection failure), errors must be handled gracefully to ensure valid input for the agent.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Solution:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; we built tools to return structured responses with clear status indicators, even when no matching data was found. This prevents tool call loops, maintaining system functionality, and clearly communicating temporary unavailability to users.&lt;/span&gt;&lt;/p&gt; 
&lt;h3&gt;Challenge 4: Hallucinations and Irrelevant Topics&lt;/h3&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Problem:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; LLMs can generate plausible-sounding but incorrect results, especially when asked about data they don't have access to or when extrapolating beyond tools results. As a result, out-of-scope prompts can lead to irrelevant answers and confuse users. &lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Solution:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; We implemented a two-layer defense against hallucinations:&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Prevention through Prompt Engineering:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;span&gt;Citation enforcement: Instructions to reference which tools provided the information&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Scope limitations: Clear boundaries on what data is available &lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Data grounding requirement: "Only use data from tool results, never make up numbers, facts or service names"&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;User guidance:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;span&gt;Adding example questions in the UI illustrates available capabilities and helps users become familiar with the tool.&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Challenge 5: Context Limit&lt;span style="color: #434343;"&gt; &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/h3&gt; 
&lt;p&gt;&lt;span&gt;Context windows in modern LLMs are ever-increasing, but they are still a practical constraint in production systems. Tool-calling adds input overhead: the model reads tool’s definitions, then context keeps growing with chat history, tool outputs and system instructions. As workflows become more complex, this can increase latency, raise cost, and degrade output quality when too much intermediate data is retained, leading to 'lost in the middle' phenomena.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;span&gt;Given our current tool set and routing guardrails, the &lt;em&gt;existing agent -&amp;gt; tools&lt;/em&gt; architecture is close to the effective frontier for reliability, controllability, and implementation complexity. Looking ahead, we plan to evaluate a multi-agent design (for example, a Supervisor with specialized sub-agents) for workflows that are longer, more decomposable, or benefit from parallel execution.&lt;/span&gt;&lt;/p&gt; 
&lt;h2&gt;&lt;span&gt;Testing Agentic Systems with “LLM as a Judge”&lt;/span&gt;&lt;/h2&gt; 
&lt;p&gt;&lt;span&gt;Unlike traditional software where a specific input always produces the exact same output, LLM-based agents are non-deterministic. The same question might be answered using different wording, different tool sequences, or slightly varied levels of detail each time:&lt;/span&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;span&gt;Wording: "12 services" vs. "There are twelve services."&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Structure: Bullet lists vs. numbered lists vs. paragraphs.&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Order: Services listed alphabetically vs. by launch date.&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Detail level: A minimal answer vs. a comprehensive explanation.&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;span&gt;Semantically, these responses are equivalent. However, a naive string comparison (checking for an exact match) would fail these tests, even though the agent answered correctly.&lt;/span&gt;&lt;/p&gt; 
&lt;h3&gt;Solution: Curated Regression Baselines + LLM Judge&lt;/h3&gt; 
&lt;p&gt;&lt;span&gt;To ensure our agent remains reliable as we add tools and update models, we supplemented our traditional test suite with a semantic evaluation layer. We utilize a separate, high-reasoning LLM to act as a &lt;/span&gt;&lt;strong&gt;&lt;span&gt;"Judge"&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; that compares the agent's output against a &lt;/span&gt;&lt;strong&gt;&lt;span&gt;"Gold Standard"&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; ground truth.&lt;/span&gt;&lt;/p&gt; 
&lt;h4&gt;1. Establishing a Baseline&lt;/h4&gt; 
&lt;p&gt;&lt;span&gt;We curated a set of representative questions with verified answers that we have manually confirmed as correct and well-formatted. This serves as a constant baseline to evaluate newer versions of the agent.&lt;/span&gt;&lt;/p&gt; 
&lt;h4&gt;2. The Evaluation Dimensions&lt;/h4&gt; 
&lt;p&gt;&lt;span&gt;The judge evaluates the output across two distinct dimensions:&lt;/span&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Semantic Similarity:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; Do both responses provide equivalent facts and conclusions? The judge ignores stylistic choices like wording, bullet points, or list order.&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Numerical Accuracy:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; The judge extracts numerical data and validates that values match within a specific tolerance (e.g., 5%), ensuring data integrity even if the prose changes.&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4&gt;3. Scoring Guidelines&lt;/h4&gt; 
&lt;p&gt;&lt;span&gt;The judge returns a structured score based on the following rubric:&lt;/span&gt;&lt;/p&gt; 
&lt;div&gt; 
 &lt;div style="overflow-x: auto; max-width: 100%; width: 95.3075%;"&gt; 
  &lt;table style="border-collapse: collapse; width: 100%; border-image: initial; border: medium none currentcolor; border-color: #CCCCCC;"&gt; 
   &lt;colgroup&gt; 
    &lt;col style="width: 16.5405%;" width="97"&gt; 
    &lt;col style="width: 15.6879%;" width="92"&gt; 
    &lt;col style="width: 67.6965%;" width="397"&gt; 
   &lt;/colgroup&gt; 
   &lt;tbody&gt; 
    &lt;tr&gt; 
     &lt;td style="vertical-align: top; background-color: #efefef; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Score&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; background-color: #efefef; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Status&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; background-color: #efefef; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Description&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr style="height: 10.7305px;"&gt; 
     &lt;td style="vertical-align: top; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;0.8 – 1.0&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;PASS&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Identical core information; all key facts present; numbers within tolerance.&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr style="height: 10px;"&gt; 
     &lt;td style="vertical-align: top; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;0.6 – 0.8&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;MARGINAL&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Similar information but missing context or containing minor numerical drift.&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="vertical-align: top; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Below 0.6&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;FAIL&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Incorrect information, significant numerical errors, or hallucinations.&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;/tr&gt; 
   &lt;/tbody&gt; 
  &lt;/table&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;h4&gt;4. Testing the Agentic Process&lt;/h4&gt; 
&lt;p&gt;&lt;span&gt;Beyond the final text, our regression tests validate the "internal" health of the agent:&lt;/span&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Tool Orchestration:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; Did the agent call the expected tools in the correct sequence?&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Efficiency:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; Did it avoid unnecessary loops or redundant tool calls?&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Latency:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; Did execution time remain within acceptable limits?&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;State Management:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; Did it maintain context correctly across multi-turn conversations?&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;&lt;span&gt;Key Takeaways&lt;/span&gt;&lt;/h2&gt; 
&lt;p&gt;&lt;span&gt;We built this agentic AI assistant to address a core business challenge: internal teams need to quickly and easily find information about our services, but the information is fragmented across many specialized, distributed systems. By orchestrating specialized tools through an AI agent, we deliver comprehensive answers in one place.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;span&gt;Agentic systems don’t replace dashboards - they reduce the friction around them. What once required hours of manual navigation, data exports, and synthesizing reports now can be achieved in a conversation. As a result, operations managers can more easily investigate performance, identify issues, and generate insights without relying on the data team.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Key Design Principles:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;span&gt;Focused, composable and structured tools&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Strong reasoning LLM&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;User experience that is focused on ease of use and functionality&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Guardrails for prompts, execution flow and responses&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;LLM-as-judge testing using semantic similarity &lt;/span&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Domain-specific AI assistants are within reach for most engineering teams.&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; You don't need massive infrastructure or custom models. Start small: identify recurring business questions, build 3-5 focused tools, use a strong reasoning LLM, test with real users, and iterate.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;span&gt;Our roadmap focuses on expanding capabilities while maintaining reliability:&lt;/span&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Expanding tool coverage&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; allowing reasoning over additional data sources&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Proactive insights&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; where the agent suggests analyses based on detected trends&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Multi-modal outputs&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; including charts, maps, and visualizations&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;span&gt;We employ an agent-to-tools structure today because it delivers the best reliability-to-complexity tradeoff, while planning a move to multi-agent only when context growth and workflow complexity make specialization and parallelism clearly beneficial.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;span&gt;Looking ahead, we see a path toward a unified AI ecosystem. This might include bridging our structured data agent with the existing &lt;/span&gt;&lt;a href="https://ridewithvia.com/resources/how-an-ai-tool-freed-our-platform-team-to-focus-on-innovation?hsLang=en"&gt;RAG-based Slack-bot&lt;/a&gt;,&lt;span&gt; allowing users to query both live operational data and static company documentation in a single conversation.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;&lt;span&gt;This blog post describes Via's internal AI assistant for transportation data analysis. The patterns and lessons are applicable to other domain-specific AI assistant projects.&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/beyond-dashboards-building-a-domain-specific-agentic-ai-assistant?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/chart1%20(1).png" alt="Beyond Dashboards: Building a Domain-Specific Agentic AI Assistant" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h2&gt;The Power of Tool Orchestration&lt;/h2&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;“Which Texas microtransit services reached new performance milestones in the recent quarter, and who are the key partners involved?”&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;Via is a global transit-tech company with development, operations, partnerships and analytics teams spread across countries and continents. System design, service performance and partnership data are created by different teams and managed across diverse, dedicated systems. Answering the question above requires filtering by service type, geographic lookup, quarterly trend analysis, comparative ranking, and partner accounts mapping. No single database query or API call can answer it, but an AI agent with the right tools can in under a minute!&lt;br&gt;&lt;br&gt;Internal business teams manage interaction with existing and potential partners. These interactions often raise questions that require combining data from multiple sources in ways that the sources weren’t designed for. Traditionally, this means navigating several analytics tools, exporting CSVs, and manually cross-referencing - a slow and error-prone process.&lt;br&gt;&lt;br&gt;The agentic approach is fundamentally different: the agent interprets the user’s intent, selects the right tools, and synthesizes results into a single response. The value is not in any one tool, but in the agent’s ability to orchestrate tools intelligently with routing guardrails and multi-step execution. This architecture is built to scale, so new tools and skills can be added without redesigning the whole system.&lt;br&gt;&lt;br&gt;To make this difference concrete, let’s compare how a typical question is answered using traditional analytics versus an agentic approach.&lt;br&gt;&lt;/p&gt; 
&lt;h2&gt;Tools + Reasoning = Intelligence&lt;/h2&gt; 
&lt;p&gt;&lt;span&gt;We built our internal agentic AI assistant using &lt;/span&gt;&lt;em&gt;&lt;span&gt;LangChain&lt;/span&gt;&lt;/em&gt;&lt;span&gt; for agent orchestration, &lt;/span&gt;&lt;em&gt;&lt;span&gt;AWS Bedrock&lt;/span&gt;&lt;/em&gt;&lt;span&gt; for the LLM, and many specialized tools for accessing Via transportation data and relevant external sources. This is more than a single LLM prompt: the agent can route queries, call tools, execute multi-step analysis, and adapt across conversation context, with user feedback captured for iterative improvement.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;span&gt;Our tool registry includes specialized capabilities:&lt;/span&gt;&lt;/p&gt; 
&lt;div&gt; 
 &lt;div style="overflow-x: auto; max-width: 100%; width: 99.3785%; margin: 0px;"&gt; 
  &lt;table style="border-collapse: collapse; width: 100%; border-image: initial; border: medium none currentcolor; border-color: #999999;"&gt; 
   &lt;colgroup&gt; 
    &lt;col style="width: 13.253%;" width="110"&gt; 
    &lt;col style="width: 30.241%;" width="251"&gt; 
    &lt;col style="width: 34.8193%;" width="289"&gt; 
   &lt;/colgroup&gt; 
   &lt;thead&gt; 
    &lt;tr&gt; 
     &lt;th style="vertical-align: top; border: 1.33333px solid #000000;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;strong&gt;&lt;span&gt;Category&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/th&gt; 
     &lt;th style="vertical-align: top; border: 1.33333px solid #000000;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;strong&gt;&lt;span&gt;Purpose&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/th&gt; 
     &lt;th style="vertical-align: top; border: 1.33333px solid #000000;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;strong&gt;&lt;span&gt;Example Query&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/th&gt; 
    &lt;/tr&gt; 
   &lt;/thead&gt; 
   &lt;tbody&gt; 
    &lt;tr&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Service Design&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Describe transportation service attributes and configuration&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;“Which microtransit services operate in Texas?”&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr style="height: 50px;"&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Performance Metrics&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Retrieve operational metrics and trends&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;"Show me ridership trends for 2025/Q4"&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Geospatial&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Location-based filtering and proximity search&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;“Which services operate within 20 miles of Austin, Tx?”&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;External Data&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Integrate benchmarks &amp;amp; third-party datasets&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1.33333px solid #000000; padding: 10px;"&gt; &lt;p style="margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;“How do these services compare to NTD averages?”&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;/tr&gt; 
   &lt;/tbody&gt; 
  &lt;/table&gt; 
  &lt;p&gt;&amp;nbsp;&lt;/p&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;span&gt;The anti-pattern in tool design is creating one giant &lt;/span&gt;&lt;em&gt;&lt;span&gt;get_everything()&lt;/span&gt;&lt;/em&gt;&lt;span&gt; tool with 50 parameters. Instead, we built &lt;/span&gt;&lt;strong&gt;&lt;span&gt;a set of focused tools that an agent can chain&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;. This approach offers key advantages:&lt;/span&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;span&gt;The agent can reason about which specific tools to use&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;New combinations emerge without requiring new tools&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Prevents context pollution: focused tools return only relevant data, keeping the agent’s working context clean&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Reduces inference cost: smaller, targeted responses mean fewer tokens and faster processing&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Each tool is easier to maintain and test independently&lt;/span&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;span&gt;The agent’s job is to understand intent, plan execution, chain tools intelligently, synthesize results, and explain its reasoning. These capabilities are what distinguish an agent from a thin LLM wrapper.&lt;/span&gt;&lt;/p&gt; 
&lt;h3&gt;Real example 1: Multi-Step Analysis&lt;/h3&gt; 
&lt;p&gt;&lt;span&gt;Let's see how the agent handles a complex request: &lt;/span&gt;&lt;strong&gt;&lt;span&gt;"Which microtransit services in Texas saw the most significant performance gains in the recent quarter?"&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;The agent interprets “performance gains” as a comparative question, and understands that it first needs to find the relevant services (Texas + Microtransit). It correctly calls a dedicated tool to retrieve them. Next, it selects an appropriate comparison window (Quarter), and ranks results based on KPI deltas by calling a dedicated tool for KPIs retrieval. The tool defines available KPIs, and the agent decides which to use and how to interpret change.&lt;/p&gt; 
&lt;h3&gt;Real example 2: Discovery&lt;/h3&gt; 
&lt;p&gt;&lt;span&gt;Let’s ask an open-ended exploratory question - &lt;/span&gt;&lt;strong&gt;&lt;span&gt;"What is the common feature for top utilization TaaS&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span&gt; services?"&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;&lt;strong&gt;*&lt;/strong&gt;&lt;/em&gt;&lt;span style="font-weight: normal;"&gt;&lt;em&gt;TaaS stands for transportation-as-a-service: services where Via provides turnkey solutions including management of drivers, vehicles, and other operational aspects.&amp;nbsp;&lt;/em&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;span&gt;The agent:&lt;/span&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;span&gt;Retrieves TaaS services&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;And their Q4 2025 utilization metrics&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Identifies the top four performers&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Analyzes their attributes to extract commonalities&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;span&gt;We discover that university campus shuttles achieve higher utilization than typical microtransit services because they serve concentrated demand in small geographic areas with predictable travel patterns. This insight required analysis across multiple data sources!&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;span&gt;The discovery can be improved with conversation mode, which maintains context across follow-up questions. This mirrors how a human analyst works and removes the friction of repeatedly reconfiguring dashboards or re-running queries.&lt;/span&gt;&lt;/p&gt; 
&lt;h2&gt;Development Lessons: Making Agents Reliable&lt;/h2&gt; 
&lt;p&gt;&lt;span&gt;Building an agent that works in production requires addressing several key challenges.&lt;/span&gt;&lt;/p&gt; 
&lt;h3&gt;Challenge 1: Agent Loops&lt;/h3&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Problem:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; The agent repeatedly invokes the same tool with identical parameters, unnecessarily consuming tokens, increasing latency, and frustrating users.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Solution:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; We implemented a layered approach to prevent loops:&lt;/span&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Limited tool results&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;: Each tool returns only essential, structured data (not full datasets), keeping context clean and consistent.&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;High-Reasoning Models:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; We leverage models such as Claude Sonnet to enable the agent to 'self-reflect' on its execution plan. Unlike smaller models prone to repetitive logic, Sonnet more reliably identifies when a task is complete or requires a different tool.&lt;/span&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Recursion limits&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;: As a safety net, we produce structured empty results and enforce a maximum of reasoning steps to force termination if other safeguards fail.&lt;/span&gt;&lt;/p&gt; 
&lt;h3&gt;Challenge 2: User Experience &amp;amp; Performance&lt;/h3&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Problem:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; Queries to analytics databases can take 1-2 minutes to complete. Users need fast, consistent response times and visibility into what the agent is doing to maintain user confidence.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Solution:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; We implemented multiple optimizations to reduce latency and keep users engaged:&lt;/span&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Performance optimization:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; We reduced latency through agent instance caching, data pre-warming, query result caching, and efficient conversation state management via LangGraph’s checkpointer.&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Progress transparency:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; The UI streams real-time updates as the agent reasons and executes tools, giving users visibility into what’s happening. Long-running queries run asynchronously with status updating to maintain responsiveness.&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;span&gt;These optimizations enable the system to provide sub-two minute response times, while keeping users informed throughout the process.&lt;/span&gt;&lt;/p&gt; 
&lt;h3&gt;Challenge 3: Empty Tool Results&lt;/h3&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Problem:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; The agent expects tool results as structured input for reasoning. When a tool encounters missing data or unavailable resources (e.g. database connection failure), errors must be handled gracefully to ensure valid input for the agent.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Solution:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; we built tools to return structured responses with clear status indicators, even when no matching data was found. This prevents tool call loops, maintaining system functionality, and clearly communicating temporary unavailability to users.&lt;/span&gt;&lt;/p&gt; 
&lt;h3&gt;Challenge 4: Hallucinations and Irrelevant Topics&lt;/h3&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Problem:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; LLMs can generate plausible-sounding but incorrect results, especially when asked about data they don't have access to or when extrapolating beyond tools results. As a result, out-of-scope prompts can lead to irrelevant answers and confuse users. &lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Solution:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; We implemented a two-layer defense against hallucinations:&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Prevention through Prompt Engineering:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;span&gt;Citation enforcement: Instructions to reference which tools provided the information&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Scope limitations: Clear boundaries on what data is available &lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Data grounding requirement: "Only use data from tool results, never make up numbers, facts or service names"&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;User guidance:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;span&gt;Adding example questions in the UI illustrates available capabilities and helps users become familiar with the tool.&lt;/span&gt;&lt;br&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3&gt;Challenge 5: Context Limit&lt;span style="color: #434343;"&gt; &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/h3&gt; 
&lt;p&gt;&lt;span&gt;Context windows in modern LLMs are ever-increasing, but they are still a practical constraint in production systems. Tool-calling adds input overhead: the model reads tool’s definitions, then context keeps growing with chat history, tool outputs and system instructions. As workflows become more complex, this can increase latency, raise cost, and degrade output quality when too much intermediate data is retained, leading to 'lost in the middle' phenomena.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;span&gt;Given our current tool set and routing guardrails, the &lt;em&gt;existing agent -&amp;gt; tools&lt;/em&gt; architecture is close to the effective frontier for reliability, controllability, and implementation complexity. Looking ahead, we plan to evaluate a multi-agent design (for example, a Supervisor with specialized sub-agents) for workflows that are longer, more decomposable, or benefit from parallel execution.&lt;/span&gt;&lt;/p&gt; 
&lt;h2&gt;&lt;span&gt;Testing Agentic Systems with “LLM as a Judge”&lt;/span&gt;&lt;/h2&gt; 
&lt;p&gt;&lt;span&gt;Unlike traditional software where a specific input always produces the exact same output, LLM-based agents are non-deterministic. The same question might be answered using different wording, different tool sequences, or slightly varied levels of detail each time:&lt;/span&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;span&gt;Wording: "12 services" vs. "There are twelve services."&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Structure: Bullet lists vs. numbered lists vs. paragraphs.&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Order: Services listed alphabetically vs. by launch date.&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Detail level: A minimal answer vs. a comprehensive explanation.&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;span&gt;Semantically, these responses are equivalent. However, a naive string comparison (checking for an exact match) would fail these tests, even though the agent answered correctly.&lt;/span&gt;&lt;/p&gt; 
&lt;h3&gt;Solution: Curated Regression Baselines + LLM Judge&lt;/h3&gt; 
&lt;p&gt;&lt;span&gt;To ensure our agent remains reliable as we add tools and update models, we supplemented our traditional test suite with a semantic evaluation layer. We utilize a separate, high-reasoning LLM to act as a &lt;/span&gt;&lt;strong&gt;&lt;span&gt;"Judge"&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; that compares the agent's output against a &lt;/span&gt;&lt;strong&gt;&lt;span&gt;"Gold Standard"&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; ground truth.&lt;/span&gt;&lt;/p&gt; 
&lt;h4&gt;1. Establishing a Baseline&lt;/h4&gt; 
&lt;p&gt;&lt;span&gt;We curated a set of representative questions with verified answers that we have manually confirmed as correct and well-formatted. This serves as a constant baseline to evaluate newer versions of the agent.&lt;/span&gt;&lt;/p&gt; 
&lt;h4&gt;2. The Evaluation Dimensions&lt;/h4&gt; 
&lt;p&gt;&lt;span&gt;The judge evaluates the output across two distinct dimensions:&lt;/span&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Semantic Similarity:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; Do both responses provide equivalent facts and conclusions? The judge ignores stylistic choices like wording, bullet points, or list order.&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Numerical Accuracy:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; The judge extracts numerical data and validates that values match within a specific tolerance (e.g., 5%), ensuring data integrity even if the prose changes.&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4&gt;3. Scoring Guidelines&lt;/h4&gt; 
&lt;p&gt;&lt;span&gt;The judge returns a structured score based on the following rubric:&lt;/span&gt;&lt;/p&gt; 
&lt;div&gt; 
 &lt;div style="overflow-x: auto; max-width: 100%; width: 95.3075%;"&gt; 
  &lt;table style="border-collapse: collapse; width: 100%; border-image: initial; border: medium none currentcolor; border-color: #CCCCCC;"&gt; 
   &lt;colgroup&gt; 
    &lt;col style="width: 16.5405%;" width="97"&gt; 
    &lt;col style="width: 15.6879%;" width="92"&gt; 
    &lt;col style="width: 67.6965%;" width="397"&gt; 
   &lt;/colgroup&gt; 
   &lt;tbody&gt; 
    &lt;tr&gt; 
     &lt;td style="vertical-align: top; background-color: #efefef; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Score&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; background-color: #efefef; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Status&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; background-color: #efefef; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Description&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr style="height: 10.7305px;"&gt; 
     &lt;td style="vertical-align: top; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;0.8 – 1.0&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;PASS&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Identical core information; all key facts present; numbers within tolerance.&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr style="height: 10px;"&gt; 
     &lt;td style="vertical-align: top; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;0.6 – 0.8&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;MARGINAL&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Similar information but missing context or containing minor numerical drift.&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="vertical-align: top; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Below 0.6&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;FAIL&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
     &lt;td style="vertical-align: top; border: 1px solid #1f1f1f; padding: 10px;"&gt; &lt;p style="line-height: 1.2; margin-top: 0px; margin-bottom: 0px;"&gt;&lt;span&gt;Incorrect information, significant numerical errors, or hallucinations.&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; 
    &lt;/tr&gt; 
   &lt;/tbody&gt; 
  &lt;/table&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;h4&gt;4. Testing the Agentic Process&lt;/h4&gt; 
&lt;p&gt;&lt;span&gt;Beyond the final text, our regression tests validate the "internal" health of the agent:&lt;/span&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Tool Orchestration:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; Did the agent call the expected tools in the correct sequence?&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Efficiency:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; Did it avoid unnecessary loops or redundant tool calls?&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Latency:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; Did execution time remain within acceptable limits?&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;State Management:&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; Did it maintain context correctly across multi-turn conversations?&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2&gt;&lt;span&gt;Key Takeaways&lt;/span&gt;&lt;/h2&gt; 
&lt;p&gt;&lt;span&gt;We built this agentic AI assistant to address a core business challenge: internal teams need to quickly and easily find information about our services, but the information is fragmented across many specialized, distributed systems. By orchestrating specialized tools through an AI agent, we deliver comprehensive answers in one place.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;span&gt;Agentic systems don’t replace dashboards - they reduce the friction around them. What once required hours of manual navigation, data exports, and synthesizing reports now can be achieved in a conversation. As a result, operations managers can more easily investigate performance, identify issues, and generate insights without relying on the data team.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Key Design Principles:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;span&gt;Focused, composable and structured tools&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Strong reasoning LLM&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;User experience that is focused on ease of use and functionality&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;Guardrails for prompts, execution flow and responses&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;span&gt;LLM-as-judge testing using semantic similarity &lt;/span&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Domain-specific AI assistants are within reach for most engineering teams.&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; You don't need massive infrastructure or custom models. Start small: identify recurring business questions, build 3-5 focused tools, use a strong reasoning LLM, test with real users, and iterate.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;span&gt;Our roadmap focuses on expanding capabilities while maintaining reliability:&lt;/span&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Expanding tool coverage&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; allowing reasoning over additional data sources&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Proactive insights&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; where the agent suggests analyses based on detected trends&lt;/span&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;&lt;span&gt;Multi-modal outputs&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; including charts, maps, and visualizations&lt;/span&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;span&gt;We employ an agent-to-tools structure today because it delivers the best reliability-to-complexity tradeoff, while planning a move to multi-agent only when context growth and workflow complexity make specialization and parallelism clearly beneficial.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;span&gt;Looking ahead, we see a path toward a unified AI ecosystem. This might include bridging our structured data agent with the existing &lt;/span&gt;&lt;a href="https://ridewithvia.com/resources/how-an-ai-tool-freed-our-platform-team-to-focus-on-innovation?hsLang=en"&gt;RAG-based Slack-bot&lt;/a&gt;,&lt;span&gt; allowing users to query both live operational data and static company documentation in a single conversation.&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;&lt;span&gt;This blog post describes Via's internal AI assistant for transportation data analysis. The patterns and lessons are applicable to other domain-specific AI assistant projects.&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=39563058&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fridewithvia.com%2Fresources%2Fbeyond-dashboards-building-a-domain-specific-agentic-ai-assistant&amp;amp;bu=https%253A%252F%252Fridewithvia.com%252Fresources&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <pubDate>Wed, 15 Apr 2026 21:17:32 GMT</pubDate>
      <guid>https://ridewithvia.com/resources/beyond-dashboards-building-a-domain-specific-agentic-ai-assistant</guid>
      <dc:date>2026-04-15T21:17:32Z</dc:date>
      <dc:creator>Yaron Taub &amp; Lev Drucker</dc:creator>
    </item>
    <item>
      <title>Put safety in the driver’s seat: introducing the Via Safety Portal</title>
      <link>https://ridewithvia.com/resources/put-safety-in-the-drivers-seat-introducing-the-via-safety-portal</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/put-safety-in-the-drivers-seat-introducing-the-via-safety-portal?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/Driver%20Safety%20Dashboard_FINAL.png" alt="Put safety in the driver’s seat: introducing the Via Safety Portal" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;span&gt;For years, safety in the transit industry has felt like a one-way street that left drivers out of the loop on their employment. Drivers are monitored by dashcams and telematics, but the resulting data often lives in a "black box" accessible only to dispatchers and fleet managers. When a driver is flagged for a violation, it’s often days after the event, making it challenging to provide effective real-time feedback that builds trust and changes behavior.&lt;/span&gt;&lt;/p&gt;</description>
      <content:encoded>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://ridewithvia.com/resources/put-safety-in-the-drivers-seat-introducing-the-via-safety-portal?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://39563058.fs1.hubspotusercontent-na1.net/hubfs/39563058/Driver%20Safety%20Dashboard_FINAL.png" alt="Put safety in the driver’s seat: introducing the Via Safety Portal" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;span&gt;For years, safety in the transit industry has felt like a one-way street that left drivers out of the loop on their employment. Drivers are monitored by dashcams and telematics, but the resulting data often lives in a "black box" accessible only to dispatchers and fleet managers. When a driver is flagged for a violation, it’s often days after the event, making it challenging to provide effective real-time feedback that builds trust and changes behavior.&lt;/span&gt;&lt;/p&gt;  
&lt;img src="https://track.hubspot.com/__ptq.gif?a=39563058&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fridewithvia.com%2Fresources%2Fput-safety-in-the-drivers-seat-introducing-the-via-safety-portal&amp;amp;bu=https%253A%252F%252Fridewithvia.com%252Fresources&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <pubDate>Wed, 15 Apr 2026 20:52:14 GMT</pubDate>
      <guid>https://ridewithvia.com/resources/put-safety-in-the-drivers-seat-introducing-the-via-safety-portal</guid>
      <dc:date>2026-04-15T20:52:14Z</dc:date>
      <dc:creator>Karina Sahlin</dc:creator>
    </item>
  </channel>
</rss>
