|
@@ -0,0 +1,119 @@
|
|
|
|
|
+"""init agent models
|
|
|
|
|
+
|
|
|
|
|
+Revision ID: 20260424_0001
|
|
|
|
|
+Revises:
|
|
|
|
|
+Create Date: 2026-04-24 10:20:00
|
|
|
|
|
+"""
|
|
|
|
|
+
|
|
|
|
|
+from collections.abc import Sequence
|
|
|
|
|
+
|
|
|
|
|
+from alembic import op
|
|
|
|
|
+import sqlalchemy as sa
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+revision: str = "20260424_0001"
|
|
|
|
|
+down_revision: str | None = None
|
|
|
|
|
+branch_labels: Sequence[str] | None = None
|
|
|
|
|
+depends_on: Sequence[str] | None = None
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def upgrade() -> None:
|
|
|
|
|
+ op.create_table(
|
|
|
|
|
+ "agent_definition",
|
|
|
|
|
+ sa.Column("code", sa.String(length=64), nullable=False),
|
|
|
|
|
+ sa.Column("name", sa.String(length=128), nullable=False),
|
|
|
|
|
+ sa.Column("description", sa.Text(), nullable=True),
|
|
|
|
|
+ sa.Column("agent_type", sa.String(length=32), nullable=False),
|
|
|
|
|
+ sa.Column("status", sa.String(length=32), nullable=False),
|
|
|
|
|
+ sa.Column("owner_user_id", sa.String(length=36), nullable=True),
|
|
|
|
|
+ sa.Column("metadata_json", sa.JSON(), nullable=True),
|
|
|
|
|
+ sa.Column("id", sa.String(length=36), nullable=False),
|
|
|
|
|
+ sa.Column("tenant_id", sa.String(length=36), nullable=False),
|
|
|
|
|
+ sa.Column("created_by", sa.String(length=36), nullable=True),
|
|
|
|
|
+ sa.Column("updated_by", sa.String(length=36), nullable=True),
|
|
|
|
|
+ sa.Column("created_time", sa.DateTime(), nullable=False),
|
|
|
|
|
+ sa.Column("updated_time", sa.DateTime(), nullable=False),
|
|
|
|
|
+ sa.Column("deleted_time", sa.DateTime(), nullable=True),
|
|
|
|
|
+ sa.Column("version", sa.Integer(), nullable=False),
|
|
|
|
|
+ sa.PrimaryKeyConstraint("id"),
|
|
|
|
|
+ )
|
|
|
|
|
+ op.create_index("ix_agent_definition_code", "agent_definition", ["code"], unique=False)
|
|
|
|
|
+ op.create_index("ix_agent_definition_status", "agent_definition", ["status"], unique=False)
|
|
|
|
|
+ op.create_index("ix_agent_definition_tenant_id", "agent_definition", ["tenant_id"], unique=False)
|
|
|
|
|
+
|
|
|
|
|
+ op.create_table(
|
|
|
|
|
+ "agent_version",
|
|
|
|
|
+ sa.Column("agent_id", sa.String(length=36), nullable=False),
|
|
|
|
|
+ sa.Column("version_no", sa.Integer(), nullable=False),
|
|
|
|
|
+ sa.Column("status", sa.String(length=32), nullable=False),
|
|
|
|
|
+ sa.Column("role", sa.String(length=64), nullable=False),
|
|
|
|
|
+ sa.Column("goal", sa.Text(), nullable=True),
|
|
|
|
|
+ sa.Column("system_prompt", sa.Text(), nullable=False),
|
|
|
|
|
+ sa.Column("model_config_json", sa.JSON(), nullable=False),
|
|
|
|
|
+ sa.Column("memory_policy_json", sa.JSON(), nullable=False),
|
|
|
|
|
+ sa.Column("tool_refs_json", sa.JSON(), nullable=False),
|
|
|
|
|
+ sa.Column("skill_refs_json", sa.JSON(), nullable=False),
|
|
|
|
|
+ sa.Column("published_time", sa.DateTime(), nullable=True),
|
|
|
|
|
+ sa.Column("id", sa.String(length=36), nullable=False),
|
|
|
|
|
+ sa.Column("tenant_id", sa.String(length=36), nullable=False),
|
|
|
|
|
+ sa.Column("created_by", sa.String(length=36), nullable=True),
|
|
|
|
|
+ sa.Column("updated_by", sa.String(length=36), nullable=True),
|
|
|
|
|
+ sa.Column("created_time", sa.DateTime(), nullable=False),
|
|
|
|
|
+ sa.Column("updated_time", sa.DateTime(), nullable=False),
|
|
|
|
|
+ sa.Column("deleted_time", sa.DateTime(), nullable=True),
|
|
|
|
|
+ sa.Column("version", sa.Integer(), nullable=False),
|
|
|
|
|
+ sa.PrimaryKeyConstraint("id"),
|
|
|
|
|
+ )
|
|
|
|
|
+ op.create_index("ix_agent_version_agent_id", "agent_version", ["agent_id"], unique=False)
|
|
|
|
|
+ op.create_index("ix_agent_version_status", "agent_version", ["status"], unique=False)
|
|
|
|
|
+ op.create_index("ix_agent_version_tenant_id", "agent_version", ["tenant_id"], unique=False)
|
|
|
|
|
+
|
|
|
|
|
+ op.create_table(
|
|
|
|
|
+ "agent_run",
|
|
|
|
|
+ sa.Column("agent_id", sa.String(length=36), nullable=False),
|
|
|
|
|
+ sa.Column("agent_version_id", sa.String(length=36), nullable=False),
|
|
|
|
|
+ sa.Column("session_id", sa.String(length=36), nullable=True),
|
|
|
|
|
+ sa.Column("status", sa.String(length=32), nullable=False),
|
|
|
|
|
+ sa.Column("worker_key", sa.String(length=128), nullable=True),
|
|
|
|
|
+ sa.Column("input_text", sa.Text(), nullable=True),
|
|
|
|
|
+ sa.Column("input_json", sa.JSON(), nullable=True),
|
|
|
|
|
+ sa.Column("output_text", sa.Text(), nullable=True),
|
|
|
|
|
+ sa.Column("output_json", sa.JSON(), nullable=True),
|
|
|
|
|
+ sa.Column("started_time", sa.DateTime(), nullable=True),
|
|
|
|
|
+ sa.Column("finished_time", sa.DateTime(), nullable=True),
|
|
|
|
|
+ sa.Column("error_code", sa.String(length=64), nullable=True),
|
|
|
|
|
+ sa.Column("error_message", sa.Text(), nullable=True),
|
|
|
|
|
+ sa.Column("id", sa.String(length=36), nullable=False),
|
|
|
|
|
+ sa.Column("tenant_id", sa.String(length=36), nullable=False),
|
|
|
|
|
+ sa.Column("created_by", sa.String(length=36), nullable=True),
|
|
|
|
|
+ sa.Column("updated_by", sa.String(length=36), nullable=True),
|
|
|
|
|
+ sa.Column("created_time", sa.DateTime(), nullable=False),
|
|
|
|
|
+ sa.Column("updated_time", sa.DateTime(), nullable=False),
|
|
|
|
|
+ sa.Column("deleted_time", sa.DateTime(), nullable=True),
|
|
|
|
|
+ sa.Column("version", sa.Integer(), nullable=False),
|
|
|
|
|
+ sa.PrimaryKeyConstraint("id"),
|
|
|
|
|
+ )
|
|
|
|
|
+ op.create_index("ix_agent_run_agent_id", "agent_run", ["agent_id"], unique=False)
|
|
|
|
|
+ op.create_index("ix_agent_run_agent_version_id", "agent_run", ["agent_version_id"], unique=False)
|
|
|
|
|
+ op.create_index("ix_agent_run_session_id", "agent_run", ["session_id"], unique=False)
|
|
|
|
|
+ op.create_index("ix_agent_run_status", "agent_run", ["status"], unique=False)
|
|
|
|
|
+ op.create_index("ix_agent_run_tenant_id", "agent_run", ["tenant_id"], unique=False)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def downgrade() -> None:
|
|
|
|
|
+ op.drop_index("ix_agent_run_tenant_id", table_name="agent_run")
|
|
|
|
|
+ op.drop_index("ix_agent_run_status", table_name="agent_run")
|
|
|
|
|
+ op.drop_index("ix_agent_run_session_id", table_name="agent_run")
|
|
|
|
|
+ op.drop_index("ix_agent_run_agent_version_id", table_name="agent_run")
|
|
|
|
|
+ op.drop_index("ix_agent_run_agent_id", table_name="agent_run")
|
|
|
|
|
+ op.drop_table("agent_run")
|
|
|
|
|
+
|
|
|
|
|
+ op.drop_index("ix_agent_version_tenant_id", table_name="agent_version")
|
|
|
|
|
+ op.drop_index("ix_agent_version_status", table_name="agent_version")
|
|
|
|
|
+ op.drop_index("ix_agent_version_agent_id", table_name="agent_version")
|
|
|
|
|
+ op.drop_table("agent_version")
|
|
|
|
|
+
|
|
|
|
|
+ op.drop_index("ix_agent_definition_tenant_id", table_name="agent_definition")
|
|
|
|
|
+ op.drop_index("ix_agent_definition_status", table_name="agent_definition")
|
|
|
|
|
+ op.drop_index("ix_agent_definition_code", table_name="agent_definition")
|
|
|
|
|
+ op.drop_table("agent_definition")
|