Gen AI Academy APAC — Track 3 (Automate Daily Operations with a Productivity Agent)
Why this one
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.
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.
Track 3 is specifically about automating that kind of repetitive daily-operations work, so this felt like the right fit.
What it does
You give the agent rough, unpolished notes — the kind of thing you'd actually jot down in the moment:
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.
And it returns a ready-to-send coaching message:
{
"tone_used": "standard",
"coaching_message": "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.",
"one_line_summary": "Priya needs to review refund procedures to improve efficiency and reduce reliance on supervisor checks."
}
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."
How it's built
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.
def get_tone_guidelines() -> dict:
"""Returns the standard tone guidelines for coaching messages."""
return TONE_GUIDELINES
The agent calls this before drafting, same as the taxonomy lookup did in Track 1.
What stood out
- Reusing the same project's IAM setup from Track 1 and 2 made this deployment trivial. 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.
- A small "pick the right tone" tool did more work than expected. 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.
- This is the track that would get used the most, day to day. 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.
Try it / see the code
- Live agent (Cloud Run): https://coaching-note-drafter-507816071353.us-central1.run.app
- Source code: https://github.com/aadilmajeedlone/coaching-note-drafter
What's next
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.
Built for the Google Cloud Gen AI Academy APAC program, in partnership with Hack2Skill.
Top comments (0)