Self-hosted AI agent powered by Claude, with Telegram integration, voice calls, reminders, routines, and native MCP tools for real-world task execution
KOVO exposes 7 tools with partial schema coverage and inconsistent descriptions. All tools have descriptions (10-150 chars), but 5 of 7 lack complete input parameter schemas in the visible code. Tool names follow verb_noun convention (make_call, send_image, set_reminder, set_routine, list_routines, cancel_routine, start_live_call), which is good. However, parameter descriptions are sparse or missing entirely. The toolkit.py excerpt shows only tool names and brief descriptions; actual schema definitions are not visible in the provided source. This forces schema scores to 0 for tools where JSON Schema cannot be verified. Error handling and output documentation are absent. No evidence of idempotency, pagination, or recovery guidance.
Delete a routine by name or ID
List all existing routines with their status, schedule, and next run time
Place a real voice call to the owner's phone via Telegram, speaking the given message aloud (TTS). Falls back to a voice message if unanswered.
Search for and send an image to the owner's chat based on a query
Create a reminder with a message and due date/time. Delivery can be via message, call, or both.
Create a recurring autonomous task with a cron schedule. The model converts natural-language schedule to cron before calling this.
Input schemas not visible in source code. Tools declare parameters (message, urgent, query, due_at, delivery, cron, name_or_id) but JSON Schema definitions with type, required, and constraints are not shown. Cannot verify schema completeness.
Output schemas undocumented. No visible description of what each tool returns (success/failure structure, fields, types). LLMs cannot plan downstream calls or extract required data.
Error handling and recovery guidance absent. No evidence of actionable error messages, error classification (retryable vs fatal), or recovery suggestions. Agents cannot self-correct on failure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Ring the owner for a live two-way voice conversation (experimental feature)
Destructive operations (cancel_routine, make_call, send_image) lack confirmation or dry-run support. Agents can irreversibly delete routines or trigger calls without safeguards.
Parameter descriptions incomplete. 'delivery' enum in set_reminder and set_routine is documented, but most other parameters lack constraint descriptions (format, range, allowed values). LLMs cannot validate inputs before calling.