<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aadil Lone</title>
    <description>The latest articles on DEV Community by Aadil Lone (@aadilmajeedlone).</description>
    <link>https://dev.to/aadilmajeedlone</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4088850%2F9c90e47d-9869-4580-a863-57de1417eb01.png</url>
      <title>DEV Community: Aadil Lone</title>
      <link>https://dev.to/aadilmajeedlone</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aadilmajeedlone"/>
    <language>en</language>
    <item>
      <title>Automating Coaching Notes with an ADK Agent on Cloud Run</title>
      <dc:creator>Aadil Lone</dc:creator>
      <pubDate>Fri, 21 Aug 2026 22:37:46 +0000</pubDate>
      <link>https://dev.to/aadilmajeedlone/automating-coaching-notes-with-an-adk-agent-on-cloud-run-88b</link>
      <guid>https://dev.to/aadilmajeedlone/automating-coaching-notes-with-an-adk-agent-on-cloud-run-88b</guid>
      <description>&lt;p&gt;&lt;em&gt;Gen AI Academy APAC — Track 3 (Automate Daily Operations with a Productivity Agent)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this one
&lt;/h2&gt;

&lt;p&gt;Between the escalation classifier (Track 1) and the BigQuery insights agent (Track 2), the missing piece was the most repetitive part of my actual day: writing coaching messages.&lt;/p&gt;

&lt;p&gt;Every time I review a case with an agent, I end up writing some version of the same message — acknowledge what went right, name the specific gap, give one clear next step. Multiply that by 25 agents and however many cases come up in a week, and it's a real chunk of time spent on the same structural task over and over.&lt;/p&gt;

&lt;p&gt;Track 3 is specifically about automating that kind of repetitive daily-operations work, so this felt like the right fit.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;You give the agent rough, unpolished notes — the kind of thing you'd actually jot down in the moment:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Agent: Priya. Notes - handled a refund case fine but took 25 min because kept checking with me on things she should know by now. 3rd time this month. good with customer tone though.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And it returns a ready-to-send coaching message:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tone_used"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"standard"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"coaching_message"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Priya, you handled the customer's tone excellently on the recent refund case. However, it took 25 minutes because you needed to confirm standard procedures, which is something we've noticed a few times this month. To improve efficiency and your confidence, please review the refund policy documentation in our knowledge base. Let's aim to resolve these types of cases independently going forward."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"one_line_summary"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Priya needs to review refund procedures to improve efficiency and reduce reliance on supervisor checks."&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice it picked up on "3rd time this month" and named it as a pattern on its own, kept the genuine praise about customer tone instead of dropping it, and landed on one specific actionable step rather than a vague "keep improving."&lt;/p&gt;

&lt;h2&gt;
  
  
  How it's built
&lt;/h2&gt;

&lt;p&gt;Same core pattern as Track 1 — ADK + Gemini, deployed on Cloud Run — but with one addition: a small tool that returns tone guidelines (standard / sensitive / recognition) so the agent can pick the right register depending on whether this is routine feedback, a repeat/fragile situation, or positive reinforcement, rather than using one flat tone for everything.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_tone_guidelines&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Returns the standard tone guidelines for coaching messages.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;TONE_GUIDELINES&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent calls this before drafting, same as the taxonomy lookup did in Track 1.&lt;/p&gt;

