feat(domain): añade modelo AgentDefinition + LLMConfig + AgentVersionMeta
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
"""Modelos de dominio del agente: definición, configuración LLM y metadata de versión."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Any, Literal
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class LLMConfig(BaseModel):
|
||||
"""Configuración del proveedor LLM utilizado por un agente."""
|
||||
|
||||
provider: Literal["mock", "azure", "openai"] = "mock"
|
||||
model: str = "gpt-4o"
|
||||
temperature: float = Field(default=0.2, ge=0.0, le=2.0)
|
||||
max_tokens: int = Field(default=2000, ge=1, le=128_000)
|
||||
|
||||
|
||||
class AgentVersionMeta(BaseModel):
|
||||
"""Metadatos de una versión concreta de un agente (estilo commit Git)."""
|
||||
|
||||
id: str
|
||||
hash: str
|
||||
author: str
|
||||
message: str
|
||||
created_at: datetime
|
||||
|
||||
|
||||
class AgentDefinition(BaseModel):
|
||||
"""Definición declarativa completa de un agente."""
|
||||
|
||||
name: str
|
||||
version: str
|
||||
owner: str
|
||||
purpose: str
|
||||
state: Literal["draft", "active", "deprecated"]
|
||||
guardrails: list[str]
|
||||
llm: LLMConfig
|
||||
system_prompt: str
|
||||
output_schema: dict[str, Any]
|
||||
risk_threshold_for_hitl: int = Field(default=4, ge=1, le=5)
|
||||
updated_at: datetime
|
||||
Reference in New Issue
Block a user