A web intelligence and retrieval system that provides tools for crawling, querying, reading, and analyzing web content with proof tracking and semantic search capabilities.
Needlex has 9 tools with complete input schemas and descriptions, but quality is inconsistent. Tool names follow verb_noun convention (web_crawl, web_query, web_read, web_replay, web_diff, web_proof, web_prune, memory, analytics). Descriptions exist but are brief (10-80 chars) and lack actionable context for LLM selection. Parameters have types but most lack individual descriptions, e.g., web_crawl's 'profile', 'user_agent', 'retrieval_effort', 'render', 'config_path' are undescribed. No output schemas documented. Error handling is minimal, code shows basic error returns but no recovery guidance. Security concerns: web_crawl and web_query accept 'config_path' as a parameter, risking path traversal. No tool annotations (readOnlyHint/destructiveHint) despite clear risk distinctions (web_prune and memory are WRITE operations). Composition is reasonable, tools are single-purpose, but chaining is unclear without documented output schemas.
Query and analyze usage analytics and performance metrics.
Manage and query semantic memory for context retention.
Traverse linked pages starting from one seed URL.
Compare two stored traces and generate a diff report.
Retrieve proof records for a chunk, proof, or trace by ID.
Prune stored traces and caches based on age or other criteria.
Query and discover web content based on a goal with optional seed URL and discovery mode.
Parameter descriptions missing for 40+ parameters across all tools. web_crawl's 'profile', 'user_agent', 'retrieval_effort', 'render', 'config_path' are undescribed; LLMs cannot infer their purpose or valid values.
No output schemas documented. Tools return map[string]any with no structure hints. LLMs cannot plan downstream calls or extract required fields (e.g., does web_crawl return URLs, content, metadata?).
Tool descriptions are too brief (10-40 chars). web_proof: 'Retrieve proof records for a chunk, proof, or trace by ID.' lacks context on when to use it vs web_replay or web_diff. Descriptions should be 50-200 chars with WHAT, WHEN, and RETURN hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Read and extract content from a specific URL with optional objective.
Replay and retrieve a stored trace report by trace ID.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint). web_prune and memory are WRITE operations; web_crawl, web_query, web_read are READ-ONLY. Annotations enable agents to reason about safety and retry logic.
Path traversal risk: web_crawl and web_query accept 'config_path' as a parameter. No validation visible in code. Agents could pass '../../../etc/passwd' or similar. Validate against a whitelist or reject user-supplied paths.