feat: sistema de personalidades enriquecido + agente template
Fase 1: Sistema de personalidades enriquecido - Ampliar PersonalityCfg con role, backstory, expertise, limitations - Añadir CommunicationCfg (formality, humor, personality, response_style, quirks, catchphrases) - Crear tipos puros en pkg/personality/traits.go - Implementar BuildPersonalityPrompt() para generar bloque de system prompt - Integrar personalidad en agents/runtime.go (FromConfig + concatenacion al system prompt) Fase 2: Agente plantilla - Añadir campo Template bool a AgentMeta - Filtrar agentes template en launcher (skip si template: true) - Crear agents/_template/ con config.yaml completo y documentado - Incluir TODAS las secciones (skills, shared_knowledge, schedules, security) - agent.go minimo + prompts/system.md plantilla - Actualizar dev-scripts/agent/new-agent.sh para copiar desde _template/ Fase 3: Ejemplos de personalidades - Crear agents/_template/PERSONALITIES.md con 4 perfiles: * DevOps pragmatico * Analista meticuloso * Asistente amigable * Guardian de seguridad 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
package personality
|
||||
|
||||
import "github.com/enmanuel/agents/internal/config"
|
||||
|
||||
// FromConfig convierte PersonalityCfg (config) a Personality (tipo puro).
|
||||
// Esta funcion es pura: no tiene side effects.
|
||||
func FromConfig(cfg config.PersonalityCfg) Personality {
|
||||
return Personality{
|
||||
Tone: Tone(cfg.Tone),
|
||||
Verbosity: Verbosity(cfg.Verbosity),
|
||||
Language: cfg.Language,
|
||||
LanguagesSupported: cfg.LanguagesSupported,
|
||||
EmojiStyle: EmojiStyle(cfg.EmojiStyle),
|
||||
Prefix: cfg.Prefix,
|
||||
ErrorStyle: ErrorStyle(cfg.ErrorStyle),
|
||||
Templates: Templates{
|
||||
Greeting: cfg.Templates.Greeting,
|
||||
UnknownCommand: cfg.Templates.UnknownCommand,
|
||||
PermissionDenied: cfg.Templates.PermissionDenied,
|
||||
Error: cfg.Templates.Error,
|
||||
Success: cfg.Templates.Success,
|
||||
Busy: cfg.Templates.Busy,
|
||||
},
|
||||
Behavior: Behavior{
|
||||
Proactive: cfg.Behavior.Proactive,
|
||||
AskConfirmation: cfg.Behavior.AskConfirmation,
|
||||
ShowReasoning: cfg.Behavior.ShowReasoning,
|
||||
ThreadReplies: cfg.Behavior.ThreadReplies,
|
||||
TypingIndicator: cfg.Behavior.TypingIndicator,
|
||||
AcknowledgeReceipt: cfg.Behavior.AcknowledgeReceipt,
|
||||
},
|
||||
Role: cfg.Role,
|
||||
Backstory: cfg.Backstory,
|
||||
Expertise: cfg.Expertise,
|
||||
Limitations: cfg.Limitations,
|
||||
Communication: Communication{
|
||||
Formality: Formality(cfg.Communication.Formality),
|
||||
Humor: Humor(cfg.Communication.Humor),
|
||||
Personality: PersonalityType(cfg.Communication.Personality),
|
||||
ResponseStyle: ResponseStyle(cfg.Communication.ResponseStyle),
|
||||
Quirks: cfg.Communication.Quirks,
|
||||
AvoidTopics: cfg.Communication.AvoidTopics,
|
||||
Catchphrases: cfg.Communication.Catchphrases,
|
||||
},
|
||||
CustomDirectives: cfg.CustomDirectives,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user