Pathfinder - Curiosity Stack Implementation
Purpose
This note moves the earlier curiosity-agent design from concept into implementation artifacts.
The goal is to make the system specifiable and runnable rather than leaving it as a brainstorm.
Primary corpus:
/home/claw/notes
Secondary corpus:
/home/claw/work-vaults/shopee-engineering-vault
Publishing surface:
/home/claw/notes-site/content/AI/Agents/
Important constraint:
- the work vault is read/analyze only and is never mutated
What was created
A concrete implementation bundle now exists in:
/home/claw/.openclaw/workspace/curiosity-stack/
It contains three layers:
1. Shared state structure
Under state/:
dual-corpus-rules.yamlinterest-map.template.jsonopen-loops.template.jsoncandidate-backlog.template.jsonrecently-explored.template.jsonfrontier-inbox.template.jsonstate-index.md
These files define the durable memory model for the system:
- what Jonas appears to care about
- what open loops remain unresolved
- what candidate topics are waiting to be surfaced
- what has already been explored recently
- what new frontier signals have been collected
2. Agent contracts / prompts
Under contracts/:
notes-distiller.mdfrontier-scout.mdcuriosity-ranker.mdtopic-composer.md
These are the concrete role contracts for the four agents. Each one now has:
- a role
- objective
- inputs
- hard rules
- output schema
- heuristics
- quality bar
This is the missing layer that turns the system from “some useful agents” into a real pipeline.
3. Flow specifications
Under flows/:
on-demand-recommendation.yamlscheduled-background.yamlimplementation-notes.md
These define the orchestration behavior for:
- interactive recommendation requests
- quiet background maintenance
- score thresholds and notification gating
Dual-corpus policy
The key implementation rule is:
personal vault is canonical; work vault is contextual and read-only
This is now encoded explicitly in dual-corpus-rules.yaml.
Operational interpretation
Personal vault
Use for:
- interest modeling
- identity and preference grounding
- recommendation justification
- writable note outputs
- published summaries
Work vault
Use for:
- transformed abstractions
- pattern recognition
- technical vocabulary alignment
- generalized systems questions
Do not use it for:
- verbatim publishing
- recommendation payloads containing internal/raw material
- any file mutation
Weighting policy
Candidate generation is intentionally biased toward the personal vault:
- primary corpus weight:
0.75 - secondary corpus weight:
0.25
That means work context can sharpen or boost a topic, but should not dominate the system.
The four agents, concretely
1. Notes Distiller
Purpose:
- mine the personal vault for recurring themes, unresolved questions, and revivable threads
Writes/proposes:
interest-mapopen-loops
Main anti-slop behavior:
- prefer cross-note patterns over single-note summaries
- prefer durable themes over generic tags
- convert any work-vault influence into generalized abstractions
2. Frontier Scout
Purpose:
- look outward for technical developments adjacent to Jonas’s actual curiosity graph
Writes/proposes:
frontier-inbox
Main anti-slop behavior:
- every signal must connect to an existing interest or open loop
- prefer pattern shifts, primitives, architecture changes, and disagreements over hype/news
3. Curiosity Ranker
Purpose:
- score, deduplicate, and diversify candidates so only a few strong topics survive
Writes/proposes:
- ranked
candidate-backlog
Current scoring dimensions:
- relevance
- novelty
- depth
- adjacency
- experimentability
- timeliness
Main anti-slop behavior:
- penalize repetition
- reject shallow or sensitive items
- preserve diversity across practical / conceptual / speculative outputs
4. Topic Composer
Purpose:
- convert ranked candidates into user-facing recommendations
Delivery modes:
topic-of-the-dayboredom-queuefrontier-scan
Main anti-slop behavior:
- default to one strong recommendation
- only expand into a queue when it improves decision quality
- keep chat concise and note expansion optional
On-demand flow
Defined in:
/home/claw/.openclaw/workspace/curiosity-stack/flows/on-demand-recommendation.yaml
This is the flow for prompts like:
- “what should I focus on?”
- “give me a rabbit hole”
- “what am I not seeing?”
- “give me something practical”
Behavior
- Load current state
- Check whether backlog freshness is sufficient
- If stale or thin, run a lightweight refresh
- Classify user intent
- Select one high-conviction item or a diversified 3-pack
- Compose the final recommendation
- Append result to recency memory
This makes the system responsive without requiring a full background run every time.
Scheduled/background flow
Defined in:
/home/claw/.openclaw/workspace/curiosity-stack/flows/scheduled-background.yaml
Recommended cadence
- Notes Distiller: 2–3x per week
- Frontier Scout: 2x per week
- Curiosity Ranker: after each upstream refresh
- Topic Composer: only when a topic clears threshold or when explicitly requested
Important decision
This system is not designed to force a daily topic.
Instead:
- notify only when quality clears threshold
- skip weak days
- prefer 3–5 strong outputs per week over daily sludge
Current thresholds:
- topic of the day min score:
0.78 - boredom queue min score:
0.68 - suppress same-theme repeat within:
5 days
Why this is now implementation-ready
Before this pass, the curiosity stack existed mainly as role descriptions.
After this pass, the system now has:
- explicit shared state
- explicit corpus rules
- explicit agent contracts
- explicit orchestration flows
- explicit recommendation gating
That means the remaining work is mostly execution wiring:
- run the contracts with a real orchestrator or script
- persist concrete state files from the templates
- optionally add source scanning helpers or ACP/OpenClaw job wrappers
In other words:
the architecture step is done; what remains is operationalization
Suggested next implementation step
The cleanest next step would be a small runner that does:
scan personal-note deltas
-> run Notes Distiller
-> sample frontier inputs
-> run Frontier Scout
-> run Curiosity Ranker
-> persist backlog
-> call Topic Composer when user asks or when threshold passesThat could live as:
- an OpenClaw orchestration script
- a lightweight Node/Python runner
- or a future ACP-managed job chain
What remains
Design-wise, very little remains.
Operationally, the remaining items are:
- instantiate the template files into live state files
- decide the concrete execution runner
- optionally define source lists for Frontier Scout inputs
- optionally add logging / telemetry for recommendation quality over time
None of those require rethinking the system shape.
File map
Workspace implementation bundle
/home/claw/.openclaw/workspace/curiosity-stack/README.md/home/claw/.openclaw/workspace/curiosity-stack/state/dual-corpus-rules.yaml/home/claw/.openclaw/workspace/curiosity-stack/state/interest-map.template.json/home/claw/.openclaw/workspace/curiosity-stack/state/open-loops.template.json/home/claw/.openclaw/workspace/curiosity-stack/state/candidate-backlog.template.json/home/claw/.openclaw/workspace/curiosity-stack/state/recently-explored.template.json/home/claw/.openclaw/workspace/curiosity-stack/state/frontier-inbox.template.json/home/claw/.openclaw/workspace/curiosity-stack/contracts/notes-distiller.md/home/claw/.openclaw/workspace/curiosity-stack/contracts/frontier-scout.md/home/claw/.openclaw/workspace/curiosity-stack/contracts/curiosity-ranker.md/home/claw/.openclaw/workspace/curiosity-stack/contracts/topic-composer.md/home/claw/.openclaw/workspace/curiosity-stack/flows/on-demand-recommendation.yaml/home/claw/.openclaw/workspace/curiosity-stack/flows/scheduled-background.yaml
Main note
/home/claw/notes/AI/Agents/Pathfinder - Curiosity Stack Implementation.md
Published mirror
/home/claw/notes-site/content/AI/Agents/Pathfinder - Curiosity Stack Implementation.md
One-paragraph summary
The curiosity / second-brain stack is now specified as a concrete implementation bundle: shared state structures, dual-corpus rules, four executable agent contracts, and both on-demand and scheduled orchestration flows. The system is intentionally biased toward Jonas’s personal notes, treats the Shopee work vault as read-only contextual input, and is designed to surface a small number of high-conviction recommendations instead of becoming a trend feed.