Wildlife trafficking detection system that scans online marketplaces for illegal wildlife products using AI-powered analysis of listings, images, and text. Integrates LLM-based classification, geographic risk assessment, and intelligence brief generation.
WILDSCAN has 15 tools with mostly complete schemas and descriptions, but significant gaps in parameter documentation and error handling guidance. Tool names follow verb_noun convention well (list_detections, analyze_text, score_listing). Descriptions average ~120 chars, meeting the 10-1024 baseline. However, 8 tools lack parameter descriptions for complex object inputs (e.g., analyze_images accepts 'listing' object with no field documentation; classify_species accepts 'db' parameter with no guidance). Output schemas are not documented in the provided code. Error handling is absent, no recovery guidance, retryability classification, or actionable error messages. Security concerns: review_detection accepts 'reviewer' parameter with default 'investigator', but no permission gating visible. The WebSocket tool (detection_feed) has no input schema or error handling documented.
Analyze marketplace product images using GPT-4 Vision to detect CITES-listed wildlife products and materials.
Perform linguistic analysis on marketplace listing text including code word matching, translation, and LLM-assisted assessment of trafficking indicators.
Cross-reference detected species against species reference database, compute geographic risk, and identify seizure correlations.
WebSocket endpoint for real-time streaming of wildlife trafficking detections and scan lifecycle events.
Get aggregate statistics on wildlife trafficking detections including counts by alert tier and average risk score.
Download and cache marketplace listing images locally for analysis.
Complex object parameters lack field documentation. Tools analyze_text, analyze_images, classify_species, and score_listing accept 'listing', 'text_analysis', 'image_analysis', 'signals' objects with no schema for nested fields. LLMs cannot infer what fields these objects must contain.
No output schemas documented. Tools return complex objects (detections, briefs, analysis results) but response structure is not specified. LLMs cannot plan downstream tool calls or extract required fields.
No error handling or recovery guidance. Tools provide no error classification (retryable vs fatal), no actionable error messages, and no guidance on what to do if a call fails. Agents cannot self-correct.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Generate structured intelligence brief for amber/red detections using Claude with detection data, species profiles, legal frameworks, and recommended enforcement actions.
Retrieve detailed information about a specific wildlife trafficking detection including analysis results, species matches, geographic risk, seizure correlations, and intelligence brief.
Retrieve geospatial data for globe visualization including detection locations, trafficking routes, and aggregate statistics.
List wildlife trafficking detections with optional filtering by alert tier, species, and platform. Returns paginated results with risk scores and brief availability.
Submit a review verdict (true_positive, false_positive, uncertain) for a detection with optional notes and false positive context for lexicon refinement.
Initiate a scan of online marketplaces for wildlife trafficking listings using specified search queries and marketplace platforms.
Calculate wildlife trafficking risk score (0-100) based on signal breakdown including code words, CITES status, IUCN status, seizure history, geographic risk, and image evidence.
Stream interactive chat responses about a detection case using Claude with multi-turn conversation history.
Perform initial triage on marketplace listing to determine if it warrants further analysis based on code word matches and category risk assessment.
WebSocket tool (detection_feed) has no input schema, no error handling, and no documentation of event structure. Cannot be reliably invoked by LLMs.
Permission gating missing. review_detection accepts 'reviewer' parameter with default 'investigator' but no permission checks visible. Destructive/sensitive tools (download_images, review_detection) should verify caller authority.