Install
openclaw skills install @welkeyever/pafh-miniPAHF (Personalized Agents from Human Feedback) - Continual Personalization Framework. Triggered when applying the PAHF three-step loop: (1) Pre-action Clarification - Resolve ambiguity before action, proactively ask for confirmation (2) Preference-grounded Action - Retrieve user preferences from memory to guide decisions (3) Post-action Feedback Integration - Collect feedback after action, update preference memory Use when: User expresses preferences or habits Need to make decisions with multiple valid options User corrects or adjusts your behavior Need to remember personalized settings Detecting potential preference changes
openclaw skills install @welkeyever/pafh-miniBased on paper "Learning Personalized Agents from Human Feedback" (arXiv:2602.16173)
Before using this skill, understand that PAHF will:
| Action | Files | Data Type |
|---|---|---|
| Read | MEMORY.md, USER.md, IDENTITY.md, memory/*.md | Preferences, identity, personal info |
| Write | MEMORY.md, memory/YYYY-MM-DD.md, memory/users/*.md | Preference updates, change logs |
All preference updates are:
[LEARNED: date, source] marker~/.openclaw/workspace/memory/User consent is required for persistent preference storage. If you prefer not to have preferences stored, this skill should not be used.
The Problem: Traditional AI relies on static datasets and cannot adapt to changing user preferences. You correct it once, it makes the same mistake again.
The Solution: PAHF enables continual personalization through dual feedback channels + explicit memory:
This skill requires the following tools to be available:
| Tool | Purpose | Fallback |
|---|---|---|
memory_search | Semantic search across memory files | Use read + grep |
memory_get | Safe snippet retrieval | Use read directly |
If these tools are unavailable, the skill will fall back to direct file reading, which may be slower.
When to Ask:
How to Ask:
❌ Wrong: Silently guess and get it wrong
✅ Right: Briefly list options, let user confirm
Example:
"Regarding this report, would you like:
A) Detailed version (includes all details)
B) Summary version (key points only)
C) Let me decide?"
When NOT to Ask:
Retrieve Preferences: Find relevant preferences from memory files
Memory File Locations:
MEMORY.md - Long-term preferences, core valuesmemory/YYYY-MM-DD.md - Recent preference changesUSER.md - Basic user informationIDENTITY.md - Your identity settingsmemory/users/{user}.md - User-specific preferencesRetrieval Method:
memory_search tool to search keywordsmemory_get for safe snippet retrievalWhen No Preference Found:
Identify Feedback:
Update Memory (with confirmation for significant changes):
# Feedback Type Judgment
if user explicitly corrects:
This is an important preference → Update MEMORY.md
Ask: "Should I remember this for future interactions?"
elif user expresses new habit:
This is a variable preference → Update memory/YYYY-MM-DD.md
Record without asking (daily log)
elif user simply confirms:
Validated preference → Optionally record
No explicit confirmation needed
Preference Change Tracking: Use [LEARNED: date, source] and [UPDATED: date] markers
To balance personalization with user control:
| Change Type | Confirmation Required | Example |
|---|---|---|
| New core preference | Yes | "Should I remember you prefer PDF reports?" |
| Preference update | No (logged) | User: "Actually, I prefer Word now" |
| Daily observation | No | "Noticed you prefer morning meetings" |
| Sensitive data | Always | Passwords, credentials, etc. (never store) |
Sensitive data is NEVER stored:
See references/preference-schema.md
## Preference Categories
### Communication Style
- Concise/Detailed preference
- Formal/Casual level
- Language preference
### Work Habits
- Time scheduling
- Priority judgment
- Decision style
### Technical Preferences
- Tool selection
- Format preferences
- Process habits
### Content Preferences
- News interests
- Content depth
- Source preferences
User: "From now on, always send reports in PDF format"
PAHF Response:
1. Pre-action: ✓ Clear instruction, no clarification needed
2. Retrieve: Check MEMORY.md → No such preference recorded
3. Execute: Confirm receipt, update with consent
Agent: "Got it! I'll remember to send reports in PDF format. This preference has been saved to your profile."
Update MEMORY.md:
> **Report Format**: PDF [LEARNED: 2026-03-05, explicit instruction]
User: "Help me organize these files"
PAHF Response:
1. Pre-action: Detected ambiguity
- Organize by what? Date/Type/Project?
- Output format? List/Table/Report?
2. Ask:
"To organize these files, I need to know:
- How to organize? (Date/Type/Project)
- Output format? (List/Table)"
User: "By date, in table format"
3. Feedback Integration:
- Execute organization
- Record preference to memory/YYYY-MM-DD.md
- No confirmation needed (daily observation)
Historical Preference (MEMORY.md):
> **Communication Style**: Concise, direct [LEARNED: 2026-02-20]
Recent Change (memory/2026-03-03.md):
> User emphasized wanting detailed explanations today
PAHF Behavior:
1. Detected preference conflict
2. Use recent preference (detailed)
3. Observe subsequent feedback
4. If change persists → Ask: "Should I update your default to detailed explanations?"
5. If confirmed → Update long-term preference with [UPDATED: date]
PAHF paper proves: Dual channels (pre-action + post-action) outperform single channels
| Mode | Learning Speed | Adaptation Ability |
|---|---|---|
| No memory | Slow | Poor |
| Post-action only | Medium | Medium |
| Pre-action only | Medium | Medium |
| Dual-channel PAHF | Fast | Strong |
Why Dual Channels Work:
Layered Preference Storage
Regular Review
Explicitly Record Sources
> **Preference**: Concise replies [LEARNED: 2026-02-20, user feedback]
> **Preference**: PDF format [LEARNED: 2026-03-05, explicit instruction]
Ask Before Storing Sensitive Preferences
PAHF enhances rather than replaces existing memory system:
| File | Original Purpose | PAHF Enhancement |
|---|---|---|
| MEMORY.md | Event records | + Preference storage (with source markers) |
| memory/YYYY-MM-DD.md | Daily logs | + Preference change tracking |
| USER.md | User information | + Basic preferences |
| memory/users/{user}.md | User records | + PAHF preference format |
| HEARTBEAT.md | Periodic checks | + Preference consistency checks |
All preference updates are logged and traceable:
[LEARNED: date, source][UPDATED: date] for modificationsTo review your stored preferences:
Read MEMORY.md for long-term preferences
Read memory/YYYY-MM-DD.md for recent changes
Read memory/users/{your-name}.md for user-specific preferences
Remember: The essence of PAHF is treating users as teachers, every interaction is a learning opportunity. Ask when uncertain, record after confirmation, adapt when things change.