&lt;h2&gt;
  
  
  What stood out
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reusing the same project's IAM setup from Track 1 and 2 made this deployment trivial.&lt;/strong&gt; No permission errors at all this time — a good reminder that most of the friction in Track 1 was one-time setup cost, not something inherent to Cloud Run deployments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A small "pick the right tone" tool did more work than expected.&lt;/strong&gt; Without it, the model defaulted to a flat, uniformly gentle tone regardless of context. Giving it explicit categories to choose from made the output noticeably more appropriate to what was actually being described.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;This is the track that would get used the most, day to day.&lt;/strong&gt; Root-cause classification and BigQuery insights are valuable but periodic; a coaching-note drafter is something I'd genuinely reach for multiple times a day.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it / see the code
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live agent (Cloud Run):&lt;/strong&gt; &lt;a href="https://coaching-note-drafter-507816071353.us-central1.run.app" rel="noopener noreferrer"&gt;https://coaching-note-drafter-507816071353.us-central1.run.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href="https://github.com/aadilmajeedlone/coaching-note-drafter" rel="noopener noreferrer"&gt;https://github.com/aadilmajeedlone/coaching-note-drafter&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;Combine all three tracks: Track 1 classifies the escalation, Track 2's BigQuery pipeline tracks the pattern over time, and this agent drafts the coaching note automatically as soon as a case is flagged — turning three separate tools into one pipeline that goes from raw case to sent message with a single review step in between.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built for the Google Cloud Gen AI Academy APAC program, in partnership with Hack2Skill.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>googlecloud</category>
      <category>ai</category>
      <category>genai</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Turning Escalation Data into Strategic Decisions with Gemini in BigQuery</title>
      <dc:creator>Aadil Lone</dc:creator>
      <pubDate>Fri, 21 Aug 2026 22:06:05 +0000</pubDate>
      <link>https://dev.to/aadilmajeedlone/turning-escalation-data-into-strategic-decisions-with-gemini-in-bigquery-d29</link>
      <guid>https://dev.to/aadilmajeedlone/turning-escalation-data-into-strategic-decisions-with-gemini-in-bigquery-d29</guid>
      <description>&lt;p&gt;&lt;em&gt;Gen AI Academy APAC — Track 2 (Turn Business Data into Strategic Decisions)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this one, and why it builds on Track 1
&lt;/h2&gt;

&lt;p&gt;For Track 1, I built an agent that classifies individual customer service escalations one at a time. That's useful for reviewing a single case — but as a team lead managing 25 agents, the real question I ask most weeks isn't about one case. It's "what's actually going wrong across all of them, and what should I do about it?"&lt;/p&gt;

&lt;p&gt;That's a data question, not a single-case question — which made it a natural fit for Track 2's focus: using Gemini directly inside BigQuery to go from raw data to an actual recommendation, without needing a separate app or notebook.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Loaded 70 real-shaped escalation cases into BigQuery — same dataset structure as Track 1 (case ID, summary, agent, channel).&lt;/li&gt;
&lt;li&gt;Classified every case with Gemini, directly in SQL, using AI.GENERATE():
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;case_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;agent_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;channel&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;AI&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GENERATE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;CONCAT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="s1"&gt;'Classify this customer service escalation into exactly one of: '&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="s1"&gt;'policy_misapplication, process_gap, communication_breakdown, '&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="s1"&gt;'system_limitation, training_gap, customer_expectation_mismatch. '&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="s1"&gt;'Respond with only the category name. Case: '&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;summary&lt;/span&gt;
    &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;connection_id&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'us-central1.cx_gemini_conn'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;endpoint&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'gemini-2.5-flash'&lt;/span&gt;
  &lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="k"&gt;result&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;root_cause&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="nv"&gt;`cx_insights.escalations`&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No separate agent deployment needed for this part — the classification happens where the data already lives.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fed the aggregated results back into Gemini to generate an actual strategic recommendation, not just a chart:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;AI&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GENERATE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;CONCAT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="s1"&gt;'You are a customer service operations analyst. Based on this '&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'root cause breakdown across 70 escalations, write a 3-4 sentence '&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'strategic recommendation for a team lead managing 25 agents. '&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'Be specific and actionable. Data: '&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;STRING_AGG&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;FORMAT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'%s: %d cases'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;root_cause&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cnt&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;', '&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
     &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;root_cause&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;COUNT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;cnt&lt;/span&gt;
           &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="nv"&gt;`cx_insights.escalations_classified`&lt;/span&gt;
           &lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;root_cause&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
  &lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="n"&gt;connection_id&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'us-central1.cx_gemini_conn'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;endpoint&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'gemini-2.5-flash'&lt;/span&gt;
