Calculates estimated storage, RAM, and vCPU for a search system and suggests an appropriate instance based on lexical and vector search configurations.
Single tool with reasonable structure but notable gaps in parameter descriptions and output documentation. The tool name 'calculate_sizing_requirements' uses a clear action verb and accurately reflects its purpose. The description is adequate (168 chars) and explains the tool's purpose, but parameters lack sufficient detail for LLM self-correction. Input schema is well-formed with nested object types, but output schema is only documented in docstring prose, not as a formal schema definition. No error handling guidance is provided to help agents recover from invalid sizing configurations.
Calculates estimated storage, RAM, and vCPU for a search system and suggests an instance. Use this tool to get hardware recommendations based on your data and query load. You must provide detailed configurations for both lexical and vector components.
Output schema not formally documented. Returns a dict with 5 keys (StorageGb, RAMGb, vCPU, LexicalDocs, suggested_instance) but only prose description exists. LLMs cannot reliably parse unstructured output to plan downstream actions.
Parameter descriptions lack format constraints and validation rules. 'lexical_sizing' and 'vector_sizing' accept complex nested dicts but provide only JSON examples without specifying required vs optional fields, valid field_type enums, or constraints on numeric ranges (qps, latency, dimensions).
No error handling or recovery guidance. If an agent passes invalid nested structures (missing num_documents, unknown field_type, negative dimensions), the tool will crash with IndexError or KeyError. No validation messages tell the LLM what went wrong or how to fix it.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 10 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 44 | - | v1 |
Example values embedded in parameter descriptions ('num_documents: 1000000', 'dimensions: 1536') risk being reused literally by LLMs instead of adapted to actual context. Should use enum/pattern constraints or type hints instead.
'Custom sizing required. No suitable instance found.' is a valid return value for suggested_instance but not documented as a possible output. LLMs may assume instances S20-S80 are always returned, leading to hallucination if custom sizing is needed.