feat(frontend): 重设计Common Agent Studio原型
This commit is contained in:
228
docs/STUDIO_PROTOTYPE_SCHEMA.sql
Normal file
228
docs/STUDIO_PROTOTYPE_SCHEMA.sql
Normal file
@@ -0,0 +1,228 @@
|
||||
-- Common Agent Studio prototype schema draft.
|
||||
-- These tables extend the current RAG, model-provider and agent_definition data model
|
||||
-- without replacing existing core entities.
|
||||
|
||||
CREATE TABLE IF NOT EXISTS studio_project (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
project_code VARCHAR(100) NOT NULL,
|
||||
project_name VARCHAR(200) NOT NULL,
|
||||
environment VARCHAR(50) NOT NULL DEFAULT 'DEV',
|
||||
publish_status VARCHAR(50) NOT NULL DEFAULT 'DRAFT',
|
||||
current_version VARCHAR(50),
|
||||
version INTEGER NOT NULL DEFAULT 1,
|
||||
create_time TIMESTAMP,
|
||||
update_time TIMESTAMP,
|
||||
remark VARCHAR(500) DEFAULT '',
|
||||
create_by VARCHAR(64),
|
||||
update_by VARCHAR(64),
|
||||
CONSTRAINT uk_studio_project_code UNIQUE (project_code)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS workflow_definition (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
project_id BIGINT,
|
||||
workflow_code VARCHAR(100) NOT NULL,
|
||||
workflow_name VARCHAR(200) NOT NULL,
|
||||
description VARCHAR(1000),
|
||||
bound_agent_id BIGINT,
|
||||
status VARCHAR(50) NOT NULL DEFAULT 'DRAFT',
|
||||
version INTEGER NOT NULL DEFAULT 1,
|
||||
create_time TIMESTAMP,
|
||||
update_time TIMESTAMP,
|
||||
remark VARCHAR(500) DEFAULT '',
|
||||
create_by VARCHAR(64),
|
||||
update_by VARCHAR(64),
|
||||
CONSTRAINT uk_workflow_definition_code UNIQUE (workflow_code),
|
||||
CONSTRAINT fk_workflow_definition_project_id FOREIGN KEY (project_id) REFERENCES studio_project (id),
|
||||
CONSTRAINT fk_workflow_definition_agent_id FOREIGN KEY (bound_agent_id) REFERENCES agent_definition (id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS workflow_version (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
workflow_id BIGINT NOT NULL,
|
||||
version_no INTEGER NOT NULL,
|
||||
snapshot_name VARCHAR(100) NOT NULL,
|
||||
graph_json JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||||
publish_status VARCHAR(50) NOT NULL DEFAULT 'DRAFT',
|
||||
published_time TIMESTAMP,
|
||||
version INTEGER NOT NULL DEFAULT 1,
|
||||
create_time TIMESTAMP,
|
||||
update_time TIMESTAMP,
|
||||
remark VARCHAR(500) DEFAULT '',
|
||||
create_by VARCHAR(64),
|
||||
update_by VARCHAR(64),
|
||||
CONSTRAINT uk_workflow_version_no UNIQUE (workflow_id, version_no),
|
||||
CONSTRAINT fk_workflow_version_workflow_id FOREIGN KEY (workflow_id) REFERENCES workflow_definition (id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS workflow_run (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
request_id VARCHAR(64) NOT NULL,
|
||||
workflow_id BIGINT,
|
||||
workflow_version_id BIGINT,
|
||||
agent_id BIGINT,
|
||||
run_source VARCHAR(50) NOT NULL,
|
||||
status VARCHAR(50) NOT NULL,
|
||||
input_json JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||||
output_json JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||||
duration_ms INTEGER,
|
||||
estimated_cost NUMERIC(14, 8),
|
||||
version INTEGER NOT NULL DEFAULT 1,
|
||||
create_time TIMESTAMP,
|
||||
update_time TIMESTAMP,
|
||||
remark VARCHAR(500) DEFAULT '',
|
||||
create_by VARCHAR(64),
|
||||
update_by VARCHAR(64),
|
||||
CONSTRAINT uk_workflow_run_request_id UNIQUE (request_id),
|
||||
CONSTRAINT fk_workflow_run_workflow_id FOREIGN KEY (workflow_id) REFERENCES workflow_definition (id),
|
||||
CONSTRAINT fk_workflow_run_version_id FOREIGN KEY (workflow_version_id) REFERENCES workflow_version (id),
|
||||
CONSTRAINT fk_workflow_run_agent_id FOREIGN KEY (agent_id) REFERENCES agent_definition (id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS workflow_run_step (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
run_id BIGINT NOT NULL,
|
||||
node_id VARCHAR(100) NOT NULL,
|
||||
node_type VARCHAR(50) NOT NULL,
|
||||
node_name VARCHAR(200),
|
||||
status VARCHAR(50) NOT NULL,
|
||||
input_json JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||||
output_json JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||||
duration_ms INTEGER,
|
||||
error_message VARCHAR(1000),
|
||||
version INTEGER NOT NULL DEFAULT 1,
|
||||
create_time TIMESTAMP,
|
||||
update_time TIMESTAMP,
|
||||
remark VARCHAR(500) DEFAULT '',
|
||||
create_by VARCHAR(64),
|
||||
update_by VARCHAR(64),
|
||||
CONSTRAINT fk_workflow_run_step_run_id FOREIGN KEY (run_id) REFERENCES workflow_run (id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS mcp_server (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
server_code VARCHAR(100) NOT NULL,
|
||||
server_name VARCHAR(200) NOT NULL,
|
||||
import_type VARCHAR(50) NOT NULL,
|
||||
endpoint_url VARCHAR(500),
|
||||
package_name VARCHAR(200),
|
||||
manifest_json JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||||
auth_type VARCHAR(50),
|
||||
secret_ref VARCHAR(200),
|
||||
health_status VARCHAR(50) NOT NULL DEFAULT 'UNKNOWN',
|
||||
enabled BOOLEAN NOT NULL DEFAULT TRUE,
|
||||
version INTEGER NOT NULL DEFAULT 1,
|
||||
create_time TIMESTAMP,
|
||||
update_time TIMESTAMP,
|
||||
remark VARCHAR(500) DEFAULT '',
|
||||
create_by VARCHAR(64),
|
||||
update_by VARCHAR(64),
|
||||
CONSTRAINT uk_mcp_server_code UNIQUE (server_code)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS mcp_capability (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
server_id BIGINT NOT NULL,
|
||||
capability_code VARCHAR(150) NOT NULL,
|
||||
capability_name VARCHAR(200) NOT NULL,
|
||||
capability_type VARCHAR(50) NOT NULL,
|
||||
schema_json JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||||
enabled BOOLEAN NOT NULL DEFAULT TRUE,
|
||||
version INTEGER NOT NULL DEFAULT 1,
|
||||
create_time TIMESTAMP,
|
||||
update_time TIMESTAMP,
|
||||
remark VARCHAR(500) DEFAULT '',
|
||||
create_by VARCHAR(64),
|
||||
update_by VARCHAR(64),
|
||||
CONSTRAINT uk_mcp_capability_code UNIQUE (server_id, capability_code),
|
||||
CONSTRAINT fk_mcp_capability_server_id FOREIGN KEY (server_id) REFERENCES mcp_server (id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS skill_definition (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
skill_code VARCHAR(100) NOT NULL,
|
||||
skill_name VARCHAR(200) NOT NULL,
|
||||
skill_type VARCHAR(50) NOT NULL,
|
||||
description VARCHAR(1000),
|
||||
status VARCHAR(50) NOT NULL DEFAULT 'DRAFT',
|
||||
version INTEGER NOT NULL DEFAULT 1,
|
||||
create_time TIMESTAMP,
|
||||
update_time TIMESTAMP,
|
||||
remark VARCHAR(500) DEFAULT '',
|
||||
create_by VARCHAR(64),
|
||||
update_by VARCHAR(64),
|
||||
CONSTRAINT uk_skill_definition_code UNIQUE (skill_code)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS skill_version (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
skill_id BIGINT NOT NULL,
|
||||
version_no INTEGER NOT NULL,
|
||||
prompt_text TEXT,
|
||||
code_text TEXT,
|
||||
config_json JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||||
variable_schema_json JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||||
test_result_json JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||||
publish_status VARCHAR(50) NOT NULL DEFAULT 'DRAFT',
|
||||
published_time TIMESTAMP,
|
||||
version INTEGER NOT NULL DEFAULT 1,
|
||||
create_time TIMESTAMP,
|
||||
update_time TIMESTAMP,
|
||||
remark VARCHAR(500) DEFAULT '',
|
||||
create_by VARCHAR(64),
|
||||
update_by VARCHAR(64),
|
||||
CONSTRAINT uk_skill_version_no UNIQUE (skill_id, version_no),
|
||||
CONSTRAINT fk_skill_version_skill_id FOREIGN KEY (skill_id) REFERENCES skill_definition (id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS agent_session (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
session_code VARCHAR(100) NOT NULL,
|
||||
agent_id BIGINT NOT NULL,
|
||||
workflow_run_id BIGINT,
|
||||
title VARCHAR(200),
|
||||
status VARCHAR(50) NOT NULL DEFAULT 'ACTIVE',
|
||||
metadata_json JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||||
version INTEGER NOT NULL DEFAULT 1,
|
||||
create_time TIMESTAMP,
|
||||
update_time TIMESTAMP,
|
||||
remark VARCHAR(500) DEFAULT '',
|
||||
create_by VARCHAR(64),
|
||||
update_by VARCHAR(64),
|
||||
CONSTRAINT uk_agent_session_code UNIQUE (session_code),
|
||||
CONSTRAINT fk_agent_session_agent_id FOREIGN KEY (agent_id) REFERENCES agent_definition (id),
|
||||
CONSTRAINT fk_agent_session_run_id FOREIGN KEY (workflow_run_id) REFERENCES workflow_run (id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS agent_message (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
session_id BIGINT NOT NULL,
|
||||
role VARCHAR(50) NOT NULL,
|
||||
content TEXT NOT NULL,
|
||||
citation_json JSONB NOT NULL DEFAULT '[]'::jsonb,
|
||||
token_count INTEGER,
|
||||
version INTEGER NOT NULL DEFAULT 1,
|
||||
create_time TIMESTAMP,
|
||||
update_time TIMESTAMP,
|
||||
remark VARCHAR(500) DEFAULT '',
|
||||
create_by VARCHAR(64),
|
||||
update_by VARCHAR(64),
|
||||
CONSTRAINT fk_agent_message_session_id FOREIGN KEY (session_id) REFERENCES agent_session (id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS agent_capability_binding (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
owner_type VARCHAR(50) NOT NULL,
|
||||
owner_id BIGINT NOT NULL,
|
||||
capability_type VARCHAR(50) NOT NULL,
|
||||
capability_id BIGINT NOT NULL,
|
||||
enabled BOOLEAN NOT NULL DEFAULT TRUE,
|
||||
config_json JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||||
version INTEGER NOT NULL DEFAULT 1,
|
||||
create_time TIMESTAMP,
|
||||
update_time TIMESTAMP,
|
||||
remark VARCHAR(500) DEFAULT '',
|
||||
create_by VARCHAR(64),
|
||||
update_by VARCHAR(64),
|
||||
CONSTRAINT uk_agent_capability_binding UNIQUE (owner_type, owner_id, capability_type, capability_id)
|
||||
);
|
||||
Reference in New Issue
Block a user