Vlk²
Integrates with the Hermes AI agent framework to provide temporal state machine capabilities, including error loop detection, preventive constraints, and memory consolidation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Vlk²Track this error: Rust error[E0277] in main.rs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Vlk² — Temporal State Machine for AI Agents
Vlk² gives AI agents a sense of time: what's happening now (PRESENT), what's already been tried (PAST), and what should guide future decisions (FUTURE). It runs as a single binary over MCP, backed by SQLite, and manages these temporal transitions autonomously.
The killer demo: when an agent repeats the same Rust/TS/Python/Go error 3 times, Vlk² auto-archives the loop and injects a preventive constraint so the agent stops retrying the same broken approach. But the architecture is general — the temporal state machine can track any kind of past→present→future transition across any agent framework.
What It Does
Temporal state machine — each memory has a state: PRESENT (active context), PAST (archived, hidden from context), FUTURE (preventive constraints), PURGED (forgotten). A background agent transitions entries between states without agent intervention.
Cross-language loop detection — fingerprints errors by language, not by string match. Recognizes Rust (
error[E0277]), TypeScript/JS (TS2345,TypeError), Python (ValueError,KeyError), Go (panic: nil pointer), HTTP (503 Service Unavailable), test frameworks (expected: X, got: Y), with a timestamp-stripping fallback. When the same fingerprint appears ≥3 times, Vlk² auto-archives the loop to PAST and injects a FUTURE constraint.Reconsolidation on retrieval — every recall checks current beliefs; if contradictory, the memory rewrites itself.
Token budget enforcement — every 30s, estimates total tokens in PRESENT + FUTURE. If over budget (8K default), archives lowest-importance entries until under budget.
Autonomous consolidation — background task (30s cycle) evaluates importance, archives stale entries, and forgets disconnected ones.
Related MCP server: M3Mgine
Why Not Just a Memory System?
General memory systems (agentmemory, Hindsight, Mem0, Supermemory) store facts, preferences, and context. Vlk² does one thing they don't: detect that the same Rust compile error repeated 3 times across different files and inject a constraint so the agent stops retrying the same broken approach. It's not a replacement — it's a specialized fault-detection layer that runs alongside them.
Capability | Vlk² | agentmemory | Hindsight | Supermemory |
Fact/persona memory | — | ✅ 53 tools | ✅ hooks | ✅ keywords |
Cross-language error fingerprinting | ✅ 7 strategies | — | — | — |
Autonomous loop breaking | ✅ ≥3 repeats auto-archive | — | — | — |
Reconsolidation on retrieval | ✅ | — | — | — |
Token-bounded context | ✅ 8K default | — | — | — |
Quick Start
cd vlk-core
cargo build --release
DATABASE_URL="sqlite:vlk.db?mode=rwc" ./target/release/vlk-coreAny MCP client connects via stdin/stdout — JSON-RPC 2.0, one line per message.
MCP Tools
Tool | Purpose |
| Push a log/error as a PRESENT slot for loop detection |
| Clean context with reconsolidation + loop interception |
| Archive PRESENT → PAST and inject a FUTURE constraint |
| Full timeline audit |
| Keyword search across logs and constraints |
| State counts + token estimates |
| Remove incorrectly learned constraints |
| Retrieved distilled patterns |
| Show consolidation agent state with token bar |
| Protect a pattern from forgetting |
| Restore normal forgetting eligibility |
How Loop Detection Works
Each error is fingerprinted by type: Rust
error[E...], TSTS..., PythonTypeError:, Gopanic:, HTTP503, test assertion, or first-80-chars fallbackFingerprints group near-duplicates — same error code with different timestamps/line numbers count as one pattern
At ≥3 repeats → auto-archives the loop + injects
[SYSTEM ANCHOR]preventive constraintFuture context fetches include the constraint, so the agent stops repeating
Architecture
memory_contents (immutable, team-agnostic)
└── FK ──► agent_timeline (PRESENT / PAST / FUTURE / PURGED)
├── memory_metadata (temporal vectors, importance, connectivity)
└── semantic_facts (distilled patterns from errors)
└── fact_contradictions (resolution tracking)
Consolidation Agent (background tokio, 30s cycle)
SCAN → EVALUATE importance → BUDGET_CHECK → ARCHIVE low-value → FORGET staleVerification
What's tested: the core loop detection path is verified: 3 identical Rust errors → auto-archive to PAST + FUTURE constraint injection. All 13 MCP tools respond correctly.
Not yet tested: pin/unpin with non-existent timeline_ids, token budget enforcement under load, conflict resolution.
Loop detection smoke test — sends the same Rust error[E0277] 3 times and verifies auto-archive + constraint injection:
import subprocess, json, tempfile, os, sys
db = tempfile.mktemp(suffix='.db')
proc = subprocess.Popen(['./target/release/vlk-core'],
stdin=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.DEVNULL,
env={'DATABASE_URL': f'sqlite:{db}?mode=rwc'})
def rpc(msg):
proc.stdin.write((json.dumps(msg) + '\n').encode())
proc.stdin.flush()
return json.loads(proc.stdout.readline())
# Init
rpc({'jsonrpc':'2.0','id':1,'method':'initialize','params':{
'protocolVersion':'2024-11-05','capabilities':{},
'clientInfo':{'name':'test','version':'1.0'}}})
# Send the same Rust error 3 times to trigger loop detection
error = 'error[E0277]: cannot add `str` to `str`'
for i in range(3):
r = rpc({'jsonrpc':'2.0','id':i+2,'method':'tools/call','params':{
'name':'vlk_record_state',
'arguments':{'raw_log': error, 'file_context': f'lib.rs:{i*10}'}}})
assert 'PRESENT state recorded' in r['result']['content'][0]['text']
print(f' Record {i+1}: OK')
# fetch_context triggers loop detection → auto-archive → constraint injection
r = rpc({'jsonrpc':'2.0','id':5,'method':'tools/call','params':{
'name':'vlk_fetch_context','arguments':{}}})
txt = r['result']['content'][0]['text']
assert 'E0277' in txt, 'error missing after fetch'
assert any(kw in txt for kw in ['SYSTEM ANCHOR', 'PREVENTIVE', 'CONSTRAINT']), \
'no constraint injected'
print(f' Fetch: loop archived + constraint injected')
proc.terminate(); proc.wait()
for f in (db, db + '-wal', db + '-shm'):
try:
os.remove(f)
except FileNotFoundError:
pass
print('PASS: loop detection works')Integration
Add to Hermes, OpenCode, Claude Code, Codex, or any MCP host:
# ~/.hermes/config.yaml or equivalent
mcp_servers:
vlk2:
command: "vlk2"
env:
DATABASE_URL: "sqlite:~/.hermes/vlk/vlk.db?mode=rwc"
timeout: 30Compatible with any MCP client. Works alongside agentmemory, Hindsight, Supermemory, or Hermes built-in memory.
Requirements
Rust 2021 edition
SQLite (bundled via sqlx)
6.4MB binary
Current Status
Actively developed. The core loop detection and corrective memory cycle is implemented and E2E-tested. Vlk² is a specialized complement to general memory systems — not a replacement.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityFmaintenanceA zero-cost MCP server that forces AI to self-correct code using prompt injection and context isolation.Last updated410MIT
- Alicense-qualityBmaintenanceMCP server enabling AI agents to enforce corrected rules as durable pre-output checks, manage processed memory, and query a temporal knowledge graph.Last updatedApache 2.0
- Alicense-qualityDmaintenanceAn MCP server for detecting retry loops and analyzing iteration patterns in agentic coding workflows, providing structured debugging intelligence to improve repair attempts.Last updated5MIT
- AlicenseAqualityBmaintenanceMCP server providing structured continuity memory for AI coding agents, tracking decisions, open loops, and session state in local SQLite. Enables agents to resume work from verified state across sessions without replaying transcripts.Last updated16Apache 2.0
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Cloud-hosted MCP server for durable AI memory
User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/aranajhonny/vlk'
If you have feedback or need assistance with the MCP directory API, please join our Discord server