Built on ClickHouse® v26.10 · Native C++ storage engines
The real-time state & analytics engine for autonomous AI agents.
Skip the PostgreSQL-to-ClickHouse CDC pipeline. UpsertMergeTree returns the latest
row for each key without FINAL, and MemCache keeps hot state in RAM —
in one ClickHouse®-compatible server, soon as a turnkey AWS Marketplace AMI.
Build 26.10.1.1
Linux amd64
AWS Marketplace coming soon
CREATE TABLE agent_session_state
(
tenant_id UInt64,
trace_id UInt64,
version UInt64,
status String,
tokens_used UInt32
)
ENGINE = UpsertMergeTree(version)
PARTITION BY tenant_id
ORDER BY (tenant_id, trace_id)
UNIQUE KEY (tenant_id, trace_id);
INSERT INTO agent_session_state VALUES (1, 42, 1, 'RUNNING', 120);
INSERT INTO agent_session_state VALUES (1, 42, 2, 'COMPLETED', 480);
-- Latest row per key, no FINAL keyword
SELECT status, tokens_used FROM agent_session_state
WHERE tenant_id = 1 AND trace_id = 42;
-- 'COMPLETED', 480
CREATE TABLE agent_live_state
(
tenant_id UInt64,
agent_id UInt64,
version UInt64,
status String
)
ENGINE = MemCache(version)
KEYS (tenant_id, agent_id)
INDEX (tenant_id)
SETTINGS max_memory_bytes = 1073741824, persist_mode = 'sync';
INSERT INTO agent_live_state VALUES (1, 7, 1, 'PLANNING');
INSERT INTO agent_live_state VALUES (1, 7, 2, 'RUNNING');
INSERT INTO agent_live_state VALUES (1, 9, 1, 'IDLE');
-- Exact lookup on the full key, served from RAM
SELECT status FROM agent_live_state
WHERE tenant_id = 1 AND agent_id = 7;
-- 'RUNNING'
-- Every agent of one tenant, through INDEX (tenant_id)
SELECT agent_id, status FROM agent_live_state
WHERE tenant_id = 1 ORDER BY agent_id;
-- (7, 'RUNNING'), (9, 'IDLE')
Syntax as documented for build 26.10.1.1 · see
SQL docs