Files
agents_and_robots/pkg/personality/convert.go
T
egutierrez e743a3e982 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>
2026-03-08 22:28:40 +00:00

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,
}
}