Project Info
This project did not submit a demo video on Devpost.
Inspiration
Access to primary care is important. But currently, it sucks. While trying to identify a core problem to solve, we discovered that a significant percentage of the users we spoke to were frequent healthcare users, indicating a high need for faster access to care. Sixty-two % of them said they were looking for credible tools to discuss health symptoms in the context of their medical history. Patients often feel that getting in touch with a Primary Care Physician is time-consuming, inconvenient, and awkward.
What it does
gendoc.ai delivers instant, personalized responses and centralizes healthcare in one place. Strengthening the patient–doctor loop and making it easier to reach out for potentially life-saving help.
How we built it
Tech stack: Claude, MCP Server, FastAPI, React + TypeScript, Github Data model: gendoc Data Model We used Figma to prototype the design spec and visualize the key components of our MVP, which would be directly interacting with our end client We built a FastAPI server acting as an intermediate server between the client and agent. The FastAPI will handle transactional processing for our application and communicate with the MCP Agent server to perform tasks and respond to users promptly Claude MCP Agent: We built a main agent that will handle communication and orchestration. Depending on our system prompt + user prompt, our agent offers a tool to: Communicate with the patient to understand their needs Predict symptoms based on the user's input Generate a report and get the doctor's approval Place the medicine order according to the doctor's request Schedule an appointment with a specialized doctor if necessary
Accomplishments we're proud of
Ease of use due to the user-friendly interface Quality of the insights generated by our model
What we learned
How to build an MCP agent with the Claude Agent SDK
GENDOC.AI
Team members
- Tyson Hoang
- Divine Akinjiyan
- Siddhartha Reddy Pullannagari
Activate virtual environment
conda create -n calhack python=3.12
conda activate calhack
Gendoc.ai — local RAG agent + mailbox agents (no Docker, no API keys)
This repo contains a minimal multi-agent setup using Fetch.ai uAgents with a working RAG (retrieval-augmented) medical helper. It talks via the Agentverse mailbox, retrieves credible snippets from a local Chroma vector DB, and returns conditions/specialties plus citations. You can run everything locally without Docker or API keys.
What’s here
Agents (mailbox mode, unique ports): triage, report, scheduling, pharmacy, audit, orchestrator, and rag (this one does retrieval).
RAG stack: Chroma (HTTP server), SentenceTransformers embeddings, simple rules (MeTTa-ready later).
Senders: send.py, send_rag.py to ping any agent by agent1… address.
Requirements
macOS/Linux, Python 3.13 (for now). (If you want MeTTa/Hyperon reasoning today, use Python 3.11; see “MeTTa mode” below.)
Install deps:
cd agents_lab
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install "uagents==0.22.10" "pydantic>=2.8,<3" "uvicorn>=0.30.1,<1.0"
python -m pip install "chromadb[server]==0.5.5" "sentence-transformers==3.0.1"
"beautifulsoup4==4.12.3" "numpy==1.26.4" "requests==2.32.3"
Run Chroma (no Docker)
Terminal A:
source .venv/bin/activate python -m chromadb.cli run --path .chroma --host 127.0.0.1 --port 8003
Terminal B (env to point at the server):
source .venv/bin/activate export CHROMA_MODE=http export CHROMA_HOST=127.0.0.1 export CHROMA_PORT=8003
Ingest a tiny seed index
ensure packages treat agents/ as a package
touch agents/init.py agents/rag/init.py
ingest public WHO/CDC pages (demo only)
python -m agents.rag.ingest
Run the RAG agent (mailbox) and pair once python -m agents.rag.rag_agent
copy the Inspector link from logs, open it, click: Connect → Mailbox → Finish
copy the printed agent1… address
Send a test query
python -m agents.rag.send_rag
--to <RAG_AGENT_ADDRESS>
--text "sore throat 3 days, productive cough, mild fever"
--session sess42 --k 6
You should see:
conditions (demo rules → e.g., flu)
specialties (e.g., primary_care)
citations/facts from Chroma (WHO/CDC snippets)
Run the other template agents (optional)
Each in its own terminal, pair once via Inspector (mailbox):
python agents/triage_agent.py # port 8000 python agents/report_agent.py # port 8002 python agents/scheduling_agent.py # port 8003 python agents/pharmacy_agent.py # port 8004 python agents/audit_agent.py # port 8005 python agents/orchestrator_agent.py # port 8006
Then use the universal sender:
python agents/send.py --to <AGENT_ADDR> --text "..." --target triage|report|schedule|pharmacy|audit
MeTTa (Hyperon) mode (optional, for full symbolic reasoning)
Use Python 3.11:
pyenv install 3.11.9
pyenv local 3.11.9
python -m venv .venv311 && source .venv311/bin/activate
python -m pip install --upgrade pip
python -m pip install uagents==0.9.2 hyperon==0.2.6 uvicorn==0.22 pydantic==1.10.14
chromadb==0.5.5 sentence-transformers==3.0.1 beautifulsoup4==4.12.3 numpy==1.26.4 requests==2.32.3
Then restore agents/rag/knowledge.py (MeTTa version), and keep the same run steps.
Notes
No API keys needed for this demo.
To add an LLM (Claude) later, you’ll set ANTHROPIC_API_KEY and run a new claude_agent (see workflow below).
If you see “Agent mailbox not found,” → open the Inspector link from logs and complete Connect → Mailbox once per agent.
If you see “address already in use,” → give each agent a unique port.
Analysis
View
Metric
- 9
- 5
- 1
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
- CSSIn code
- FastAPIIn code
- HTMLIn code
- PythonIn code
- ReactIn code
- SupabaseIn code
- TypeScriptIn code
- PostgreSQLClaimed
7 of 8 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
431 KB
Source files
113
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
dtuan2604/gendoc.ai
131 files · 6.1 MB · @ c47e325
Structure
Interface
56 files · 43%Screens, components and styles rendered to the user.
Application logic
48 files · 37%Domain rules, services and shared utilities.
Data & schema
6 files · 5%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript63%
- Python25%
- CSS11%
- Markdown1%
- HTML0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
frontend/package.json
npm · 49- @jsr/supabase__supabase-js
- @radix-ui/react-accordion
- @radix-ui/react-alert-dialog
- @radix-ui/react-aspect-ratio
- @radix-ui/react-avatar
- @radix-ui/react-checkbox
- @radix-ui/react-collapsible
- @radix-ui/react-context-menu
- @radix-ui/react-dialog
- @radix-ui/react-dropdown-menu
- @radix-ui/react-hover-card
- @radix-ui/react-label
- @radix-ui/react-menubar
- @radix-ui/react-navigation-menu
- @radix-ui/react-popover
- @radix-ui/react-progress
- @radix-ui/react-radio-group
- @radix-ui/react-scroll-area
- +31 more
backend/requirements.txt
pypi · 12- alembic
- asyncpg
- claude_agent_sdk
- Faker
- fastapi
- loguru
- passlib[argon2]
- psycopg2-binary
- pydantic[email]
- python-dotenv
- SQLAlchemy
- uvicorn
agents_lab/requirements.txt
pypi · 8- beautifulsoup4
- chromadb
- hyperon
- numpy
- python-dotenv
- requests
- sentence-transformers
- uagents
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.