e743a3e982
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>
48 lines
1.8 KiB
Go
48 lines
1.8 KiB
Go
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,
|
|
}
|
|
}
|