Local AI Agent powered by LangChain & Ollama/OpenAI with SQLite database query tools and Redis-backed conversation memory
Three tools with basic verb-noun naming (list_tables, describe_table, execute_sql_query) and present descriptions. However, descriptions are minimal (10-40 chars), lack context on WHEN to use each tool, and omit dependency hints. Input schemas exist but are sparse: list_tables has empty schema ({}), describe_table and execute_sql_query have single string params with minimal descriptions. No output schemas documented. execute_sql_query lacks safety guidance despite accepting arbitrary SQL. No error handling guidance for LLMs. Tools are READ_ONLY but descriptions don't state this. Missing pagination, result limits, and structured output documentation.
Get the schema of a specific table.
Execute a SQL query against the database.
List all tables in the database.
All descriptions are under 50 characters and lack WHEN/WHY context. 'List all tables in the database' does not explain when to call this vs describe_table, or what structure it returns.
execute_sql_query accepts arbitrary SQL with only naive 'SELECT-only' check. No description warns LLM about SQL injection risk, rate limits, or timeout behavior. Agents need explicit guidance on constraints and failure modes.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract structured data. describe_table returns formatted string; execute_sql_query returns str(results), both lack field documentation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 34 | 2026-07-28+ | v2 |
No error handling guidance. execute_sql_query catches exceptions and returns 'SQL Error: {e}', raw error messages do not tell LLM what to do next (retry? ask user? fatal?). Per pattern:recovery-guide, errors must include actionable next steps.