Nova-Act โ AI Government Service Agent
๐ก Inspiration
It started with a simple observation.
My grandmother needed to renew her vehicle permit. She's not bad with technology โ she manages WhatsApp just fine. But she opened the DMV website and immediately got lost. Which link do I click? Why is it asking for a document number I've never heard of? Which form is the right one? She closed the tab. She'd deal with it later. She always deals with it later โ until the permit expires and she gets fined.
This happens to millions of people every single day. Not because they're not smart. But because government websites were never designed for humans.
The average government service interaction takes 47 minutes. For elderly users, non-English speakers, or people with disabilities โ it can take hours, or simply never get done at all.
I asked myself: What if you could just say what you need, and an AI agent actually does it for you?
That question became Nova-Act.
๐จ What I Built
Nova-Act is an AI agent that completes government tasks on your behalf. You speak or type what you need in plain English โ Nova understands your intent, navigates the portal, fills the forms, submits them, and hands you a confirmation number. In under 60 seconds.
Core Features
- ๐๏ธ Voice-First Interface โ speak your request naturally, Nova acts on it
- โก Agentic Tool Use โ Nova decides which government API to call based on intent
- ๐ง Agent Memory โ Nova remembers context across tasks in the same session
- ๐ Real-time Streaming โ watch Nova think and respond token by token
- ๐ Tool Call Transparency โ expandable cards show exactly what Nova called and what the API returned
- ๐ฅ๏ธ Agent View โ watch Nova autonomously navigate and fill a DMV form
Services Nova Can Complete Today
| Service | Time Before | Time With Nova-Act |
|---|---|---|
| Vehicle Permit Renewal | 47 minutes | 47 seconds |
| Benefits Eligibility Check | 2โ3 hours | 90 seconds |
| DMV Appointment Scheduling | 30 minutes | 60 seconds |
| State Tax Return Filing | 2+ hours | 3 minutes |
๐ง How I Built It
The Amazon Nova Core
The entire product is built around Amazon Nova Lite's agentic tool use capability. This is what makes Nova-Act fundamentally different from a chatbot โ Nova doesn't just answer questions about government services, it completes tasks.
When you say "Renew my vehicle permit", Nova doesn't search for information. It calls renew_permit({ plate_number: "6TRX-4892", renewal_type: "annual" }) and hands you back confirmation #PR-2025-4821.
Nova decides which tool to call entirely on its own, based on understanding your intent. No menus. No buttons. Just natural language โ action.
The Agentic Loop
User Input (voice or text)
โ
Amazon Nova Lite reads intent
โ
Nova calls the appropriate tool
โ
Tool executes (government API)
โ
Result fed back to Nova
โ
Nova explains result to user (streamed live)
โ
Memory updated for next task in session
Tech Stack
- AI Model:
amazon.nova-lite-v1:0via Amazon Bedrock - API:
ConverseStreamCommandfor real-time token streaming - Tool Use: 4 registered government service tools
- Frontend: Next.js 14 (App Router) + TypeScript
- Voice: Web Speech API (browser-native)
- Deployment: Vercel
Streaming Architecture
I used Bedrock's ConverseStreamCommand with a full agentic loop โ meaning when Nova decides to use a tool, the loop continues: tool executes, result returns to Nova, Nova responds with the outcome, all streamed live to the user. Every token appears in real time.
while (continueLoop) {
// Nova streams response
// If Nova calls a tool โ execute it โ feed result back โ loop again
// If Nova is done โ close stream
}
๐ง Challenges I Faced
1. AWS Account Activation Setting up AWS in India required PAN card verification and a 24โ48 hour activation window. I built the entire application with a smart mock mode that simulates real Bedrock streaming โ identical behavior, tool cards, memory updates โ so development never stopped while waiting for activation.
2. TypeScript + as const Arrays
The icon system used as const for type safety, but this created readonly string[] types that conflicted with mutable string[] props. Solved by updating the Icon component to accept readonly string[] and removing conflicting casts.
3. Agentic Loop Streaming
Streaming a multi-turn agentic loop (where Nova calls tools mid-stream) required careful stream management โ emitting text tokens and tool call signals through the same ReadableStream, then parsing them on the frontend to render tool cards inline in the chat.
4. TypeScript Closure Narrowing
Inside async setState callbacks, TypeScript widened nullable fields back to null even after null checks. Solved by capturing the value in a const before the async boundary.
๐ What I Learned
- Agentic AI is fundamentally different from chatbots. The moment Nova starts deciding and acting instead of just responding, the product becomes genuinely useful in a new way.
- Amazon Nova's tool use is remarkably precise. Given a natural language request, Nova consistently selects the right tool with the right parameters โ no hallucination, no confusion between similar tools.
- Streaming UX matters enormously. Watching Nova think in real time โ tokens appearing word by word, tool cards unfolding โ makes the AI feel alive in a way that waiting for a complete response never does.
- Voice changes everything for accessibility. Adding a single microphone button transformed who can use this product. It's no longer just for tech-savvy users.
๐ Impact & Vision
Nova-Act is built for the people who need it most:
- The elderly overwhelmed by government portals
- Non-native speakers struggling with bureaucratic language
- People with disabilities who can't navigate complex interfaces
- Working parents who don't have 47 minutes to spend on hold
Today, Nova-Act handles 4 services. But the architecture scales to every government service that exists. Every portal, every form, every confusing bureaucratic process โ all of it becomes a simple conversation.
The vision: a world where accessing the services you're entitled to is as easy as sending a voice message to a friend.
๐ Links
- Live Demo: nova-act-seven.vercel.app
- GitHub: github.com/aksharapandey/nova-act
- Powered by: Amazon Nova Lite ยท Amazon Bedrock ยท ConverseStreamCommand
Built with โค๏ธ by Akshara Pandey for the Amazon Nova AI Hackathon
Built With
- amazon-nova-lite
- bedrock
- next
- react
- tailwind
- typescript
Log in or sign up for Devpost to join the conversation.