<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dmytro Halichenko</title>
    <description>The latest articles on DEV Community by Dmytro Halichenko (@gimalay).</description>
    <link>https://dev.to/gimalay</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2691905%2F854aba8d-3d82-4d9c-ba37-2b1abaa82177.png</url>
      <title>DEV Community: Dmytro Halichenko</title>
      <link>https://dev.to/gimalay</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gimalay"/>
    <language>en</language>
    <item>
      <title>Markdown Knowledge Graph for Humans and AI Agents</title>
      <dc:creator>Dmytro Halichenko</dc:creator>
      <pubDate>Sat, 21 Mar 2026 17:13:06 +0000</pubDate>
      <link>https://dev.to/gimalay/markdown-knowledge-graph-for-humans-and-agents-43c4</link>
      <guid>https://dev.to/gimalay/markdown-knowledge-graph-for-humans-and-agents-43c4</guid>
      <description>&lt;p&gt;You accumulate knowledge constantly — notes, docs, project decisions, things you'll need to remember later. AI agents could help you work with all of this. But how do you give them access to what you know?&lt;/p&gt;

&lt;p&gt;There's a growing industry around "agent memory" — vector databases, embedding pipelines, retrieval systems. But for personal and project knowledge, the answer might be simpler: plain Markdown files.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with Agent Memory
&lt;/h2&gt;

&lt;p&gt;The amount of knowledge and context we need to operate with grows exponentially. Codebases expand. Documentation multiplies. Every project accumulates decisions, patterns, and tribal knowledge that's hard to keep in your head — or fit in a context window.&lt;/p&gt;

&lt;p&gt;AI agents are supposed to help. Every framework now ships with some form of memory management. LangChain has memory modules. CrewAI has knowledge sources. AutoGPT writes to files. The common pattern: agents need persistent, structured storage that survives beyond a single conversation.&lt;/p&gt;

&lt;p&gt;The dominant approach uses vector embeddings. Store memories as embeddings, retrieve via semantic similarity, inject into context. It works, but it creates a problem: &lt;strong&gt;the agent's knowledge becomes opaque&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When your agent "remembers" something, where does that memory live? In a vector database you can't easily read. In embeddings you can't edit by hand. The agent has knowledge, but you can't see it, verify it, or share it.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Different Approach
&lt;/h2&gt;

&lt;p&gt;What if your notes and your agent shared the same knowledge base?&lt;/p&gt;

&lt;p&gt;This is the idea behind &lt;a href="https://github.com/iwe-org/iwe" rel="noopener noreferrer"&gt;IWE&lt;/a&gt; — a tool that treats Markdown as a knowledge graph accessible to both you and your AI agents. You edit in your preferred text editor with full LSP support. Your agent queries the same files through a CLI. Same source of truth, no sync.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;IWE consists of two components:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;An LSP server&lt;/strong&gt; (&lt;code&gt;iwes&lt;/code&gt;) that integrates with VS Code, Neovim, Zed, and Helix&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A CLI&lt;/strong&gt; (&lt;code&gt;iwe&lt;/code&gt;) for programmatic access — the part AI agents use&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The core insight: your text editor already has a protocol for structured document access. The Language Server Protocol gives you completions, go-to-definition, references, and code actions. IWE implements LSP for Markdown knowledge bases.&lt;/p&gt;

&lt;h2&gt;
  
  
  The CLI as Agent Interface
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;iwe&lt;/code&gt; CLI exposes the same knowledge graph to command-line tools:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;iwe find &lt;span class="s2"&gt;"authentication"&lt;/span&gt;

iwe retrieve &lt;span class="nt"&gt;-k&lt;/span&gt; docs/auth-flow

iwe retrieve &lt;span class="nt"&gt;-k&lt;/span&gt; docs/auth-flow &lt;span class="nt"&gt;--depth&lt;/span&gt; 2

