Why vector search isn't enough for coding agents
By Steven Van ·
Graphify's worked trace on the itsdangerous repo labels every dependency hop as parsed from source or inferred, with file and line citations.
Graphify published a worked example of its code knowledge graph, run on the public pallets/itsdangerous repo (commit 672971d). The question was "where does an expired timestamp raise SignatureExpired", and the output shows how the graph labels each hop.
The trace
The graph was built with graphify update src, which uses only the parser and makes no LLM call. It produced 152 nodes, 346 edges and 7 communities. The query went from the plain-language question to SignatureExpired and TimestampSigner, then returned the surrounding edges, each with a file and line number.
- .unsign() calls SignatureExpired at timed.py:L142. This is the raise site, labelled EXTRACTED.
- SignatureExpired inherits from BadTimeSignature, also EXTRACTED. Any except BadTimeSignature or except BadSignature will therefore catch expiry too.
- TimedSerializer uses SignatureExpired at timed.py:L213, labelled INFERRED. No line has the serializer calling the exception. The resolver linked them because the class body refers to it, and line 213 is a catch and re-raise.
Parsed versus inferred
EXTRACTED means the edge was read directly from the source. INFERRED means Graphify resolved it. Running graphify path "TimedSerializer" "SignatureExpired" returns a one-hop path marked INFERRED. Graphify's argument is that the labels tell an agent which hops it can rely on and which to read before editing. For the example task of making expired tokens return a 401 instead of a 500, the agent gets the raise site, the exception hierarchy and the one inferred re-raise to verify.
Other approaches cited
The post also summarises earlier write-ups that use structure rather than similarity alone, including WonderLab's payment example, Tian Pan's Code-Specific RAG, InkyLab's CodeBot, Aider's repo map and RepoGraph. RepoGraph reports an average relative improvement of 32.8% when plugged into four SWE-bench systems.
Trying it
The CLI installs with uv tool install graphifyy, and graphify install sets up the skill for Claude Code. The --platform flag covers other assistants, and Codex uses $graphify instead of /graphify. Over MCP, the same operations are available as query_graph, shortest_path and get_node. A hosted Graphify app is also available, and the source is on GitHub under Graphify-Labs/graphify.