# Copyright 2026 zhaoxi826 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. from sqlmodel import SQLModel, Field from typing import List, Optional from sqlalchemy import Column, JSON from enum import Enum class AgentType(str, Enum): SKILL_INDIVIDUAL = "skill_individual" ORDINARY_INDIVIDUAL = "ordinary_individual" SPECIAL_INDIVIDUAL = "special_individual" class WorkerIndividual(SQLModel, table=True): __tablename__ = "worker_individual" agent_id: str = Field(primary_key=True) agent_name: str = Field(index=True) agent_type: AgentType description: str = Field(nullable=False) provider_title: str model_id: str system_prompt: Optional[str] output_template: Optional[dict] = Field(sa_column=Column(JSON),description="输出模板标识") bound_skill: Optional[str] = Field(sa_column=Column(JSON)) workspace: Optional[List[str]] = Field(sa_column=Column(JSON)) tools: Optional[List[str]] = Field(sa_column=Column(JSON), default=None) owner_id: str