Persistent memory for AI agents — Retain, Recall, Reflect via MCP. An agent memory system with Retain/Recall/Reflect operations, plus autonomous learning via Observation Consolidation. Uses SQLite for storage, Gemini Embeddings for semantic search, and Gemini Flash for entity extraction, reflection, and consolidation.
Kirok has well-structured tool definitions with consistent naming (verb_noun pattern: KIROK_retain, KIROK_recall, KIROK_reflect) and descriptions of 80-180 chars. All 9 tools have input schemas with typed parameters and descriptions. However, output schemas are not documented in the source code, LLMs cannot see what fields recall() or reflect() return, forcing them to guess downstream field names. Parameter descriptions are adequate but lack format constraints (e.g., no guidance on bank_id format, no limits on query length). Error handling is absent from visible code, no guidance on what happens when a bank doesn't exist or when Gemini API fails. Destructive tools (KIROK_clear_bank, KIROK_delete_bank) lack confirmation/dry-run patterns.
Delete all memories and observations in a bank. Mental models and bank configuration are preserved.
Delete a bank and all associated memories, observations, mental models, and configuration.
Get configuration for a memory bank including retain mission and observations mission.
List all memory banks with their memory counts and timestamp ranges.
Search for memories and observations in a bank using hybrid semantic and keyword search. Returns ranked results combining vector similarity and full-text matches.
Generate insights and reflections on memories in a bank. Creates mental models that synthesize patterns across multiple memories.
Output schemas not documented. LLMs cannot see what fields KIROK_recall, KIROK_reflect, KIROK_stats, or KIROK_list_banks return, forcing them to guess field names and types for downstream reasoning.
Destructive tools (KIROK_clear_bank, KIROK_delete_bank) lack confirmation or dry-run patterns. Agents can irreversibly delete all memories without a safety gate.
Parameter descriptions lack format constraints. 'bank_id' has no guidance on valid format (alphanumeric? max length?). 'query' in KIROK_recall has no length limits. 'limit' has no min/max bounds.
No error handling guidance visible in tool definitions. LLMs have no recovery path if a bank doesn't exist, Gemini API fails, or consolidation times out.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | <=2025-11-25 | v2 |
Store a memory in a bank with optional entity extraction and keyword tagging. Memories are deduplicated against existing content and automatically consolidated into observations.
Set or update configuration for a memory bank including retain mission and observations mission.
Get statistics for a memory bank including memory count, observation count, mental model count, and unconsolidated memory count.
KIROK_reflect and KIROK_retain descriptions do not explicitly state they modify state. Agents may not realize these are write operations with side effects.