personality

package
v0.4.21 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 23, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Enabled            bool   `yaml:"enabled"`
	DefaultPersonality string `yaml:"default_personality"`
}

Config holds personality configuration

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager handles personalities

func NewManager

func NewManager(dataDir string) *Manager

NewManager creates a new personality manager

func (*Manager) AdaptResponse

func (m *Manager) AdaptResponse(id, response string) string

AdaptResponse adapts a response based on personality

func (*Manager) CreatePersonality

func (m *Manager) CreatePersonality(p *Personality) error

CreatePersonality creates a new custom personality

func (*Manager) DeletePersonality

func (m *Manager) DeletePersonality(id string) error

DeletePersonality deletes a custom personality

func (*Manager) GenerateSystemPrompt

func (m *Manager) GenerateSystemPrompt(id string, context map[string]string) (string, error)

GenerateSystemPrompt generates a dynamic system prompt based on context

func (*Manager) GetCompatibleTools

func (m *Manager) GetCompatibleTools(id string) []string

GetCompatibleTools returns tools suitable for a personality

func (*Manager) GetCurrentPersonality

func (m *Manager) GetCurrentPersonality() *Personality

GetCurrentPersonality returns the current personality

func (*Manager) GetPersonality

func (m *Manager) GetPersonality(id string) *Personality

GetPersonality returns a personality by ID

func (*Manager) ListPersonality

func (m *Manager) ListPersonality() []*Personality

ListPersonality returns all available personalities

func (*Manager) LoadPersonality

func (m *Manager) LoadPersonality(id string) error

LoadPersonality loads a personality from disk

func (*Manager) SavePersonality

func (m *Manager) SavePersonality(id string) error

SavePersonality saves a personality to disk

func (*Manager) SetCurrentPersonality

func (m *Manager) SetCurrentPersonality(id string) error

SetCurrentPersonality sets the current active personality

func (*Manager) UpdatePersonality

func (m *Manager) UpdatePersonality(id string, updates map[string]interface{}) error

UpdatePersonality updates an existing personality

type Personality

type Personality struct {
	ID           string          `json:"id"`
	Name         string          `json:"name"`
	Description  string          `json:"description"`
	SystemPrompt string          `json:"system_prompt"`
	Tone         string          `json:"tone"`            // formal, casual, technical
	Traits       []string        `json:"traits"`          // personality traits
	Examples     []string        `json:"examples"`        // example responses
	Knowledge    []string        `json:"knowledge_areas"` // areas of expertise
	Greeting     string          `json:"greeting"`
	Farewell     string          `json:"farewell"`
	Flags        map[string]bool `json:"flags"` // special behavior flags
	CreatedAt    int64           `json:"created_at"`
	Version      int             `json:"version"`
}

Personality represents an agent personality

type SOUL

type SOUL struct {
	CoreIdentity  string   `json:"core_identity"`
	Values        []string `json:"values"`
	Communication string   `json:"communication_style"`
	Boundaries    []string `json:"boundaries"`
	KnowledgeBase []string `json:"knowledge_base"`
	LearningGoals []string `json:"learning_goals"`
}

SOUL represents a persona file (SOUL.md)

func LoadSOUL

func LoadSOUL(path string) (*SOUL, error)

LoadSOUL loads a SOUL.md file

func (*SOUL) ToPersonality

func (s *SOUL) ToPersonality(id string) *Personality

ToPersonality converts SOUL to a Personality

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL