Skip to content
This repository was archived by the owner on Oct 28, 2025. It is now read-only.

vasubawa/KnightmareProtocol

Repository files navigation

Knight Hacks OPS Agents

A Next.js web application powered by Google ADK (Agent Development Kit) and CopilotKit that demonstrates how a coordinated set of AI productivity agents can assist with travel planning, scheduling, focus management, and more. The project features a modern React frontend integrated with multiple specialized Python agents running on Google's Gemini models.

🚀 Features

  • Interactive Web UI: Built with Next.js 15, React 19, and CopilotKit for seamless AI chat interactions
  • Multi-Agent Architecture: Specialized agents for different productivity domains
  • Graceful Fallbacks: Agents work with or without third-party API keys
  • Real-time Integration: Live data from Google Maps, Amadeus flights, and more
  • Developer Tools: Built-in linting, testing, and documentation agents for development workflow

📁 Project Structure

├── src/                        # Next.js frontend application
│   ├── app/                   # Next.js app router pages
│   │   ├── api/              # API routes (CopilotKit integration)
│   │   ├── page.tsx          # Main chat interface
│   │   └── layout.tsx        # Root layout
│   └── ...
├── agent/                      # Python agent backend
│   ├── agent.py              # Main agent orchestrator
│   ├── requirements.txt      # Python dependencies
│   └── root_agent/           # Root agent implementation
│       ├── dev_agent/        # Development workflow agents
│       │   ├── doc_agent/   # Documentation generator
│       │   ├── linter_agent/# Code quality checker
│       │   └── testing_agent/# Test automation
│       └── sub_agents/       # Domain-specific agents
│           ├── calendar_agent/    # Calendar & scheduling
│           ├── commute_agent/     # Travel time estimates
│           ├── critic_agent/      # Quality assurance
│           ├── email_agent/       # Email drafting
│           ├── flight_agent/      # Flight search (Amadeus)
│           ├── focus_agent/       # Deep work management
│           ├── knowledge_agent/   # Q&A and context
│           ├── memory_agent/      # Long-term memory
│           ├── notification_agent/# Alert management
│           ├── planner_agent/     # Itinerary planning
│           └── wellness_agent/    # Health reminders
├── scripts/                    # Setup and run scripts
├── package.json               # Node.js dependencies
└── README.md

🛠️ Tech Stack

Frontend:

  • Next.js 15 with Turbopack
  • React 19
  • CopilotKit (AI chat integration)
  • TypeScript
  • Tailwind CSS 4

Backend:

  • Python 3.10+
  • Google ADK (Agent Development Kit)
  • Google Gemini AI models
  • Optional: Google Maps API, Amadeus API

Prerequisites

  • Python 3.10 or newer
  • Google ADK CLI (pip install google-adk)
  • Optional SDKs per agent:
    • python-dotenv for automatic .env loading (otherwise we parse manually)
    • googlemaps for commute_agent
    • amadeus for flight_agent

Install missing packages inside your virtualenv, for example:

pip install python-dotenv googlemaps amadeus

Environment Configuration

Create .env at the repository root (already checked in for convenience) and populate the keys you have access to:

GOOGLE_API_KEY=...          # Required for Gemini 2.5 Flash
MAPS_PLACE_API_KEY=...      # Needed for live commute estimates (optional)
AMADEUS_API_KEY=...
AMADEUS_API_SECRET=...

All agent modules call _ensure_env_loaded() during import, so running the ADK CLI/W UI inherits these variables automatically. If you prefer exporting variables manually, source .env before launching the agents.

Running An Agent In The ADK Web UI

cd /Users/<you>/Dev/knight-hacks-25
source .venv/bin/activate        # optional but recommended
source .env                       # if you want to push vars into your shell
adk web planner_agent             # replace with any other agent folder name

Repeat the last command with calendar_agent, flight_agent, etc. The ADK UI will display the agent description, and every prompt you send is routed through that agent’s run_ops tool. For example:

  • commute_agent: ask “from New York to Boston” to trigger a Distance Matrix call or fallback guidance.
  • flight_agent: ask “Flight from MCO to DXB on 2025-12-01” to try the Amadeus API.

If the required SDK or API key is missing, the agent returns an informative fallback message instead of failing.

Orchestrator Demo (Optional)

main.py shows the earlier orchestrated productivity simulation that wires multiple domain agents together. It depends on an ops package that lives outside this repository snapshot, so treat it as illustrative unless you restore those modules.

Troubleshooting

  • Import "amadeus" could not be resolved: install amadeus inside the same virtualenv you use for the ADK CLI.
  • Google Maps quota or auth errors: confirm MAPS_PLACE_API_KEY (or GOOGLE_MAPS_API_KEY) is present in .env and valid for Distance Matrix.
  • Agent not shown in ADK web: ensure the folder’s __init__.py re-exports root_agent (already configured) and that you invoke adk web <folder> from the repo root.

Next Steps

  • Add additional tools to each agent, e.g., calendar CRUD, email send, or focus analytics.
  • Wire the agents back into a shared orchestrator once their standalone behaviors are proven.
  • Capture integration secrets with a proper secrets manager instead of a plain .env file when moving toward production.

Releases

No releases published

Packages

 
 
 

Contributors