惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
云风的 BLOG
云风的 BLOG
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 司徒正美
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
宝玉的分享
宝玉的分享
量子位
V
Visual Studio Blog
罗磊的独立博客
Vercel News
Vercel News
B
Blog
J
Java Code Geeks
S
SegmentFault 最新的问题
Recent Announcements
Recent Announcements
有赞技术团队
有赞技术团队
P
Proofpoint News Feed
GbyAI
GbyAI
G
Google Developers Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
The AI era needs typed data, states, and relations. CMSes...
Peter · 2026-06-26 · via DEV Community

The content management systems of the 2000s and 2010s solved a real problem. They gave
content a shape: defined types, structured fields, lifecycle states. A blog post was
not just a row in a table. It was a thing with a title, a body, a status, a
publication date. It could be in Draft or Published or Archived. You could list all
published posts. You could prevent a draft from being served to readers.

This was good thinking. Typed data and explicit states make software more correct and
more predictable. The CMS world figured that out early.

But CMSes were built for one kind of operator: a human working through a browser. The
API was an afterthought. Relations between content items were baked into the UI or
bolted on as plugins. The whole system assumed a person was making the decisions.

That assumption is changing. I started thinking about this in February, and started
building.


The premise was simple: agents need the same things CMSes were built around, typed
data, explicit states, relations. But through a protocol, not a UI, and with enforcement, not just convention. An agent that talks to a typed content layer knows
what fields exist, knows what state transitions are valid, and gets a typed error when
it tries something illegal. The lifecycle is not in the prompt. It is in the layer.

I had been building this for a couple of months when Andrej Karpathy posted about his
LLM Wiki. His pattern: instead of running RAG over documents every time, have an agent
build and maintain a persistent wiki of structured, interlinked markdown files that
compounds over time. His framing was: "Obsidian is the IDE. The LLM is the programmer.
The wiki is the codebase."

It was a good confirmation that the need is real. Agents need persistent, structured,
queryable knowledge. Not a raw database. Not a chat history. Something shaped.

But it also showed clearly where markdown stops. There is no enforcement in a markdown
file. There is no state machine. There is no way to say "this decision is Active and
blocks these goals" and have that mean something to the agent beyond text it was told.
Relations are backlinks, great for a human reading a graph view, but not a typed edge
a system can query and act on. And it is local, one developer, one machine.


What if you took those same ideas and built them with enforcement instead of convention?

Typed content means the agent knows what fields exist and what they accept. Explicit
state machines mean invalid transitions are rejected at the protocol level: an agent
cannot publish a draft that has not been through review, because the framework refuses
the transition, not because the prompt told it not to. Typed relations between items
form a persistent edge graph the agent can query: what depends on this item, what
decisions are related to this goal, what jobs produced this output.

The access layer is MCP. The agent calls tools, not endpoints. The tools carry the
shape and the constraints.


This is where the use cases go beyond content management.

Relations and edges can model "this article cites this source," but also "this decision
blocks this goal" or "this agent job produced this output." The same primitives that
power a content graph can power orchestration, memory, context management. An agent
that starts a session can query the graph for active goals, related constraints, and
decisions that are still live. It works within a structure that was built for it to
reason over, not a structure it has to interpret from prose.

CMSes touched this space and stopped at the browser. Karpathy's wiki takes it further
but stays in flat files. The next step is typed edges with enforced lifecycle, queryable
by agents through a protocol designed for them.


That is what I am building with Smeldr: an open source Go framework where content
types have explicit lifecycle states, relations between items are typed edges in a
persistent graph, and agents interact through MCP tools that enforce the rules rather
than expose raw data.

It started as a content backend. The further I get into it, the more it looks like
something more general: a typed, stateful graph that agents can safely operate a whole
system through.

The CMS people were onto something. Karpathy is onto something. I think the next piece
is putting enforcement and typed relations underneath it.


Smeldr is open source, written in Go, no build pipeline required.