A personal AI assistant for Shivam Gupta with voice interaction, RAG-based knowledge retrieval, system monitoring, and tool integration via LangGraph and LangChain
Jarvis has 8 tools with basic schemas and descriptions, but significant quality gaps. All tools have descriptions (10-200 chars, mostly adequate), and input schemas are present with type definitions. However, descriptions lack LLM-optimized guidance on WHEN to use each tool, parameter descriptions are minimal or absent, output schemas are undocumented, and error handling is generic. No tool annotations (readOnlyHint/destructiveHint). The math tool shows good security (AST-based, no eval), but most tools lack actionable error messages. Average tool score: 52/100.
evaluates basic math expressions like '2 + 2 * 5' or '(10 / 3) ** 2'. Supports: +, -, *, /, //, **, %. Does NOT use eval() safe from injection.
checks the systems ram, cpu and battery status
Fetches the current weather of the given location
Reads the current text from user's System clipboard useful for tone changes,rewrites or processing copied content
Takes a screenshot and extracts visible text from it using OCR(tesseract)
Searches the RAG knowledge base (ChromaDB) for documents indexed by the user, including resume, project notes, code, and written facts. Returns top-k matching chunks with source metadata.
No output schemas documented. LLMs cannot predict return structure, forcing them to guess field names for downstream tool chaining. E.g., get_weather returns a string, but what fields does check_system_health return? Is it structured or free-text?
Parameter descriptions missing or trivial. 'location' in get_weather has a description, but most tools lack guidance. E.g., search_knowledge's 'query' param has no format hints (free-text? keywords? natural language?).
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). write_clipboard is destructive (overwrites clipboard), but LLM has no signal to treat it carefully. Per spec 2026-07-28, tool annotations are a current pattern for safety.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Searches the web using DuckDuckGo and returns a sumamry of results, if the query or the query results are machines based like windows, mac, or linux, so anwwer it specifically, Here is the current context of the system: OS: windows 11 Home Use for current events, facts, web searching, latest updates and fetch information not present in memory
Writes text to the user's system clipboard, replacing current content
Error messages are generic and non-actionable. E.g., 'Failed to read clipboard: {str(e)}' tells LLM nothing about recovery. Per pattern:recovery-guide, errors must guide next steps: 'Clipboard is empty or contains non-text content' is better, but most tools lack this.
Tool descriptions lack WHEN-to-use guidance. E.g., web_search description is 200+ chars but buries the key insight in a run-on sentence.