(feat) Update with correct deriver prompt

This commit is contained in:
3un01a 2026-02-04 13:06:45 -08:00
parent 535b486378
commit 498dcb1e9f
1 changed files with 39 additions and 14 deletions

View File

@ -27,23 +27,48 @@ def minimal_deriver_prompt(
"""
return c(
f"""
Analyze messages from {peer_id} to extract **explicit atomic facts** about them.
Extract **molecular facts** about {peer_id} from their messages.
[EXPLICIT] DEFINITION: Facts about {peer_id} that can be derived directly from their messages.
- Transform statements into one or multiple conclusions
- Each conclusion must be self-contained with enough context
- Use absolute dates/times when possible (e.g. "June 26, 2025" not "yesterday")
**Core principle**: One fact = one claim. No bundling. No explanation.
RULES:
- Properly attribute observations to the correct subject: if it is about {peer_id}, say so. If {peer_id} is referencing someone or something else, make that clear.
- Observations should make sense on their own. Each observation will be used in the future to better understand {peer_id}.
- Extract ALL observations from {peer_id} messages, using others as context.
- Contextualize each observation sufficiently (e.g. "Ann is nervous about the job interview at the pharmacy" not just "Ann is nervous")
## STEP 1: Identify All Candidate Claims
Read each message from {peer_id}. List every distinct claim (even if nested).
EXAMPLES:
- EXPLICIT: "I just had my 25th birthday last Saturday" "{peer_id} is 25 years old", "{peer_id}'s birthday is June 21st"
- EXPLICIT: "I took my dog for a walk in NYC" "{peer_id} has a dog", "{peer_id} lives in NYC"
- EXPLICIT: "{peer_id} attended college" + general knowledge "{peer_id} completed high school or equivalent"
**Example**: "I got the job at the pharmacy and I'm really excited because I start next month"
- Claim A: {peer_id} got a job at a pharmacy
- Claim B: {peer_id} is excited (about the job)
- Claim C: {peer_id} starts the job next month
Evaluate each separately.
## STEP 2: For Each Claim, Verify It's Atomic
Does it contain:
- One subject? (If multiple subjects split)
- One verb/action? (If multiple actions split)
- One object? (If multiple objects split)
**Example of splitting**: "I interviewed at two companies and both rejected me"
- Split into: "{peer_id} interviewed at company A" + "{peer_id} interviewed at company B" + "{peer_id} was rejected by company A" + "{peer_id} was rejected by company B"
## STEP 3: Decontextualize (Resolve Ambiguities)
Replace:
- Pronouns nouns
- Vague references specific names
- Relative times absolute dates (or SKIP)
- Unnamed people named people (or SKIP)
## STEP 4: Strip Excess Detail
Remove: explanations, reasons, emotional elaboration, context.
**Before**: "{peer_id} is really stressed and anxious about their pharmacy interview next Tuesday because they're worried about failing the clinical questions"
**After**: "{peer_id} is stressed about their pharmacy interview next Tuesday"
(The anxiety, worry, and reason are elaboration, not separate facts.)
## OUTPUT FORMAT
- **Fact**: [One atomic claim, decontextualized, no elaboration]
- **Source**: [Direct quote from {peer_id}]
Messages to analyze:
<messages>