&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="k"&gt;result&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;strategic_recommendation&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The result, generated directly from the data — no manual analysis in between:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The primary drivers of escalations are training gaps (20 cases) and system limitations (15 cases). The team lead should prioritize a comprehensive review and enhancement of agent training, focusing on areas directly impacted by these gaps, perhaps through targeted workshops or updated knowledge base articles. Simultaneously, they must collaborate with relevant departments to identify and address the most impactful system limitations, providing agents with temporary workarounds and clear communication regarding ongoing resolutions."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's genuinely close to the kind of recommendation I'd write myself after a manual review — except it took seconds instead of an hour of reading through cases individually.&lt;/p&gt;

&lt;h2&gt;
  
  
  What stood out
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AI.GENERATE inside plain SQL is a low ceremony way to add reasoning to data you already have. No separate service, no agent framework — just a function call in a query.&lt;/li&gt;
&lt;li&gt;The two-step pattern (classify → aggregate → summarize) is more useful than either step alone. Per-case classification is Track-1-style detail; the aggregated recommendation is what actually changes what a team lead does Monday morning.&lt;/li&gt;
&lt;li&gt;Connection setup (BigQuery ↔ Vertex AI) was the fiddly part, similar to the IAM friction from Track 1's Cloud Run deployment — worth budgeting time for on a fresh project.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it / see the queries
&lt;/h2&gt;

&lt;p&gt;Source project: &lt;a href="https://github.com/aadilmajeedlone/escalation-root-cause-agent" rel="noopener noreferrer"&gt;https://github.com/aadilmajeedlone/escalation-root-cause-agent&lt;/a&gt; (same repo as Track 1 — the BigQuery queries and dataset setup are documented alongside the agent code)&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;Combining both tracks: have the Track 1 agent write directly into this BigQuery table as escalations come in, so the strategic recommendation query always reflects the current week rather than a static export — a live dashboard for the team, not a one-off report.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built for the Google Cloud Gen AI Academy APAC program, in partnership with Hack2Skill.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>googlecloud</category>
      <category>bigquery</category>
      <category>genai</category>
      <category>ai</category>
    </item>
    <item>
      <title>Building an Escalation Root-Cause Agent with Gemini and ADK</title>
      <dc:creator>Aadil Lone</dc:creator>
      <pubDate>Fri, 21 Aug 2026 21:20:28 +0000</pubDate>
      <link>https://dev.to/aadilmajeedlone/building-an-escalation-root-cause-agent-with-gemini-and-adk-5b23</link>
      <guid>https://dev.to/aadilmajeedlone/building-an-escalation-root-cause-agent-with-gemini-and-adk-5b23</guid>
      <description>&lt;p&gt;&lt;em&gt;Gen AI Academy APAC — Track 1 (AI Agents with Gemini, ADK, and Cloud Run)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I built this
&lt;/h2&gt;

&lt;p&gt;I lead a customer service team of 25 agents at Amazon, handling both&lt;br&gt;
buyer-side and marketplace seller support. A big part of my job is&lt;br&gt;
reviewing escalated cases — calls or chats where a customer asked for&lt;br&gt;
a supervisor — and figuring out &lt;em&gt;why&lt;/em&gt; they escalated in the first&lt;br&gt;
place. Was it a policy gap? A training issue? A system limitation&lt;br&gt;
nobody flagged?&lt;/p&gt;

&lt;p&gt;Right now, that review is manual. Every escalation gets read, tagged,&lt;br&gt;
and turned into a coaching note by a human — usually me, or one of my&lt;br&gt;
leads. It works, but it doesn't scale well, and patterns across dozens&lt;br&gt;
of cases are easy to miss when you're reviewing them one at a time&lt;br&gt;
between everything else on your plate.&lt;/p&gt;

