I've been building a persistent memory layer for AI agents and connected devices — vaas-x, pip install vaas-x — and the claim I make about it that's easiest to be skeptical of is "zero configuration." No schema, no field mapping, no telling it what the data means. It just looks at a stream and figures out what's actually carrying information.
So instead of demoing it on my own data, I pointed it at something I had no hand in designing: NASA's CMAPSS turbofan degradation dataset, with every column identifier stripped out first.
The setup
CMAPSS FD001 is a public benchmark — 100 turbofan engines run to failure under one operating condition, logged as one row per engine-cycle. Each row has 3 operating-condition settings and 21 sensor readings. I know which three columns are the operating settings and which 21 are sensors. The classifier doesn't — I renamed everything to channel_00 through channel_23 before it ever saw the data.
import pandas as pd
columns = ["unit", "cycle", "op_setting_1", "op_setting_2", "op_setting_3"] + [f"sensor_{i}" for i in range(1, 22)]
df = pd.read_csv("CMAPSSData/train_FD001.txt", sep=r"\s+", header=None, names=columns)
measurement_cols = [c for c in columns if c not in ("unit", "cycle")]
df_blind = df[measurement_cols].rename(columns={c: f"channel_{i:02d}" for i, c in enumerate(measurement_cols)})
24 anonymous channels. No sensor names, no units, no hint that this is even turbofan.
Feed it in
from vaasx import Bootstrap
brain = Bootstrap(api_key="YOUR_API_KEY", device_id="cmapss_fd001")
records = df_blind.to_dict(orient="records")
for i in range(0, len(records), 1000):
batch = records[i:i+1000]
brain.ingest([{"payload": r} for r in batch])
Ask it what it found
from vaasx.bootstrap import StatisticalProfiler, SchemaClassifier
profiler = StatisticalProfiler(device_id="cmapss_fd001")
for row in records:
profiler.observe(row)
result = SchemaClassifier().classify(profiler.snapshot())
print("stable channels:", sorted(result["stable_channels"]))
print("significant channels:", sorted(result["significant_channels"]))
Compute the ground truth straight from the data with plain pandas, independent of anything the SDK told you, and compare the two sets directly. When I ran this, they matched — the classifier correctly separated the 3 near-constant operating columns from the 21 channels actually carrying signal, having never been told which was which.
I want to be precise about what this does and doesn't show: it's not "the system understood this is an engine." It's "the system correctly told apart columns that carry real information from columns that don't, on data it had never seen a schema for, and an independent variance check agrees." For a zero-config claim, that's the actual bar to clear.
Try it on your own data
The whole thing — data, code, verification step — is a public reproduction guide, same steps as above, runnable against your own free-tier API key (vaasx.com/pricing, no card required, 10,000 episodes free). If you've got a sensor stream, a log file, or anything structured you've been meaning to give some form of memory to, I'd genuinely like to know what you find when you point it at your own data instead of mine.
Top comments (0)