# How Developers Work With This System ## 1. Adding a New Provider (e.g., "Claude" prompts) ### Step 1: Create the prompt in prompts.py: ```python # Add new prompt variant AUDIO_FINDER_PROMPT_CLAUDE = """You are BirdScope Audio Finder optimized for Claude...""" # Update PROMPTS dict PROMPTS = { "audio_finder": { "default": AUDIO_FINDER_PROMPT, "huggingface": AUDIO_FINDER_PROMPT_HF, "claude": AUDIO_FINDER_PROMPT_CLAUDE, # NEW }, } ``` That's it! The system automatically picks it up when `provider="claude"` is passed. ## 2. Adding a New Prompt Type (e.g., "data_analyst") ### Step 1: Create prompts: ```python DATA_ANALYST_PROMPT = """Default data analyst prompt...""" DATA_ANALYST_PROMPT_HF = """HF-optimized data analyst prompt...""" PROMPTS = { # ... existing prompts ... "data_analyst": { "default": DATA_ANALYST_PROMPT, "huggingface": DATA_ANALYST_PROMPT_HF, } } ``` ### Step 2: Use in subagent_config.py: ```python "data_analyst": { "name": "Data Analyst", "tools": [...], "prompt": get_prompt("data_analyst", provider) or DATA_ANALYST_PROMPT, } ``` ## 3. Testing Different Prompts ### Option A: Through UI (current method) - Run `python app.py` - Select provider dropdown → "HuggingFace" - System automatically uses HF prompts ### Option B: Programmatically (for testing) ```python from langgraph_agent import prompts # Test which prompt is selected prompt = prompts.get_prompt("audio_finder", "huggingface") print(f"Length: {len(prompt)}") print(prompt[:100]) ``` ## 4. Fallback Behavior The system is designed with safe fallbacks: ```python # If HuggingFace variant doesn't exist, falls back to default prompt = get_prompt("species_explorer", "huggingface") # Returns: SPECIES_EXPLORER_PROMPT_HF if exists, else None # In subagent_config.py, the "or" ensures a default prompt = get_prompt("species_explorer", provider) or """Inline default...""" ``` ## Developer Workflow Summary ### To modify prompts: 1. Edit `langgraph_agent/prompts.py` 2. Add/modify prompt strings 3. Update `PROMPTS` dictionary 4. Restart app - changes take effect immediately ### To add new provider support: 1. Add provider key to `PROMPTS` dict 2. No other changes needed - fallback handles missing variants ### To debug which prompt is used: ```python from langgraph_agent.prompts import get_prompt print(get_prompt("audio_finder", "huggingface")[:200]) ```