Documentation
¶
Overview ¶
Package ainame manages AI persona names for system prompt injection.
32 names (15 bird + 17 frog, Dyson classification) are seeded into SQLite on first database init. Each session gets a randomly assigned name on first use, persisted in session_names. The assignment is permanent — INSERT OR IGNORE semantics prevent reassignment.
sessionID == 0 or DB errors fall back to "nobody", the every-programmer.
Package ainame assigns a unique AI thinker persona to each session.
Architecture:
32 hardcoded names (15 bird + 17 frog), classified after Freeman Dyson's "Birds and Frogs" essay. Each name carries an English personality sketch and a one-sentence cognitive style for prompt injection.
Seeded into ai_names table via INSERT OR IGNORE on first DB init.
LoadOrAssign(sessionID) → *NameConfig
sessionID == 0 → "nobody" (the every-programmer)
Existing assignment → read from session_names + ai_names
No assignment → rand pick, INSERT, then read
DB errors → "nobody" fallback
Nobody is id=9, permanent fallback: unseen, indispensable, seeks correctness.
Prompt integration:
prompt.go calls LoadOrAssign(sessionID) and injects NameEN, PersonalityEN, DescEN into the "Persona" section of system prompt templates (dev, expert, review). No conditional logic — nobody guarantees a valid value always.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type NameConfig ¶
type NameConfig struct {
NameCN string // e.g. "牛顿", "无名"
NameEN string // e.g. "Newton", "nobody"
PersonalityEN string // e.g. "steady, forceful, vain"
DescEN string // English description for prompt injection
BirdFrog string // "bird" | "frog"
Email string // lower(name_en)@dscli.io
}
NameConfig holds the AI persona data for prompt injection.
func LoadOrAssign ¶
func LoadOrAssign(sessionID int64) *NameConfig
LoadOrAssign returns the AI name for a session.
sessionID == 0 → returns nobody (no session initialized). sessionID > 0 → returns previously assigned name, or randomly assigns one. DB errors → falls back to nobody.
Source Files
¶
- ainame.go
- data.go
- doc.go