Private local memory for AI agents, backed by Markdown and SQLite
Synapse has 9 tools with basic schemas and descriptions, but significant gaps prevent higher scores. All tools have descriptions (10-50 chars, mostly short), and input schemas are present with type definitions. However, descriptions are often too terse to guide LLM selection (e.g., 'Full-text search the vault' lacks context on when to use it vs. ask). Output schemas are not documented anywhere, LLMs cannot plan downstream calls. Error handling is absent; no recovery guidance. Parameter descriptions exist but lack constraints (e.g., 'limit' has no min/max). No tool annotations (readOnlyHint, destructiveHint). The 'build' and 'ingest' tools are write operations but lack confirmation/dry-run patterns despite being expensive (LLM calls, file I/O). Tool composition is reasonable (search → get_page → ask forms a chain), but missing IDs in responses would break chaining.
Answer a question from retrieved wiki pages using an LLM
Turn unbuilt sources into wiki pages using an LLM
Export the wiki knowledge graph as JSON
List a page's graph neighbors (incoming and outgoing links)
Retrieve a wiki page by slug
Import text documents without API calls
List all wiki pages with their titles
Full-text search the vault
Output schemas undocumented. LLMs cannot infer what fields search(), get_page(), get_graph() return, blocking downstream tool chaining and forcing agents to guess field names.
Descriptions too terse (10-50 chars). 'Full-text search the vault' and 'Show vault statistics' lack context on when to call them vs. similar tools, and do not explain what data is returned.
No error handling or recovery guidance. Tools do not document what errors can occur (e.g., 'page not found', 'invalid slug', 'API rate limit') or how to recover. Agents cannot self-correct.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Show vault statistics and counts
Destructive/expensive operations lack confirmation. 'build' calls an LLM (cost, latency) and 'ingest' modifies the vault, but neither has a dry-run or confirmation step. Agents can trigger expensive operations unintentionally.
Parameter constraints missing. 'limit' parameters lack min/max bounds (e.g., limit=999999 could break pagination). 'format' in ingest has no enum of valid formats. LLMs will pass invalid values.