Spaces:
Running on Zero
Running on Zero
| -- 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); | |