Spaces:
Running on Zero
Running on Zero
File size: 4,058 Bytes
599eb60 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | -- Enable pgvector extension
CREATE EXTENSION IF NOT EXISTS vector;
-- βββββββββββββββββββββββββββββββββββββββββββββ
-- One row per episode
-- βββββββββββββββββββββββββββββββββββββββββββββ
CREATE TABLE IF NOT EXISTS episodes (
episode_id UUID PRIMARY KEY,
task_id TEXT NOT NULL,
agent_version TEXT NOT NULL,
started_at TIMESTAMPTZ NOT NULL,
ended_at TIMESTAMPTZ,
outcome TEXT, -- success / failure / partial
final_reward FLOAT,
resolution_summary TEXT
);
-- βββββββββββββββββββββββββββββββββββββββββββββ
-- One row per action / decision
-- βββββββββββββββββββββββββββββββββββββββββββββ
CREATE TABLE IF NOT EXISTS decisions (
decision_id UUID PRIMARY KEY,
episode_id UUID REFERENCES episodes(episode_id),
step_index INT NOT NULL,
state_signature TEXT NOT NULL, -- serialized observation at this step
state_embedding VECTOR(384), -- all-MiniLM-L6-v2
action_type TEXT NOT NULL,
action_payload JSONB NOT NULL,
result_stdout TEXT,
result_stderr TEXT,
exit_code INT,
credit_label TEXT, -- success / failure / neutral β backfilled post-episode
quarantine_flag BOOLEAN DEFAULT FALSE,
no_match_flag BOOLEAN DEFAULT FALSE,
quarantine_reason TEXT, -- verbatim reason from frozen gate
created_at TIMESTAMPTZ DEFAULT now()
);
-- βββββββββββββββββββββββββββββββββββββββββββββ
-- Causal edges between decisions
-- βββββββββββββββββββββββββββββββββββββββββββββ
CREATE TABLE IF NOT EXISTS causal_edges (
edge_id UUID PRIMARY KEY,
from_decision UUID REFERENCES decisions(decision_id),
to_decision UUID REFERENCES decisions(decision_id),
relation_type TEXT, -- caused / preceded / remediated_by
confidence FLOAT DEFAULT 1.0,
last_reinforced TIMESTAMPTZ DEFAULT now()
);
-- βββββββββββββββββββββββββββββββββββββββββββββ
-- Consolidated, queryable memory (retrieval-before-decision reads ONLY this)
-- βββββββββββββββββββββββββββββββββββββββββββββ
CREATE TABLE IF NOT EXISTS lessons (
lesson_id UUID PRIMARY KEY,
state_cluster_embedding VECTOR(384),
best_action JSONB,
outcome_summary TEXT,
sample_count INT,
success_rate FLOAT,
last_updated TIMESTAMPTZ
);
-- βββββββββββββββββββββββββββββββββββββββββββββ
-- Indexes
-- βββββββββββββββββββββββββββββββββββββββββββββ
CREATE INDEX IF NOT EXISTS decisions_embedding_idx
ON decisions USING ivfflat (state_embedding vector_cosine_ops)
WITH (lists = 100);
CREATE INDEX IF NOT EXISTS decisions_episode_step_idx
ON decisions (episode_id, step_index);
CREATE INDEX IF NOT EXISTS causal_edges_from_idx
ON causal_edges (from_decision);
CREATE INDEX IF NOT EXISTS lessons_embedding_idx
ON lessons USING ivfflat (state_cluster_embedding vector_cosine_ops)
WITH (lists = 100);
|