quantum-ai/docs/AGENT_SETUP_CHECKLIST.md
Claude 375b2b9d65 Implement wallet deduction after success & fix display issues
🚀 Major improvements to agent system:

## Wallet Management 
- Move wallet deduction to AFTER successful processing (not before)
- Add real-time wallet balance updates in frontend
- Prevent users from losing money on failed requests
- Update both data_analyzer and weather_reporter processors

## Data Analyzer Agent 📊
- Fix N8N integration to handle array response format
- Add binary PDF file upload (multipart/form-data)
- Implement real-time AJAX results display below form
- Add wallet balance updates after successful processing
- Support continuous workflow with "Analyze Another File"

## Weather Reporter Agent 🌤️
- Update price from 2.5 AED to 2.0 AED
- Fix results display (was using page reload, now AJAX)
- Add real-time wallet balance updates
- Implement dynamic results rendering below form
- Add "Get Another Report" functionality

## Template System 🎨
- Update agent generator templates with correct wallet flow
- Add data-wallet-balance attributes for easy targeting
- Fix JavaScript querySelector errors
- Implement proper error handling and logging

## Documentation 📚
- Update CLAUDE.md with wallet best practices
- Add examples of current production agents
- Document required JavaScript functions
- Update pricing information and modern agent features
- Add gitignore entries for nextjs/ and netcop-ai-hub/

## Frontend JavaScript 💻
- Add updateWalletBalance() function for real-time updates
- Implement displayResults() for dynamic content rendering
- Add proper error handling with user-friendly messages
- Support continuous workflow without page refresh

🎉 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-10 16:34:03 +05:30

302 lines
7.7 KiB
Markdown

