Cortex Local RAG has well-structured tool definitions with clear naming (verb_noun pattern) and comprehensive parameter schemas. All 4 tools have descriptions and input schemas with typed parameters. However, descriptions are verbose (200+ chars) and lack actionable guidance for LLM selection. Parameter descriptions are present but generic. Output schemas are not documented. Error handling and recovery guidance are absent. No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles (cortex_sync is WRITE, others READ_ONLY).
Read-only index freshness summary and details.
List available sections in the knowledge base.
Search the internal knowledge base using semantic similarity. Use this tool whenever the user asks about anything that may be documented in their local knowledge base. Supports French and English queries. `top_k` is clamped to the 1-10 range; larger values return 10 results. Defaults to multilingual vector retrieval; hybrid and rerank are explicit alternatives.
Incremental sync of the knowledge base. Acquires exclusive write lock. Returns sync report with file/chunk publication, removal, skip and error counters.
Output schemas not documented. LLMs cannot infer what cortex_search returns (result structure, field names, pagination). Breaks downstream tool chaining and forces agents to guess field names.
Tool annotations missing. cortex_sync is destructive (WRITE, exclusive lock) but lacks destructiveHint. cortex_search is read-only but lacks readOnlyHint. LLMs cannot determine safety/retry semantics without annotations.
No error handling or recovery guidance. cortex_sync acquires exclusive lock but no documentation of what happens on timeout, conflict, or partial failure. No guidance for LLM on retry strategy or fallback.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
Parameter descriptions are generic. 'Optional section name filter (case-insensitive)' lacks context on when to use it. 'Optional RFC3339 timestamp filter (from)' doesn't explain the filtering semantics (inclusive? exclusive? timezone handling?).
Tool descriptions exceed 200 chars and lack actionable selection guidance. cortex_search description (300+ chars) buries key details. Should state: WHEN to call (user asks about knowledge base), WHAT it returns (ranked results with scores), and WHEN to use alternatives (hybrid vs rerank modes).