94 lines
2.7 KiB
Plaintext
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"
|