โ† Back to AI & LLMs
AI & LLMs by @sebastianffx

user-cognitive-profiles

Analyze ChatGPT conversation exports

0
Source Code

User Cognitive Profiles

๐Ÿค–๐Ÿค๐Ÿง  Discover how you communicate with AI and optimize your agent interactions.

This skill analyzes your ChatGPT conversation history to identify cognitive archetypes โ€” recurring patterns in how you think, communicate, and collaborate. Use these insights to calibrate your OpenClaw agent for more effective, personalized interactions.


Why This Matters

Human-AI communication is not one-size-fits-all. Just as you adapt your communication style between contexts (work meeting vs. casual chat), effective AI assistance requires matching your cognitive architecture.

The Problem:

  • Default AI behavior assumes a generic user
  • Your communication style varies dramatically by context (professional vs. personal)
  • Misaligned AI responses feel inefficient or frustrating

The Solution:

  • Analyze your actual conversation patterns
  • Identify your dominant cognitive archetypes
  • Configure your agent to match your communication style

Quick Start

1. Export Your ChatGPT Data

  1. Go to ChatGPT โ†’ Settings โ†’ Data Controls โ†’ Export Data
  2. Click "Export" and confirm
  3. Wait for the email (usually arrives within 24 hours)
  4. Download the ZIP file from the email link
  5. Extract it โ€” you'll find conversations.json

2. Run the Analysis

cd /path/to/user-cognitive-profiles
python3 scripts/analyze_profile.py \
  --input ~/Downloads/chatgpt-export/conversations.json \
  --output ~/.openclaw/my-cognitive-profile.json \
  --archetypes 3

3. Apply to Your Agent

Add to your SOUL.md or AGENTS.md:

## User Cognitive Profile
<!-- Source: generated by user-cognitive-profiles skill -->
- **Primary Archetype:** Efficiency Optimizer
- **Avg Message Length:** 47 words
- **Context Switching:** High (professional vs. personal modes)
- **Key Patterns:** Prefers direct answers, values examples over theory

### Communication Calibration
- Default to concise responses
- Provide examples + theory + hands-on steps
- Watch for professional/personal mode shifts

Cognitive Archetypes

The analysis identifies archetypes based on four dimensions:

Dimension Low High
Message Length Brief commands Extended analysis
Structure Organic flow Systematic breakdown
Depth Practical focus Theoretical exploration
Tone Transactional Collaborative

Common Archetypes

๐Ÿ”ง Efficiency Optimizer

  • Messages: Short, direct, action-oriented
  • Wants: Quick answers, minimal explanation
  • AI Role: Tool to get things done
  • Example: "Set up email. Use pass. Go."

๐Ÿ—๏ธ Systems Architect

  • Messages: Long, structured, comprehensive
  • Wants: Deep analysis, trade-offs, strategic thinking
  • AI Role: Collaborative partner for complex problems
  • Example: 300-word technical breakdown with multiple considerations

๐Ÿงญ Philosophical Explorer

  • Messages: Varies widely, questions assumptions
  • Wants: Meaning, patterns, cross-domain connections
  • AI Role: Socratic partner for insight generation
  • Example: "How does this relate to [completely different domain]?"

๐ŸŽจ Creative Synthesizer

  • Messages: Connects disparate ideas, uses analogies
  • Wants: Novel combinations, pattern recognition
  • AI Role: Ideation partner and pattern mirror
  • Example: "This is like jazz improvisation..."

Customization

Define Your Own Archetypes

Create ~/.openclaw/my-archetypes.yaml:

archetypes:
  - name: "Research Mode"
    keywords:
      - "research"
      - "analyze"
      - "compare"
      - "trade-off"
    patterns:
      - long_messages
      - multiple_questions
      - citation_requests
    
  - name: "Quick Mode"
    keywords:
      - "quick"
      - "brief"
      - "simple"
      - "just"
    patterns:
      - short_messages
      - imperative_tone
      - minimal_context

Run with custom archetypes:

python3 scripts/analyze_profile.py \
  --input conversations.json \
  --archetypes-config ~/.openclaw/my-archetypes.yaml

Adjust Cluster Count

More archetypes = finer granularity, but harder to act on:

# Simple: 2-3 archetypes
python3 scripts/analyze_profile.py --archetypes 2

# Detailed: 5-7 archetypes
python3 scripts/analyze_profile.py --archetypes 5

# Complex: 10+ (for power users)
python3 scripts/analyze_profile.py --archetypes 10

Understanding the Output

Profile JSON Structure

