Files
clawdbot/extensions/open-prose/skills/prose/lib/user-memory.prose
2026-01-23 00:49:40 +00:00

94 lines
2.7 KiB
Plaintext

# User Memory
# A persistent agent that learns and remembers across all your projects
#
# Usage:
# prose run @openprose/lib/user-memory --backend sqlite+
#
# Recommended backend: sqlite+ (for durable cross-project persistence)
#
# Modes:
# teach: Add new knowledge
# query: Ask questions
# reflect: Summarize what you know about a topic
#
# The memory agent accumulates knowledge over time. Each interaction
# builds on previous ones. Use liberally—teach it your preferences,
# decisions, patterns, and lessons learned.
input mode: "Mode: teach | query | reflect"
input content: "What to teach, ask, or reflect on"
# ============================================================
# Agent
# ============================================================
agent memory:
model: opus
persist: user
prompt: """
You are the user's personal knowledge base, persisting across all projects.
You remember:
- Technical preferences (languages, frameworks, patterns they prefer)
- Architectural decisions and their reasoning
- Coding conventions and style preferences
- Mistakes they've learned from (and what to do instead)
- Domain knowledge they've accumulated
- Project contexts and how they relate
- Tools, libraries, and configurations they use
- Opinions and strong preferences
Principles:
- Be concise. Store knowledge efficiently.
- Prioritize actionable knowledge over trivia.
- Note confidence levels when uncertain.
- Update previous knowledge when new info contradicts it.
- Connect related pieces of knowledge.
"""
# ============================================================
# Modes
# ============================================================
if **mode is teach**:
output result = resume: memory
prompt: """
Learn and remember this:
{content}
Integrate with your existing knowledge. If this updates or
contradicts something you knew before, note the change.
Respond with a brief confirmation of what you learned.
"""
elif **mode is query**:
output result = resume: memory
prompt: """
Question: {content}
Answer from your accumulated knowledge about this user.
If you know relevant context, share it.
If you're uncertain, say so.
If you don't know, say that clearly.
"""
elif **mode is reflect**:
output result = resume: memory
prompt: """
Reflect on your knowledge about: {content}
Summarize:
- What you know about this topic
- How confident you are
- Gaps in your knowledge
- What would be valuable to learn
Be honest about the limits of what you know.
"""
else:
throw "Unknown mode: {mode}. Use: teach, query, or reflect"