&lt;p&gt;So for Track 1 of the Gen AI Academy APAC program, I built an agent&lt;br&gt;
that does the first pass of this analysis automatically: read an&lt;br&gt;
escalation summary, classify the root cause against a standard&lt;br&gt;
taxonomy, flag whether it looks like a repeat pattern, and draft a&lt;br&gt;
coaching note — the same way I would, just faster and more&lt;br&gt;
consistently.&lt;/p&gt;
&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;The agent takes a case summary like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Customer requested a refund for a damaged item outside the standard&lt;br&gt;
return window. Agent denied it citing policy; customer says a rep&lt;br&gt;
last month approved a similar exception for someone else.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And returns a structured analysis:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"root_cause_category"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"policy_misapplication"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"severity"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"medium"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"is_likely_repeat_pattern"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"pattern_reasoning"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Inconsistent policy application across agents
  suggests a training or documentation gap rather than an isolated
  error."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"coaching_note"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"..."&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It's built on &lt;strong&gt;Google's Agent Development Kit (ADK)&lt;/strong&gt; with &lt;strong&gt;Gemini&lt;/strong&gt;&lt;br&gt;
as the underlying model, and deployed as a live service on &lt;strong&gt;Cloud&lt;br&gt;
Run&lt;/strong&gt;. The agent has one tool — a lookup function for the standard&lt;br&gt;
root-cause taxonomy — which keeps the categories consistent and easy&lt;br&gt;
to update without touching the core prompt.&lt;/p&gt;

&lt;p&gt;For batch review, I also built a runner script that processes a whole&lt;br&gt;
CSV of cases at once and outputs a summary report — closer to how I'd&lt;br&gt;
actually use this day to day, reviewing a batch of the week's&lt;br&gt;
escalations rather than one at a time.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I learned building it
&lt;/h2&gt;

&lt;p&gt;A few things stood out going through this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Getting the taxonomy right mattered more than the prompt
engineering.&lt;/strong&gt; Once I had six clear, non-overlapping root-cause
categories with real definitions, the model's classifications got
noticeably more consistent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured output is where this becomes actually useful.&lt;/strong&gt;
Free-text analysis is fine to read once; a fixed JSON shape is what
lets you aggregate patterns across dozens of cases and actually spot
something you'd have missed manually.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment had more friction than the coding did.&lt;/strong&gt; Getting a
fresh Google Cloud project's IAM permissions set up correctly for
Cloud Build and Artifact Registry took longer than writing the
agent itself — worth knowing going in if you're new to GCP.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it / see the code
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live agent (Cloud Run):&lt;/strong&gt; &lt;a href="https://escalation-root-cause-agent-507816071353.us-central1.run.app" rel="noopener noreferrer"&gt;https://escalation-root-cause-agent-507816071353.us-central1.run.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href="https://github.com/aadilmajeedlone/escalation-root-cause-agent" rel="noopener noreferrer"&gt;https://github.com/aadilmajeedlone/escalation-root-cause-agent&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The repo includes a &lt;code&gt;README.md&lt;/code&gt; with full setup instructions if you&lt;br&gt;
want to run it yourself, plus a sample CSV of synthetic escalation&lt;br&gt;
cases to test against (no real customer data used anywhere in this&lt;br&gt;
project).&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;The natural extension is Track 2 — instead of feeding it a CSV&lt;br&gt;
manually, connect it directly to a real ticketing system via MCP so&lt;br&gt;
it can pull escalations and analyze them without a manual export&lt;br&gt;
step. That's the version I'd actually want running against my team's&lt;br&gt;
queue.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built for the Google Cloud Gen AI Academy APAC program, in&lt;br&gt;
partnership with Hack2Skill.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>googlecloud</category>
      <category>machinelearning</category>
      <category>genai</category>
    </item>
  </channel>
</rss>