# Agent Setup Checklist
## Steps to Complete After Running `create_agent` Command
This checklist covers the **6 essential steps** needed after running the automated `create_agent` command to make your agent fully functional.
**✅ The automated system now generates all code files including models, views, processors, and admin interface!**
---
## Example Command
```bash
python manage.py create_agent "PDF Analyzer" "pdf-analyzer" api \
--category utilities --price 5.0 \
--api-base-url "https://api.docparser.com/v1/process" \
--api-key-env "DOCPARSER_API_KEY" --auth-method bearer
```
After running this command, follow these steps:
---
## ✅ **Step 1: Add to Django Settings**
**File:** `netcop_hub/settings.py`
**Add your new agent to INSTALLED_APPS:**
```python
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# Core apps
'core',
'authentication',
'wallet',
'agent_base',
# Agent apps
'weather_reporter',
'agent_pdf_analyzer', # ← ADD THIS LINE
]
```
---
## ✅ **Step 2: Register URL Routing**
**File:** `netcop_hub/urls.py`
**Add URL pattern for your agent:**
```python
urlpatterns = [
path('admin/', admin.site.urls),
path('auth/', include('authentication.urls')),
path('agents/weather-reporter/', include('weather_reporter.urls')),
path('agents/pdf-analyzer/', include('agent_pdf_analyzer.urls')), # ← ADD THIS LINE
path('', include('core.urls')),
]
```
**⚠️ Important:** Add agent URLs **before** the core URLs (the line with `path('', include('core.urls'))`).
---
## ✅ **Step 3: Run Database Migrations**
**Terminal Commands:**
```bash
# Create migrations for your new agent
python manage.py makemigrations agent_pdf_analyzer
# Apply migrations to database
python manage.py migrate
```
**Expected Output:**
```
Migrations for 'agent_pdf_analyzer':
agent_pdf_analyzer/migrations/0001_initial.py
- Create model PdfAnalyzerRequest
- Create model PdfAnalyzerResponse
Operations to perform:
Apply all migrations: ...
Running migrations:
Applying agent_pdf_analyzer.0001_initial... OK
```
---
## ✅ **Step 4: Create Marketplace Entry**
**Method A: Django Shell (Recommended)**
```bash
python manage.py shell
```
```python
from agent_base.models import BaseAgent
from decimal import Decimal
BaseAgent.objects.create(
name="PDF Analyzer",
slug="pdf-analyzer",
description="Extract text, generate summaries, and analyze sentiment from PDF documents",
category="utilities",
price=Decimal('5.00'),
icon="📄",
agent_type="api",
rating=Decimal('4.5'),
review_count=0,
is_active=True
)
# Verify it was created
print("Agent created:", BaseAgent.objects.filter(slug='pdf-analyzer').exists())
```
**Method B: Admin Interface**
1. Go to `http://localhost:8000/admin/`
2. Login with superuser account
3. Click "Base agents" under "AGENT_BASE"
4. Click "Add Base Agent"
5. Fill in the form with agent details
6. Save
---
## ✅ **Step 5: Add Environment Variables**
**File:** `.env`
**Add API credentials for your agent:**
```bash
# Existing variables...
OPENWEATHER_API_KEY=15befe6bac7b1cd0268900fb97d31482
# Add your new agent's API key
DOCPARSER_API_KEY=your_actual_api_key_here
```
**For webhook agents, add webhook URLs:**
```bash
# For webhook-based agents
N8N_WEBHOOK_PDF_ANALYZER=https://your-n8n-instance.com/webhook/pdf-analyzer
```
---
## ✅ **Step 6: Create Agent Template**
**The automated system creates the code structure, but you need to create the template:**
```bash
# Create the template directory and file:
mkdir -p [agent_name]/templates/
```
**Copy and customize from the weather reporter template:**
```bash
# Copy the weather reporter template as a starting point:
cp weather_reporter/templates/detail.html [agent_name]/templates/detail.html
# Then customize the template for your specific agent
```
**Template location should be:**
```bash
# Your agent templates should be in:
agent_[name]/templates/agent_[name]/detail.html
# Example for PDF Analyzer:
agent_pdf_analyzer/templates/agent_pdf_analyzer/detail.html
# Example for Data Analyzer:
data_analyzer/templates/data_analyzer/detail.html
```
---
## 🧪 **Step 7: Test Your Agent**
### **7.1 Check Django Configuration**
```bash
python manage.py check
```
**Expected:** `System check identified no issues (0 silenced).`
### **7.2 Test Template Loading**
```bash
python manage.py shell -c "
from django.template.loader import get_template
try:
template = get_template('detail.html')
print('✅ Template found successfully')
except Exception as e:
print('❌ Template error:', e)
"
```
**Expected:** `✅ Template found successfully`
### **7.3 Test URL Routing**
```bash
python manage.py shell -c "from django.urls import reverse; print('Agent URL:', reverse('core:agent_detail', args=['pdf-analyzer']))"
```
**Expected:** `Agent URL: /agents/pdf-analyzer/`
### **7.4 Test in Browser**
1. **Start server:** `python manage.py runserver`
2. **Visit marketplace:** `http://localhost:8000/marketplace/`
3. **Verify agent appears** in the list
4. **Click "Use Agent"** button
5. **Verify agent page loads** correctly (should redirect to login if not authenticated)
6. **Test authentication flow** (login → redirect back to agent page)
### **7.5 Test Complete Flow**
1. **Login** with test user
2. **Add wallet balance** (if needed)
3. **Submit agent form** with test data
4. **Verify request processes** successfully
5. **Check wallet deduction** occurred
6. **Verify results display** correctly
---
## 🐛 **Common Issues & Quick Fixes**
### **Issue 1: "No module named 'agent_pdf_analyzer'"**
**Fix:** Make sure you added the app to `INSTALLED_APPS` in settings.py
### **Issue 2: "TemplateDoesNotExist: detail.html"**
**Fix:** Ensure template is in correct location within the agent app:
```bash
# Template should be at:
agent_[name]/templates/detail.html
# NOT in the global templates folder
# Restart Django server after moving templates
```
### **Issue 3: "NoReverseMatch: Reverse for 'wallet' not found"**
**Fix:** Check template URLs use proper namespaces:
```html
<!-- Wrong -->
{% url 'wallet' %}
<!-- Correct -->
{% url 'core:wallet' %}
```
### **Issue 4: "Agent not found" in marketplace**
**Fix:** Verify BaseAgent was created with correct slug:
```bash
python manage.py shell -c "from agent_base.models import BaseAgent; print([a.slug for a in BaseAgent.objects.all()])"
```
### **Issue 4: Agent page shows 404**
**Fix:** Check URL registration order in `netcop_hub/urls.py` - agent URLs must come before core URLs.
### **Issue 5: API key errors**
**Fix:** Verify environment variable name matches processor:
```python
# In processor.py
api_key_env = 'DOCPARSER_API_KEY' # Must match .env file
```
---
## 📝 **Quick Checklist Summary**
After running `create_agent`, complete these 6 steps:
- [ ] **Settings:** Add agent to `INSTALLED_APPS`
- [ ] **URLs:** Add URL pattern to `netcop_hub/urls.py`
- [ ] **Database:** Run `makemigrations` and `migrate`
- [ ] **Marketplace:** Create `BaseAgent` entry (done automatically)
- [ ] **Environment:** Add API keys to `.env`
- [ ] **Template:** Create and customize `detail.html` template
- [ ] **Test:** Verify agent works end-to-end
**Total time:** ~10-15 minutes
---
## 🚀 **You're Done!**
Your agent should now be:
**Visible** in the marketplace
**Accessible** via direct URL
**Functional** with authentication
**Processing** requests successfully
**Integrated** with wallet system
**Next Steps:**
- Customize the agent's UI/templates
- Add more complex business logic
- Configure additional API integrations
- Monitor usage and performance