Cortex
1.x
Docs/Cortex/The Human Model
Open

Reading2 min
Updated31 Jul 2026
Sourcev1/human-model/overview.mdx

Cortex takes a fundamentally different approach to AI agent design. Instead of writing system prompts imperatively ("You are a helpful assistant that..."), you declare an agent's identity using the same building blocks that make humans unique.

Philosophy01

People are not defined by a single instruction. They are the product of:

  • Skills they have learned (what they can do)

  • Personality traits that shape how they work

  • Behavioral habits that emerge from experience

  • Thinking patterns that guide their reasoning

  • Communication preferences that define their voice

  • Perceptual filters that determine what they notice

Cortex makes each of these a first-class, composable entity.

The seven aspects02

AspectPackageGo typeDescription
Skillskillskill.SkillCapabilities, tools, and knowledge
Traittraittrait.TraitPersonality dimensions on bipolar axes
Behaviorbehaviorbehavior.BehaviorCondition-triggered action patterns
Cognitive Stylecognitivecognitive.StylePhase-based thinking strategies
Communication Stylecommunicationcommunication.StyleTone, formality, verbosity
Perceptionperceptionperception.ModelAttention filters and focus
Personapersonapersona.PersonaThe complete identity composition

Composition hierarchy03

Skills, Traits, and Behaviors are standalone entities stored independently with their own CRUD APIs. They are composed together through a Persona, which references them by name.

Cognitive Style, Communication Style, and Perception are value objects embedded directly in the Persona struct.

The Agent Config then references a Persona (persona mode) or defines its own system prompt and tools (flat mode).

Agent Config
  └── Persona (via PersonaRef)
        ├── Skills[]       (standalone entities, referenced by name)
        ├── Traits[]       (standalone entities, referenced by name)
        ├── Behaviors[]    (standalone entities, referenced by name)
        ├── CognitiveStyle (embedded value object)
        ├── CommunicationStyle (embedded value object)
        └── Perception     (embedded value object)

Declarative vs imperative04

Traditional approach (imperative):

You are a senior software engineer. Be thorough and methodical.
Focus on security issues. Use a professional but friendly tone.
Always check the code before suggesting changes.

Cortex approach (declarative):

persona := &persona.Persona{
    Identity: "A senior software engineer with 10+ years of experience",
    Skills:   []persona.SkillAssignment{{SkillName: "code-review"}},
    Traits:   []persona.TraitAssignment{{TraitName: "thoroughness"}},
    Behaviors: []string{"verify-before-suggest"},
    CommunicationStyle: communication.Style{
        Tone: "professional", Formality: 0.7,
    },
}

The declarative approach is composable, reusable, and version-controlled. Change one trait and it updates every agent that uses it.