Lint a voice agent
lint_voice_agentCheck a phone voice agent’s system prompt and, optionally, its config JSON (Vapi assistant, Retell agent or LLM, ElevenLabs agent, or OpenAI Realtime session) against rule-based checks learned on live calls. Finds: no live date and dates without a year; phone numbers, emails, URLs, hyphen ranges and long numbers the voice will misread; no spelling protocol or bare-letter spelling; instructions to pass as human, missing AI disclosure and missing recording notice; scripted tool start lines, stall phrases and silent or long openers; tools with no description, untyped or undescribed parameters, undefined required fields, unformatted date parameters and unstated results; Vapi nested item enums, flat analysisPlan keys, disabled plans and plans without the transcript; ElevenLabs Turbo stutter risk; no transfer or callback path and no end-call; placeholders, secrets, very long prompts and contradictory always and never rules. Each finding has a rule id, severity, the exact line (and JSON path for config), an excerpt, a specific message and the fix; disclosure and recording rules carry their legal citations with the date read. Returns a 0 to 100 score and a verdict. Do not paste credentials: API keys, bearer tokens, passwords and the values of secret-named config fields (apiKey, secret, token, password, credentials, Authorization) are stripped from the input before any check runs and replaced with "[secret removed]", so they are never read, returned, logged or stored; the output says how many were removed. No model reads the input and nothing is stored. Informational, not legal advice.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| platform | No | Which platform the config is for. "auto" detects it from the JSON. | auto |
| config_json | No | The agent’s config as a JSON string, exactly as the platform exports it (remove keys first; any left are stripped before checking): a Vapi assistant, a Retell agent and/or LLM (or {"agent": ..., "llm": ...}), an ElevenLabs agent, or an OpenAI Realtime session or session.update event. | |
| min_severity | No | Only return findings at or above this severity: critical, high, medium or low. | low |
| first_message | No | The opening line the agent speaks, when it is not in the config. | |
| system_prompt | No | The agent’s system prompt, as plain text. Optional when config_json contains it. |