Files
unibots/pkg/personality/traits.go
T
agent fc644ecd6e feat: import agents_and_robots platform as unibots (Matrix-out, unibus transport)
Reemplaza el scaffold del echobot por la plataforma completa de bots traida
desde ~/DataProyects/Github/agents_and_robots tras la operacion Matrix-out:
los bots ya no hablan por Matrix sino por el bus unibus (modelo todo-rooms +
E2E via shell/transportunibus sobre github.com/enmanuel/unibus/pkg/client).

- go.mod: replace de unibus -> ../unibus y de fn-registry -> ../../../.. (paths
  relativos reajustados a la nueva ubicacion dentro de fn_registry).
- app.md: bump a 0.2.0, descripcion + arquitectura + comandos + gotchas reales.
- modulo Go conservado como github.com/enmanuel/agents (sin reescribir imports).

agents_and_robots queda archivado como museo de la era Matrix.
2026-06-07 11:50:13 +02:00

153 lines
3.5 KiB
Go

// Package personality defines pure types for agent personality and behavior.
package personality
type Tone string
const (
ToneDirect Tone = "direct"
ToneFriendly Tone = "friendly"
ToneFormal Tone = "formal"
ToneCasual Tone = "casual"
ToneTechnical Tone = "technical"
)
type Verbosity string
const (
VerbosityMinimal Verbosity = "minimal"
VerbosityConcise Verbosity = "concise"
VerbosityDetailed Verbosity = "detailed"
VerbosityVerbose Verbosity = "verbose"
)
type EmojiStyle string
const (
EmojiNone EmojiStyle = "none"
EmojiMinimal EmojiStyle = "minimal"
EmojiModerate EmojiStyle = "moderate"
EmojiHeavy EmojiStyle = "heavy"
)
type ErrorStyle string
const (
ErrorTerse ErrorStyle = "terse"
ErrorHelpful ErrorStyle = "helpful"
ErrorDetailed ErrorStyle = "detailed"
)
type Formality string
const (
FormalityFormal Formality = "formal"
FormalitySemiformal Formality = "semiformal"
FormalityCasual Formality = "casual"
FormalityColoquial Formality = "coloquial"
)
type Humor string
const (
HumorNone Humor = "none"
HumorSubtle Humor = "subtle"
HumorModerate Humor = "moderate"
HumorFrequent Humor = "frequent"
)
type PersonalityType string
const (
PersonalityAnalytical PersonalityType = "analytical"
PersonalityCreative PersonalityType = "creative"
PersonalityPragmatic PersonalityType = "pragmatic"
PersonalityEmpathetic PersonalityType = "empathetic"
PersonalityAssertive PersonalityType = "assertive"
)
type ResponseStyle string
const (
ResponseStructured ResponseStyle = "structured"
ResponseConversational ResponseStyle = "conversational"
ResponseBulletPoints ResponseStyle = "bullet_points"
ResponseNarrative ResponseStyle = "narrative"
)
type Templates struct {
Greeting string
UnknownCommand string
PermissionDenied string
Error string
Success string
Busy string
}
type Behavior struct {
Proactive bool
AskConfirmation bool
ShowReasoning bool
ThreadReplies bool
TypingIndicator bool
AcknowledgeReceipt bool
}
type Communication struct {
Formality Formality
Humor Humor
Personality PersonalityType
ResponseStyle ResponseStyle
Quirks []string
AvoidTopics []string
Catchphrases []string
}
type Personality struct {
Tone Tone
Verbosity Verbosity
Language string
LanguagesSupported []string
EmojiStyle EmojiStyle
Prefix string
ErrorStyle ErrorStyle
Templates Templates
Behavior Behavior
// Identidad narrativa
Role string
Backstory string
Expertise []string
Limitations []string
// Estilo de comunicacion
Communication Communication
// Directivas personalizadas
CustomDirectives []string
}
// DefaultPersonality returns a sensible baseline.
func DefaultPersonality() Personality {
return Personality{
Tone: ToneFriendly,
Verbosity: VerbosityConcise,
Language: "en",
EmojiStyle: EmojiMinimal,
ErrorStyle: ErrorHelpful,
Templates: Templates{
Greeting: "Ready. What do you need?",
UnknownCommand: "Unknown command. Use `!help` for available commands.",
PermissionDenied: "You don't have permission for that.",
Error: "Something failed: {{.Error}}",
Success: "Done. {{.Summary}}",
Busy: "I'm busy with another task. Wait or use `!queue`.",
},
Behavior: Behavior{
AskConfirmation: true,
ThreadReplies: true,
TypingIndicator: true,
AcknowledgeReceipt: true,
},
}
}