All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.0.0] - 2025-12-23
Added
- Core API -
new/1,new!/1,update/2,update!/2,validate/1for character lifecycle - LLM Integration -
to_context/2,to_system_prompt/2for direct ReqLLM integration - Evolution -
evolve/2,evolve!/2for simulating character aging and memory decay - Pipe-friendly helpers for building characters incrementally:
add_knowledge/2,3- Add knowledge items with optional category/importanceadd_instruction/2- Add behavioral instructionsadd_memory/2,3- Add memory entries with capacity enforcementadd_trait/2,3- Add personality traits with optional intensityadd_value/2- Add personality valuesadd_quirk/2- Add personality quirksadd_expression/2- Add voice expressionsadd_fact/2- Add identity facts
use Jido.Charactermacro for module-based character definitions with:- Default attributes
- Extension configuration
- Adapter/renderer configuration
- All generated functions are
defoverridable
- Zoi-based validation schemas with typed sub-modules:
Jido.Character.Schema.Identity- Role, age, background, factsJido.Character.Schema.Personality- Traits, values, quirksJido.Character.Schema.Voice- Tone, style, vocabulary, expressionsJido.Character.Schema.Memory- Entries with decay, capacity limitsJido.Character.Schema.MemoryEntry- Individual memory itemsJido.Character.Schema.KnowledgeItem- Permanent factsJido.Character.Schema.Trait- Traits with intensity
- Pluggable Renderer behaviour with dispatcher for custom prompt formats
- Persistence behaviour with Memory adapter using ETS
- Memory decay model - Importance decreases over time based on decay rate
- Memory capacity enforcement - Oldest entries dropped when over limit
- Comprehensive type specifications for Dialyzer compatibility