Transform your Google ADK agents with intelligent prompting and dynamic conversation flows.
- AI Agent Enhancement: Upload your Google ADK agent and enhance it with intelligent prompting capabilities
- Dynamic Conversations: Create branching conversation flows and dynamic agent responses
- Real-time Processing: Process and modify your agents in real-time with instant feedback
- File Upload: Upload ZIP files containing Google ADK agent folders for processing
- Python 3.8+
- Node.js 18+
- Google ADK (Agent Development Kit)
- Clone the repository:
git clone <repository-url>
cd BerkeleyAI
- Install backend dependencies:
pip install -r requirements.txt
- Install frontend dependencies:
cd frontend
npm install
- Start the Flask backend (from the project root):
python app.py
- Start the Next.js frontend (from the frontend folder):
cd frontend
npm run dev
- Open your browser and navigate to
http://localhost:3000
- Landing Page: Visit the root URL to see the VibePrompting landing page
- Upload Agent: Upload a ZIP file containing your Google ADK agent folder
- Process Agent: Use the train interface to enhance your agent with intelligent prompting
- Navigate: Use the navigation to switch between the landing page and the main application
The application accepts ZIP files containing Google ADK agent folders. The upload process:
- Validates the file is a ZIP archive
- Extracts the contents to a unique directory
- Identifies agent configuration files
- Stores the upload information for processing
POST /upload_agent
- Upload Google ADK agent ZIP filePOST /process_json/general/<session_id>/<node_id>
- Process JSONGET /history/<session_id>/<node_id>
- Retrieve processing historyPOST /retrigger_adk_web
- Restart ADK web server
BerkeleyAI/
├── app.py # Flask backend server
├── prompt.py # Prompt processing logic
├── requirements.txt # Python dependencies
├── uploads/ # Uploaded agent files
├── history/ # Processing history (per session)
├── hotels_com_api_agent/ # Example agent implementation
│ ├── __init__.py
│ ├── agent.py
│ ├── agent.json
│ └── tools/
│ ├── get_hotel_details_endpoint.py
│ ├── search_hotel_destination_endpoint.py
│ └── search_hotels_endpoint.py
├── frontend/ # Next.js frontend
│ ├── app/ # App router pages and layout
│ │ ├── layout.tsx
│ │ ├── globals.css
│ │ ├── page.tsx
│ │ ├── landing.tsx
│ │ ├── History.tsx
│ │ ├── AgentEditor.tsx
│ │ ├── ChatInput.tsx
│ │ ├── Logs.tsx
│ │ └── train/
│ ├── components/ # UI components
│ │ └── ui/
│ │ ├── button.tsx
│ │ ├── input.tsx
│ │ ├── scroll-area.tsx
│ │ └── select.tsx
│ ├── lib/ # Utilities and types
│ │ ├── agent.json
│ │ ├── types.ts
│ │ └── utils.ts
│ ├── public/ # Static assets (if any)
│ ├── package.json # Frontend dependencies
│ ├── tsconfig.json # TypeScript config
│ └── ... (other config files)
├── __init__.py
├── adk # (ADK integration stub)
└── .venv/ # (optional, for Python virtual environment)
- Backend: Flask, Python
- Frontend: Next.js 15, React 19, TypeScript
- UI: Tailwind CSS, Radix UI
- Agent Framework: Google ADK
For more details, see the frontend/README.md
for frontend-specific development and customization notes.