Project Info

Plan B Agent

Devpost

Inspiration

As an international student navigating life in America, there were several times when my Plan A's fail and I felt anxious, tending to overthink everything. There were countless moments where life didn't always go as planned, you might fail a startup, you might get rejected from an internship or a job or places where you really want to be. "When one door is shut, another is opened", a saying popped into my head. Then I thought to myself what if there is a tool that will help to open that new door, a real Plan B, to slow down emotional roller coaster. So for my first hackathon, I decided to build that door for myself and other people who are in the same situation as me.

What it does

Plan B is a two-agent system. You describe what fell through, a missed cohort, a rejected internship, anything in plain language. 1.The Triage agent, powered by Claude, reads it and extracts the real shape of the problem: your goal, your timeline, what's actually blocking you. 2.It hands this off over a genuine Fetch.ai agent-to-agent message, not a function call, to the Pathfinder agent. Pathfinder searches the live web, then opens a real Browserbase cloud browser session to visit the page and check there's a genuine way to reach out. 4.If it can't verify a real contact method, it throws the option away completely. 5.For what survives, Claude drafts a specific, ready-to-edit outreach email using only the details it actually confirmed. How I built it Two independently running agents built on Fetch.ai's uAgents framework, communicating over real inter-agent messaging, both registered on Agentverse with mailbox authentication. One of Claude's best qualities is reasoning so I have decided to include Claude in this role. Claude's role is to perform three distinct reasoning roles across the system Constraint extraction, Search-strategy decisions, Grounded result evaluation, each scoped to its own agent. Search-strategy decisions, Grounded result evaluation, each scoped to its own agent. In order for the agents to give answers based on real world, I used Browserbase and Stagehand that provides real cloud browser verification, not local simulation. A Flask API bridges the agents to a React/Vite frontend. My purpose for this project is to show what AI agent can do that regular AI tools and wrappers cannot which is giving non hallucinated answer. So I decided to go with this feature to make sure the users actually get what they are expecting(a real plan B product) The core architectural decision was building a real anti-hallucination filter directly into the code with is_doable(), is_real_candidate(), sanitize_contact_method() so an unverifiable option is structurally incapable of reaching the user, not just discouraged by a prompt. Challenges I ran into As a solo, first time hacker, the biggest challenge was what every developer has to face: debugging unfamiliar failure modes under time pressure, the API overload, garbled extraction data from real websites, model hallucination toward placeholder values, under time pressure, and learning to verify every fix with real evidence to solve the real problem instead of assuming it worked. Claude's agentic tool-use can pause mid-turn on long, multi-step requests, a mechanism I hadn't worked with before. I built a continuation loop so the agent could pick back up and finish reasoning properly, which taught me a lot about how Claude handles extended tool use in practice. Fetch.ai's side taught me something different, how genuinely convenient it is to register an agent on Agentverse and make it discoverable through ASI:One. That part came together smoothly. The harder part was a Python 3.9 compatibility wall that blocked full Agent Chat Protocol support specifically, I diagnosed this precisely (confirmed via pip index versions uagents-core, no compatible version exists for my environment) rather than guessing around it. Since time was running low, I moved forward with the working version, which taught me a lot about navigating sponsor tools efficiently under real constraints. Accomplishments that I am proud of Registering in UC Berkeley AI hackathon hosted by Calhacks, one of the biggest AI hackathons in the world with more than 1300 people with different experiences, as my first hackathon and on top of that, I am a first time hacker. Despite all the anxiety as a first time hacker and lack of experience, I really glad I applied for this. I wasn't expecting my project to be finished in 24 hours but I can proudly say I did finish it. I went from "I only heard about the AI agents but I don't know what they do" to "I built an AI agent to solve a problem that I am having", thanks to sponsors (mainly Anthropic and Fetch.ai)and their workshops. It helped me get familiar with AI agents and to actually use them in my projects for better quality, performance and solution. What I learned What is an AI agent? What can it do? What makes them different from regular wrappers? There are more than one agent and that they can communicate with one another. How real multi-agent systems actually communicate (not just simulate), how to build verification into code instead of trusting a prompt, and how to debug unfamiliar systems methodically, isolating each layer, demanding raw evidence instead of summaries, testing out after a few lines of code, and refusing to declare something "fixed" until I'd seen it work myself cause I am not only building for the hackathon but also for the real users. Another challenge was at first, I was automating browser on my own laptop instead of on the cloud then I learned about browserbase and its cloud infrastructure, making me change my direction. Switching to browserbase taught me how different cloud-based browser automation actually is from local testing, real network latency, real session lifecycle management, and a session start/navigate/act/extract/end flow that has to be handled deliberately, not assumed. Once switched over, I could see real Browserbase session logs confirming every page visit was genuinely happening in their cloud, not simulated which became the core proof behind my whole "verified, not guessed" approach.I cannot let un polished, untrustworthy product for the users to use. It makes me focus on one feature at a time, implement, test, debug, build and repeat again. This project and hackathon makes me a better Software Engineer(SWE).

What's next

1.Full ASI:One Chat Protocol once migrated off Python 3.9 2.Expanding Pathfinder's real-world actions beyond drafting, and generalizing Making the candidates from 1 to 2-3. 4.Deployment with Docker, vercel and render.

Analysis

Compare with all teams

View

Metric

Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.

Technology

Found in codeClaimed only
  • AnthropicIn code
  • CSSIn code
  • FlaskIn code
  • HTMLIn code
  • JavaScriptIn code
  • PythonIn code
  • ReactIn code

7 of 7 appear in the indexed code.

AI coding agents

  • GitHub CopilotConfig

Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.

Codebase size

Source size

55 KB

Source files

20

Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.

0 stars