Knowledge graph for software engineering — design patterns, refactorings, and laws for AI agents
Episteme has 16 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-100 chars, mostly 50-80), and input schemas are present with type definitions. However, descriptions are generic and lack LLM-optimized guidance on WHEN to use each tool or HOW to chain them. Output schemas are not documented. Error handling is absent, no recovery guidance, no categorization of retryable vs fatal errors. Parameter descriptions exist but are minimal (e.g., 'Entity identifier' for graph_entity.id). No tool annotations (readOnlyHint/destructiveHint). The 'sniff' tool accepts both 'files' array and 'staged' boolean without documenting mutual exclusivity. Most tools are READ_ONLY (15/16), but insight_add is WRITE with no confirmation pattern. Naming is verb-forward (analyze, infer, search, refactor, audit, ground) which is good, but tools like 'graph_entity', 'graph_neighbors', 'graph_path' could be more action-oriented (get_entity, list_neighbors, find_path). No pagination support visible despite tools returning lists (search, insight_list, graph_subgraph). Average tool description ~70 chars (below 194-char baseline); average params ~2.5 (below 4-param baseline).
Code analysis tool that detects code smells and quality issues in source files
Audit a file for code quality issues
Find contradictions in the knowledge graph
Retrieve a specific entity from the knowledge graph by ID
Infer transitive relationships in the knowledge graph
Get neighboring entities in the knowledge graph
Find a path between two entities in the knowledge graph
Extract a subgraph from the knowledge graph
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields. Tools like search, insight_list, graph_subgraph return lists but structure is opaque.
No pagination support visible. Tools returning lists (search, insight_list, graph_subgraph) lack limit/offset and total_count. Large result sets will blow context windows.
No error handling guidance. Tools provide no recovery hints (e.g., 'Entity not found. Try search() first'). No error categorization (retryable vs fatal). Agents cannot self-correct.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Ground a prompt in the knowledge graph context
Infer design patterns and refactoring opportunities from source code
Add a new insight to the knowledge graph
List insights from the knowledge graph
Search insights in the knowledge graph
Suggest refactorings for source code
Search the knowledge graph for entities matching a query
Detect code smells in staged or specified files
insight_add (WRITE tool) lacks confirmation pattern. No dry-run or explicit confirmation before adding to knowledge graph. Agents can make irreversible mistakes.
Parameter descriptions are minimal (10-40 chars). 'Entity identifier' for graph_entity.id lacks context on format (UUID? string? integer?). LLMs cannot infer valid input types.