Episodic Memory Archiver. Stores full conversation transcripts with embeddings and analysis into ArangoDB. Tracks UNRESOLVED sessions for reflection.
Analyzes conversation transcripts, embeds them for search, categorizes turns, and tracks unresolved sessions for later reflection.
# Archive a conversation transcript
./run.sh archive transcript.json
# List unresolved sessions (for reflection)
./run.sh list-unresolved
# Mark a session as resolved after follow-up
./run.sh resolve <session_id>
When archiving, the skill analyzes if the session was resolved:
| Condition | Result |
|---|---|
| Session ends with error | Unresolved |
| Session ends with unanswered question | Unresolved |
| Errors without following solutions | Unresolved |
| Tasks without completion | Unresolved |
Unresolved sessions are stored in collection for reflection.
unresolved_sessions# Reflect on past failures to find what to learn
/learn --from-gaps --scope horus_lore
# This queries:
# 1. unresolved_sessions (high priority)
# 2. agent_conversations (errors, questions)
# 3. Skill logs (failures)
Session ends → Archive → Detect unresolved → Store gap
↓
/learn --from-gaps
↓
Curiosity targets
↓
/dogpile → /learn
↓
Knowledge acquired
↓
./run.sh resolve <session>
Collections:
agent_conversations - Individual turns with embeddingsunresolved_sessions - Sessions needing follow-upTurn categories: Task, Question, Solution, Error, Chat, Meta
{
"session_id": "task_123",
"messages": [
{"from": "User", "content": "Fix the bug in auth", "timestamp": 1234567890},
{"from": "Agent", "content": "Looking at auth.py...", "timestamp": 1234567891}
]
}