Columns
| Column | Type | Size | Nulls | Auto | Default | Children | Parents | Comments | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ai_attempt_id | uuid | 2147483647 | null |
|
|
||||||||||||
| ai_run_id | uuid | 2147483647 | null |
|
|
||||||||||||
| company_id | uuid | 2147483647 | null |
|
|
||||||||||||
| request_id | uuid | 2147483647 | null |
|
|
||||||||||||
| sequence_no | int4 | 10 | null |
|
|
||||||||||||
| phase | varchar | 20 | null |
|
|
||||||||||||
| context_round | int4 | 10 | 0 |
|
|
||||||||||||
| status | varchar | 20 | null |
|
|
||||||||||||
| analysis_input_json | text | 2147483647 | null |
|
|
||||||||||||
| agent_version | varchar | 100 | √ | null |
|
|
|||||||||||
| model_provider | varchar | 80 | √ | null |
|
|
|||||||||||
| model_name | varchar | 120 | √ | null |
|
|
|||||||||||
| model_version | varchar | 120 | √ | null |
|
|
|||||||||||
| prompt_version | varchar | 100 | √ | null |
|
|
|||||||||||
| context_pack_version | varchar | 100 | √ | null |
|
|
|||||||||||
| workflow_catalog_version | varchar | 100 | √ | null |
|
|
|||||||||||
| contract_version | varchar | 100 | √ | null |
|
|
|||||||||||
| knowledge_version | varchar | 100 | √ | null |
|
|
|||||||||||
| provider_attempt_count | int4 | 10 | √ | null |
|
|
|||||||||||
| error_code | varchar | 80 | √ | null |
|
|
|||||||||||
| latency_ms | int8 | 19 | √ | null |
|
|
|||||||||||
| started_at | timestamptz | 35,6 | null |
|
|
||||||||||||
| completed_at | timestamptz | 35,6 | √ | null |
|
|
Indexes
| Constraint Name | Type | Sort | Column(s) |
|---|---|---|---|
| pk_ai_attempt | Primary key | Asc | ai_attempt_id |
| idx_ai_attempt_run | Performance | Asc/Asc/Asc | company_id + ai_run_id + sequence_no |
| uq_ai_attempt_id_company | Must be unique | Asc/Asc | ai_attempt_id + company_id |
| uq_ai_attempt_run_sequence | Must be unique | Asc/Asc | ai_run_id + sequence_no |
Check Constraints
| Constraint Name | Constraint |
|---|---|
| ck_ai_attempt_context_round | ((context_round >= 0)) |
| ck_ai_attempt_input_not_blank | ((char_length(TRIM(BOTH FROM analysis_input_json)) > 0)) |
| ck_ai_attempt_phase | (((phase)::text = ANY ((ARRAY['PLAN'::character varying, 'ANALYZE'::character varying])::text[]))) |
| ck_ai_attempt_provider_count | (((provider_attempt_count IS NULL) OR (provider_attempt_count >= 0))) |
| ck_ai_attempt_sequence | ((sequence_no > 0)) |
| ck_ai_attempt_completion | (((((status)::text = 'RUNNING'::text) AND (completed_at IS NULL)) OR (((status)::text = ANY ((ARRAY['SUCCEEDED'::character varying, 'FAILED'::character varying])::text[])) AND (completed_at IS NOT NULL)))) |
| ck_ai_attempt_status | (((status)::text = ANY ((ARRAY['RUNNING'::character varying, 'SUCCEEDED'::character varying, 'FAILED'::character varying])::text[]))) |
| ck_ai_attempt_latency | (((latency_ms IS NULL) OR (latency_ms >= 0))) |

