Recall over past AI agent sessions — the man who forgets nothing, with discrimination.
Funes provides 7 tools with complete input schemas and descriptions. All tools are READ_ONLY except 'index' (WRITE). Naming follows verb_noun convention (recall, scan, get, sessions, sketch, index, status). Descriptions are present and substantive (80-200 chars typical). However, parameter descriptions lack actionable constraints (ranges, formats, enums), and output schemas are not documented. Error handling and recovery guidance are absent. The 'index' tool lacks clarity on what constitutes a valid source path or what errors might occur.
Retrieve a specific session's turns by ID and optional range
Index agent session transcripts into the local memory from JSONL files or parquet datasets
Search the memory for sessions matching a query using semantic similarity and reranking
Exhaustive literal search within a specific session
List all sessions in the memory with optional filtering by date
Generate a bounded, addressable summary of a session's content
Report the memory's current state: chunk count, session count, and index status
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields (e.g., session_id from 'sessions' result). Violates pattern:tool requirement that all tools document return types.
Parameter descriptions lack actionable constraints. 'top_k' (recall) has no range guidance; 'rerank_threshold' has no valid range (0-1?); 'from_turn' and 'to_turn' (scan, sketch) lack bounds. LLMs will pass arbitrary values.
'index' tool description does not clarify what constitutes a valid source path, what file formats are accepted, or what errors might occur (e.g., malformed JSONL, missing parquet schema). Violates pattern:tool-description completeness.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
No error handling guidance. Tools lack recovery hints (e.g., 'If session_id not found, call sessions() to list available IDs'). Agents cannot self-correct on failures.
Parameter 'memory' (recall, status) is optional but its semantics are unclear. Does it default to a global memory? A user-specific one? What happens if the path does not exist? Undocumented dependency.