fc644ecd6e
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.
153 lines
3.5 KiB
Go
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,
|
|
},
|
|
}
|
|
}
|