feat(frontend): 重设计Common Agent Studio原型

This commit is contained in:
2026-05-31 23:57:37 +08:00
parent ab9b099e9b
commit 1d89bc89fe
17 changed files with 2142 additions and 213 deletions

View 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)
);