iwe retrieve &lt;span class="nt"&gt;-k&lt;/span&gt; docs/auth-flow &lt;span class="nt"&gt;--dry-run&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;An AI agent using Claude Code, Cursor, or any tool that can execute shell commands gets structured access to your knowledge base. No embeddings. No vector database. Just Markdown files with a query interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key flags:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Flag&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--depth N&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Follow inclusion links N levels deep&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-c N&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Include N levels of parent context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-e KEY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exclude already-loaded documents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--dry-run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Check document count and size before fetching&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The &lt;code&gt;--depth&lt;/code&gt; flag is particularly useful. It follows inclusion links and inlines child documents, giving the agent transitive context in a single retrieval call.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inclusion Links: Structure Without Folders
&lt;/h2&gt;

&lt;p&gt;What makes graph traversal work is a simple concept: &lt;strong&gt;&lt;a href="https://iwe.md/docs/concepts/inclusion-links/" rel="noopener noreferrer"&gt;inclusion links&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;An inclusion link is a markdown link placed on its own line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Photography&lt;/span&gt;

&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Composition&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;composition.md&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Lighting&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;lighting.md&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Post-Processing&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;post-processing.md&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When a link appears on its own line, it defines structure: "Photography" becomes the parent of the linked documents. Unlike folder hierarchies, a document can have multiple parents:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Frontend Development
├── React Fundamentals
├── Vue.js Guide
└── Performance Optimization

Backend Topics
├── Database Design
└── Performance Optimization  ← same document, multiple parents
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is polyhierarchy — structure without the limitations of folders. Context flows from parent to child. When you retrieve a document with depth, IWE follows these links to pull in child content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why this matters vs alternatives:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Folders&lt;/strong&gt;: Force single placement. "Performance Optimization" can't live in both frontend and backend directories.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tags&lt;/strong&gt;: No structure, no ordering, no hierarchy within categories.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inclusion links&lt;/strong&gt;: Multiple parents, explicit ordering, annotations alongside links.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What This Enables
&lt;/h2&gt;

&lt;p&gt;This approach gives you &lt;strong&gt;context engineering&lt;/strong&gt; — control over exactly what enters the context window.&lt;/p&gt;

&lt;p&gt;When an agent needs to understand your authentication system:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;iwe retrieve &lt;span class="nt"&gt;-k&lt;/span&gt; docs/auth &lt;span class="nt"&gt;--depth&lt;/span&gt; 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It gets back structured Markdown containing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The auth document itself&lt;/li&gt;
&lt;li&gt;Child documents expanded inline&lt;/li&gt;
&lt;li&gt;Parent context and backlinks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is deterministic retrieval. No embedding similarity thresholds. No "maybe relevant" results. The agent gets exactly the documents in your knowledge graph that connect to the topic.&lt;/p&gt;

&lt;p&gt;Additional benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Version-controlled knowledge&lt;/strong&gt; — Git tracks every change&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transitive context in one command&lt;/strong&gt; — no recursive API calls&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Readable, editable, portable&lt;/strong&gt; — it's just Markdown&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Tradeoff
&lt;/h2&gt;

&lt;p&gt;IWE isn't a replacement for every memory approach:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Structured knowledge (technical docs, project specs, reference material, task managenet)&lt;/li&gt;
&lt;li&gt;Developer workflows with text editor/CLI comfort&lt;/li&gt;
&lt;li&gt;Knowledge you want to read, edit, and version control&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key insight: this isn't "agent memory" bolted onto your workflow. It's your knowledge base — the one you already maintain for yourself — made accessible to agents when you want their help.&lt;/p&gt;

&lt;p&gt;You remain in control. The files are yours, readable and editable. Agents become collaborators that can navigate your knowledge, not black boxes that store it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;IWE is open source and available on &lt;a href="https://github.com/iwe-org/iwe" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. See the &lt;a href="https://iwe.md/get-started/" rel="noopener noreferrer"&gt;Get Started guide&lt;/a&gt; for installation and setup instructions.&lt;/p&gt;

</description>
      <category>rust</category>
      <category>ai</category>
      <category>cli</category>
      <category>lsp</category>
    </item>
  </channel>
</rss>
