# Expert Agent Reference: Personal Journal Keeper (Whisper)

This folder contains a complete reference implementation of a **BMAD Expert Agent** - an agent with persistent memory and domain-specific resources via a sidecar folder.

## Overview

**Agent Name:** Whisper
**Type:** Expert Agent
**Purpose:** Personal journal companion that remembers your entries, tracks mood patterns, and notices themes over time

This reference demonstrates:

- Expert Agent with focused sidecar resources
- Embedded prompts PLUS sidecar file references (hybrid pattern)
- Persistent memory across sessions
- Domain-restricted file access
- Pattern tracking and recall
- Simple, maintainable architecture

## Directory Structure

```
agent-with-memory/
├── README.md                          # This file
├── journal-keeper.agent.yaml          # Main agent definition
└── journal-keeper-sidecar/            # Agent's private workspace
    ├── instructions.md                # Core directives
    ├── memories.md                    # Persistent session memory
    ├── mood-patterns.md               # Emotional tracking data
    ├── breakthroughs.md               # Key insights recorded
    └── entries/                       # Individual journal entries
```

**Simple and focused!** Just 4 core files + a folder for entries.

## Key Architecture Patterns

### 1. Hybrid Command Pattern

Expert Agents can use BOTH:

- **Embedded prompts** via `action: "#prompt-id"` (like Simple Agents)
- **Sidecar file references** via direct paths

```yaml
menu:
  # Embedded prompt (like Simple Agent)
  - trigger: 'write'
    action: '#guided-entry'
    description: "Write today's journal entry"

  # Direct sidecar file action
  - trigger: 'insight'
    action: 'Document this breakthrough in {agent-folder}/journal-keeper-sidecar/breakthroughs.md'
    description: 'Record a meaningful insight'
```

This hybrid approach gives you the best of both worlds!

### 2. Mandatory Critical Actions

Expert Agents MUST load sidecar files explicitly:

```yaml
critical_actions:
  - 'Load COMPLETE file {agent-folder}/journal-keeper-sidecar/memories.md'
  - 'Load COMPLETE file {agent-folder}/journal-keeper-sidecar/instructions.md'
  - 'ONLY read/write files in {agent-folder}/journal-keeper-sidecar/'
```

**Key points:**

- Files are loaded at startup
- Domain restriction is enforced
- Agent knows its boundaries

### 3. Persistent Memory Pattern

The `memories.md` file stores:

- User preferences and patterns
- Session notes and observations
- Recurring themes discovered
- Growth markers tracked

**Critically:** This is updated EVERY session, creating continuity.

### 4. Domain-Specific Tracking

Different files track different aspects:

- **memories.md** - Qualitative insights and observations
- **mood-patterns.md** - Quantitative emotional data
- **breakthroughs.md** - Significant moments
- **entries/** - The actual content (journal entries)

This separation makes data easy to reference and update.

### 5. Simple Sidecar Structure

Unlike modules with complex folder hierarchies, Expert Agent sidecars are flat and focused:

- Just the files the agent needs
- No nested workflows or templates
- Easy to understand and maintain
- All domain knowledge in one place

## Comparison: Simple vs Expert vs Module

| Feature       | Simple Agent         | Expert Agent               | Module Agent           |
| ------------- | -------------------- | -------------------------- | ---------------------- |
| Architecture  | Single YAML          | YAML + sidecar folder      | YAML + module system   |
| Memory        | Session only         | Persistent (sidecar files) | Config-driven          |
| Prompts       | Embedded only        | Embedded + external files  | Workflow references    |
| Dependencies  | None                 | Sidecar folder             | Module workflows/tasks |
| Domain Access | None                 | Restricted to sidecar      | Full module access     |
| Complexity    | Low                  | Medium                     | High                   |
| Use Case      | Self-contained tools | Domain experts with memory | Full workflow systems  |

## The Sweet Spot

Expert Agents are the middle ground:

- **More powerful** than Simple Agents (persistent memory, domain knowledge)
- **Simpler** than Module Agents (no workflow orchestration)
- **Focused** on specific domain expertise
- **Personal** to the user's needs

## When to Use Expert Agents

**Perfect for:**

- Personal assistants that need memory (journal keeper, diary, notes)
- Domain specialists with knowledge bases (specific project context)
- Agents that track patterns over time (mood, habits, progress)
- Privacy-focused tools with restricted access
- Tools that learn and adapt to individual users

**Key indicators:**

- Need to remember things between sessions
- Should only access specific folders/files
- Tracks data over time
- Adapts based on accumulated knowledge

## File Breakdown

### journal-keeper.agent.yaml

- Standard agent metadata and persona
- **Embedded prompts** for guided interactions
- **Menu commands** mixing both patterns
- **Critical actions** that load sidecar files

### instructions.md

- Core behavioral directives
- Journaling philosophy and approach
- File management protocols
- Tone and boundary guidelines

### memories.md

- User profile and preferences
- Recurring themes discovered
- Session notes and observations
- Accumulated knowledge about the user

### mood-patterns.md

- Quantitative tracking (mood scores, energy, etc.)
- Trend analysis data
- Pattern correlations
- Emotional landscape map

### breakthroughs.md

- Significant insights captured
- Context and meaning recorded
- Connected to broader patterns
- Milestone markers for growth

### entries/

- Individual journal entries saved here
- Each entry timestamped and tagged
- Raw content preserved
- Agent observations separate from user words

## Pattern Recognition in Action

Expert Agents excel at noticing patterns:

1. **Reference past sessions:** "Last week you mentioned feeling stuck..."
2. **Track quantitative data:** Mood scores over time
3. **Spot recurring themes:** Topics that keep surfacing
4. **Notice growth:** Changes in language, perspective, emotions
5. **Connect dots:** Relationships between entries

This pattern recognition is what makes Expert Agents feel "alive" and helpful.

## Usage Notes

### Starting Fresh

The sidecar files are templates. A new user would:

1. Start journaling with the agent
2. Agent fills in memories.md over time
3. Patterns emerge from accumulated data
4. Insights build from history

### Building Your Own Expert Agent

1. **Define the domain** - What specific area will this agent focus on?
2. **Choose sidecar files** - What data needs to be tracked/remembered?
3. **Mix command patterns** - Use embedded prompts + sidecar references
4. **Enforce boundaries** - Clearly state domain restrictions
5. **Design for accumulation** - How will memory grow over time?

### Adapting This Example

- **Personal Diary:** Similar structure, different prompts
- **Code Review Buddy:** Track past reviews, patterns in feedback
- **Project Historian:** Remember decisions and their context
- **Fitness Coach:** Track workouts, remember struggles and victories

The pattern is the same: focused sidecar + persistent memory + domain restriction.

## Key Takeaways

- **Expert Agents** bridge Simple and Module complexity
- **Sidecar folders** provide persistent, domain-specific memory
- **Hybrid commands** use both embedded prompts and file references
- **Pattern recognition** comes from accumulated data
- **Simple structure** keeps it maintainable
- **Domain restriction** ensures focused expertise
- **Memory is the superpower** - remembering makes the agent truly useful

---

_This reference shows how Expert Agents can be powerful memory-driven assistants while maintaining architectural simplicity._
