Strivend — A Background Copilot for International Students

Never state a compliance figure from memory.

An AI agent built with the Strands Agents SDK that runs quietly in the background for international students — tracking work-hour compliance, deadlines, budgeting, and the local rules that are easy to miss.


Inspiration

International students live with a constant background question: am I about to break a rule I didn't know existed?

Work-hour limits, visa deadlines, and document requirements vary by country and change by year — and getting one wrong can put your visa status at risk. Existing tools help you get into a country, or track one narrow thing in one country, but nothing tracks the whole picture continuously.

We built Strivend to be that missing piece.


What it does

Strivend tracks work-hour quotas, visa deadlines, budgets, local rules, insurance, and document requirements — across any country, with a hand-curated knowledge base for Germany, Italy, France, Japan, and South Korea.

It logs shifts without being asked, chains multiple tools together when it detects a planning task, and never states a compliance figure from memory. When it doesn't have verified data, it says so.


How we built it

Strivend runs on the Strands Agents SDK and Amazon Bedrock (Claude Sonnet 4.6 at temperature 0.2 for careful, consistent answers).

It has three execution modes:

  • Chat agent — reactive, with 20 tools for logging work days, tracking deadlines, estimating budgets, and finding offices
  • Curator agent — a separate Strands agent that live-researches unverified knowledge-base entries against official sources
  • Digest job — a scheduled, unprompted job that surfaces quota and deadline risks without an LLM

The backend is a Flask app. Session state and work logs are persisted to local JSON files so chat history survives a server restart.


Challenges we ran into

The hardest part was making the agent refuse to guess. A wrong work-hour number can cost someone their visa, so we built the honesty rule into the tool layer itself — every unverified entry carries a VERIFY warning that travels inside the tool result, which the agent is required to pass along.

Making the curator reliable was the second challenge. It runs live web searches and page fetches, so it had to be designed to fail honestly — returning INCONCLUSIVE when it can't find an official source rather than filling the gap with a plausible-sounding answer.


Accomplishments that we're proud of

The curator agent is the piece we're most proud of — a separate Strands agent, with no user in the loop, that walks every unverified entry in the knowledge base, searches the live web, reads official pages, and writes a verdict for human review. It demonstrates genuine agent autonomy: the system noticing what it doesn't know and going to fix that.

We're also proud that "I don't have verified data on that" is a first-class answer in Strivend, not a failure state.


What we learned

Building an agent that refuses to guess is harder than building one that always answers. The temptation to fill gaps with plausible-sounding numbers is real — but once you encode "I don't know" as a correct answer, the model stops reaching for guesses.

We also learned that:

  • Separating agents by job (not just by prompt) keeps each one's context clean
  • Doing deterministic work in Python instead of the LLM saves tokens and improves reliability

What's next for Strivend

The architecture is built to extend — new countries are a same-shaped data entry, not a code change.

Next steps:

  • Move session state into a managed memory store so it scales beyond a single process
  • Push notifications for deadlines via email/SMS on a schedule
  • Calendar integration for automatic deadline sync
  • A proper multi-user auth layer
  • Expanding the curated knowledge base beyond the initial five countries

Longer term, the goal is a web dashboard alongside the chat — so students get both a conversational copilot and an at-a-glance status view.


Tech stack

Layer Technology
Agent framework Strands Agents SDK
Model Amazon Bedrock (Claude Sonnet 4.6)
Backend Flask
Session persistence Local JSON files
Live lookups Google Programmable Search + Places API

Try it


Built for the Agents for Humans Hackathon — Everyday Agents track.

Built With

Share this project:

Updates

Submission history