Open-source Voice↔Text↔Action middleware protocol for Indian languages. Provides a gateway for building voice agents with STT, LLM, and TTS backends supporting Indian language code-switching, dialect routing, and tool calling.
Critical failures across all dimensions. Tool definitions are duplicated (enam_mandi_price appears 4 times, pan_validate 3 times, bhashini_translate once). Descriptions are present but generic (34-80 chars, below 50-200 char baseline for LLM optimization). Input schemas visible but lack enums, ranges, and format constraints. No output schemas documented. No error handling guidance. Tool implementations in webapp/server.py show mock data only, no real API integration visible. Naming is acceptable (verb_noun pattern) but parameter descriptions are minimal. No tool annotations (readOnlyHint, destructiveHint). No pagination support despite agricultural price tool returning potentially large datasets.
Translate text between Indian languages using Bhashini NMT backend.
Fetch real-time agricultural commodity prices from eNAM (e-National Agriculture Market) for a given crop and mandi (market).
Fetch real-time agricultural commodity prices from eNAM (e-National Agriculture Market) for Tamil-speaking farmers.
Fetch real-time agricultural commodity prices from eNAM (e-National Agriculture Market).
Fetch real-time agricultural commodity prices from eNAM (e-National Agriculture Market) for a given crop and mandi (market).
Validate an Indian PAN (Permanent Account Number) format and return validation status with PAN type and name.
Duplicate tool definitions: enam_mandi_price registered 4 times, pan_validate 3 times. LLM will be confused about which variant to call.
No output schemas documented. LLMs cannot plan downstream tool calls or extract structured data. enam_mandi_price returns JSON with min/max/modal prices but this is not declared in tool definition.
Parameter descriptions lack format constraints. 'crop' accepts free-form strings (tomato, onion, rice, wheat, cotton, potato) but no enum declared. LLM will hallucinate invalid crop names.
No error handling guidance. If enam_mandi_price fails (API down, invalid crop), tool returns generic error. LLM has no recovery path.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | <=2025-11-25 | v2 |
Validate an Indian PAN (Permanent Account Number) format and return validation status.
Validate an Indian PAN (Permanent Account Number) format and return validation status.
Tool descriptions too short (30-40 chars). Below 50-char minimum for LLM optimization. 'Validate an Indian PAN' lacks context on when/why to call vs other tools.