amkyawdev's picture
Initial commit - AmkyawDev Coder Backend
dac1631 verified
Raw
History Blame Contribute Delete
2.2 kB
"""
Agent Models - Pydantic Models for Agents
"""
from pydantic import BaseModel, Field
from typing import Optional, List, Dict, Any
from enum import Enum
class AgentType(str, Enum):
SKILL = "skill"
LONG_CHAIN = "long_chain"
SCRIPT = "script"
class TaskStatus(str, Enum):
PENDING = "pending"
RUNNING = "running"
COMPLETED = "completed"
FAILED = "failed"
class SkillRequest(BaseModel):
"""Request model for Skill Agent"""
prompt: str = Field(..., description="The task prompt")
skill_type: str = Field(..., description="Type of skill to execute")
context: Optional[Dict[str, Any]] = Field(default=None, description="Additional context")
tools: Optional[List[str]] = Field(default=None, description="Available tools")
class SkillResponse(BaseModel):
"""Response model for Skill Agent"""
status: TaskStatus
result: Optional[Dict[str, Any]] = None
error: Optional[str] = None
execution_time: float = 0.0
class ChainRequest(BaseModel):
"""Request model for Long Chain Agent"""
workflow: str = Field(..., description="Workflow name or definition")
input_data: Dict[str, Any] = Field(..., description="Input data for workflow")
steps: Optional[List[str]] = Field(default=None, description="Specific steps to execute")
class ChainResponse(BaseModel):
"""Response model for Long Chain Agent"""
status: TaskStatus
workflow: str
steps_completed: List[Dict[str, Any]] = []
final_result: Optional[Dict[str, Any]] = None
error: Optional[str] = None
total_time: float = 0.0
class ScriptRequest(BaseModel):
"""Request model for Script Agent"""
language: str = Field(default="python", description="Programming language")
prompt: str = Field(..., description="Code generation prompt")
template: Optional[str] = Field(default=None, description="Code template to use")
optimize: bool = Field(default=False, description="Whether to optimize the code")
class ScriptResponse(BaseModel):
"""Response model for Script Agent"""
status: TaskStatus
code: Optional[str] = None
language: str
explanation: Optional[str] = None
error: Optional[str] = None