{
  "metadata": {
    "total_conversations": 3784,
    "date_range": "2024-01-01 to 2025-01-31",
    "analysis_date": "2026-02-02"
  },
  "archetypes": [
    {
      "id": 0,
      "name": "Systems Architect",
      "confidence": 0.87,
      "metrics": {
        "avg_message_length": 382,
        "avg_response_length": 450,
        "question_ratio": 0.23,
        "code_block_ratio": 0.45
      },
      "keywords": ["architecture", "design", "trade-off", "system"],
      "sample_conversations": ["uuid-1", "uuid-2"],
      "recommendations": {
        "ai_role": "Senior Architect",
        "communication_style": "Detailed, systematic, collaborative",
        "response_length": "long",
        "structure": "hierarchical"
      }
    }
  ],
  "context_shifts": [
    {
      "trigger": "technical_keywords",
      "from_archetype": "Efficiency Optimizer",
      "to_archetype": "Systems Architect"
    }
  ],
  "insights": {
    "primary_mode": "Systems Architect",
    "context_switching": "high",
    "communication_preferences": [
      "Examples before theory",
      "Hands-on application",
      "Cross-domain analogies"
    ]
  }
}

Key Metrics Explained

Metric Description Why It Matters
avg_message_length Average words per user message Short = efficiency mode, Long = exploration mode
question_ratio % of turns that are questions High = collaborative, Low = directive
code_block_ratio % of messages with code Technical vs. conceptual focus
context_shifts Detected mode transitions Indicates multiple archetypes at play
confidence Cluster cohesion score Higher = more distinct pattern

Privacy & Security

All processing is local. The script:

  • โœ… Runs entirely on your machine
  • โœ… Never uploads data to external services
  • โœ… Stores results in your local OpenClaw workspace
  • โœ… You control what gets shared (if anything)

Recommended workflow:

  1. Export ChatGPT data
  2. Run analysis locally
  3. Review my-cognitive-profile.json
  4. Manually add relevant insights to SOUL.md
  5. (Optional) Delete the export and raw profile

Advanced Usage

Compare Profiles Over Time

Track how your communication evolves:

# January analysis
python3 scripts/analyze_profile.py \
  --input conversations_jan.json \
  --output profile_jan.json

# June analysis
python3 scripts/analyze_profile.py \
  --input conversations_jun.json \
  --output profile_jun.json

# Compare
python3 scripts/compare_profiles.py profile_jan.json profile_jun.json

Export for Other Agents

Generate a prompt snippet for Claude, GPT, or other agents:

python3 scripts/analyze_profile.py \
  --input conversations.json \
  --format prompt-snippet \
  --output agent-prompt.txt

Output:

## User Communication Profile
- Primary style: Systems Architect (detailed, analytical)
- Secondary style: Efficiency Optimizer (brief, pragmatic)
- Context switching: High (watch for mode shifts)
- Preferences: Examples + theory + hands-on steps
- Treat as: Senior technical partner, not assistant

Troubleshooting

"conversations.json not found"

The export ZIP contains multiple files. Make sure you're pointing to:

chatgpt-export/
โ”œโ”€โ”€ conversations.json  <-- This one
โ”œโ”€โ”€ user.json
โ””โ”€โ”€ ...

"No conversations detected"

Your export might be empty or corrupted. Check:

head -20 conversations.json

Should show: [{"title": "...", "messages": [...]}, ...]

"All archetypes have similar confidence"

Try adjusting the cluster count:

# Too granular
python3 scripts/analyze_profile.py --archetypes 10

# Try simpler
python3 scripts/analyze_profile.py --archetypes 3

"Analysis takes too long"

For large conversation histories (10k+ messages):

# Sample for faster analysis
python3 scripts/analyze_profile.py \
  --input conversations.json \
  --sample 1000  # Analyze random 1000 conversations

Integration with OpenClaw

Automatic Profile Loading

Add to your OpenClaw workspace AGENTS.md:

## On Session Start
1. Read `~/.openclaw/my-cognitive-profile.json` if exists
2. Adapt communication style to primary archetype
3. Watch for context shift indicators

Dynamic Mode Detection

For agents that can switch modes mid-conversation:

# Pseudocode for agent integration
def detect_mode_shift(current_message, profile):
    for shift in profile["context_shifts"]:
        if shift["trigger"] in current_message:
            return shift["to_archetype"]
    return profile["insights"]["primary_mode"]

Contributing

Have a new archetype that works well? Submit a PR with:

  1. Archetype definition in examples/
  2. Sample data (anonymized)
  3. Validation that it clusters distinctly

References

  • references/methodology.md โ€” Technical details on clustering algorithm
  • references/archetype-taxonomy.md โ€” Full archetype definitions
  • examples/ โ€” Sample profiles and configurations

Built for humans who want their AI to truly understand them. ๐Ÿค–๐Ÿค๐Ÿง