Agentic_SRE / init.sql
LordofMonarchs's picture
Version-1
599eb60
Raw
History Blame Contribute Delete
4.06 kB
-- 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);