Welcome to Ian Chou’s Blog

A decentralized blog network where each subdomain represents an independent universe, unified through RSS aggregation.

CtxFST CH23 - Making AI Memory Visible, Searchable, and Editable: Building a Debuggable Memory Loop with OpenClaw

If an AI misremembers a user preference, why are the majority of contemporary memory systems agonizing to correct? This chapter pivots away from retrieval benchmarks, locking focus onto a vastly more …

CtxFST CH22 - Entity-Aware Retrieval vs Pure RAG: A Head-to-Head Benchmark on a Real Knowledge Base

The preceding 21 chapters systematically constructed CtxFST's entity pipeline, graph runtime, and planner. Yet, the brutal question always lingers: how exactly does it outclass pure vector …

CtxFST CH21 - Integrating OpenClaw: Upgrading Agent Skills into a Semantic World Model

Arriving at CH20, CtxFST possessed world state, graph-aware planning, multi-step lookahead, and interactive critique. This chapter takes an outward step: installing CtxFST into OpenClaw. It clarifies …

CtxFST CH20 - Interactive Plan Critique: Escorting the Planner into True Human-Machine Collaboration

CH19 allowed the CtxFST planner to explain its decisions, but the explanation remained a unidirectional broadcast. This chapter takes another step forward: through critique_plan() and --critique, …

CtxFST CH19 - Relation-Specific Explanations: Making the Planner Explain Its Reasoning Along with Its Routes

CH18 upgraded CtxFST from a greedy selector to a lookahead planner, but a genuinely usable planner must not only choose correctly, it must articulate why one path outclasses another. This chapter …

CtxFST CH18 - Multi-Step Planning: Upgrading from a Greedy Selector to a Lookahead Planner

CH17 equipped the skill selector to differentiate between causal and similarity edges, but it remained a single-step greedy planner. This chapter takes another step forward: introducing find_plan() …

CtxFST CH17 - Relation-Aware Routing: Giving the Selector the Ability to Differentiate Between Causal and Similarity Edges

CH15 granted skill_selector.py goal-aware routing, but at the time, all edges were treated as equal distances. This chapter takes another step forward: replacing uniform BFS with weighted Dijkstra, …

CtxFST CH16 - Don't Rush to Be Smart Just Yet: Adding an End-to-End Test Suite for the Agent Loop

CH15 imbued the skill selector with goal-aware routing, but before advancing toward relation-aware routing or multi-step planning, a far more critical step is patching in reliable automated testing. …

CtxFST CH15 - Goal-Aware Skill Routing: Making skill_selector.py Truly Advance Toward the Goal

CH14 closed the graph-aware agent loop, but the selector was still only looking at cost and the number of postconditions. This chapter goes further by incorporating the current_subgraph and goal …

CtxFST CH14 - Letting SKILL.md Truly Drive the Graph-Aware Agent Loop and Automatically Write Back to the Graph

CH13 proved that CtxFST has a minimal runnable agent loop, but that was only half the story. This chapter clarifies further: how SKILL.md is read as an action contract by the planner, and how …

CtxFST CH13 - The First Runnable Agent Loop: Driving the World Model with world_state.py and skill_selector.py

The preceding chapters upgraded CtxFST into the World Model First format, and this chapter gets it truly running. This article uses world_state.py and skill_selector.py to create the first minimal …

CtxFST CH12 - Landing v2.0: Why I Refactored It to Be World Model First

Chapter 11 discussed the direction of CtxFST v2.0; this chapter details what actually changed upon its realization. Covering the spec, schema, SKILL.md, validation, graph builder, and runtime layer, …

CtxFST CH11 - From v1.0 to v2.0: Upgrading the Semantic Graph into an Operable World Model

In the first 10 chapters, we built CtxFST into the GraphRAG foundation of chunks, entities, and embedding graphs. This chapter takes a step further: clarifying why v1.0-v1.3 are not enough, what world …

CtxFST CH10 - Full-Stack Execution: Defeating Pure Vector Search with Entity Embedding Graphs to Discover Unknown Territories in Your Notes

Why does your RAG always reply with things you already know? This article uses a complete Python code walkthrough—from automatic graph building via Embeddings and Graph Expansion to cracking …

CtxFST CH9 - The Missing Link in the Pipeline: Generating Dynamic Entity Profiles Without Dirtying the Schema

Many developers intuitively want to stuff Entity Descriptions straight into the Markdown Schema, but this is actually an architectural disaster. This article details why we insist on keeping the …

CtxFST CH8 - The Natural Product of a Stable Schema: Implementing an Entity Graph Builder That Automatically Grows Edges

When CtxFST's format specification stabilizes, the next step isn't altering the core, but writing converters. This article reveals how a pure Separation of Concerns design enables plugging in …

CtxFST CH7 - Skill Graph Advanced: YAML Schema is Just the Skeleton, Where Does Entity Similarity Come From?

In CtxFST's Skill Chunk specification, there is no 'similarity' field among the Entity attributes. Why? This article helps you understand the core concept of Entity Knowledge Graphs: The …

CtxFST CH6 - Practical Guide: From .ctxfst.md to chunks.json, Deciphering the Role and Output Protocol of export_to_lancedb.py

Why can't we just let the system read Markdown directly? The most critical middleware in GraphRAG preprocessing—understanding how export_to_lancedb.py stably converts human-readable documents into …

CtxFST CH5 - Breaking GraphRAG Myths: The 'Graph' Isn't the Key, the Self-Emergent Entity Graph via Embeddings Is

Many people think GraphRAG is just adding a navigation graph to vector search. Wrong! The true power of tools like lance-graph and helixdb lies in elevating retrieval from Chunk Space to Entity Space, …

CtxFST CH4 - Practical Guide: How to Build a GraphRAG Knowledge Base with the Skill Chunk MD Format?

Are your notes always a mess? This article details how to standardize the definition of Entities and Chunks in YAML through CtxFST's Skill Chunk MD specification, giving your articles both precise …