Sessions
/
Session 3
/
Slides
Slides es
Previous
Speaker script
Next
On this page
Session 3 — Skills, Storage & Memory
Where Sessions 1–2 left off
Today's scope, in one slide
The session-3 mental model
Behavior
Boundaries
Why we needed extra tools
Ollama Monitor — what it is
Ollama Monitor — features
Color codes
Toast triggers
Ollama Monitor — install
Ollama Monitor — demo
Aspire Monitor — what it is
Aspire Monitor — features
What it watches
What it surfaces
Aspire Monitor — install
Aspire Monitor — demo
Why touch tool-calling at all?
OpenAI format alignment
What changed since Session 2
FileSystemTool refactor
Tool sanitizers — the new contract
Three sanitizers ship with v1
PathSanitizer
UrlSanitizer
JsonArgumentSanitizer
End-to-end: what a tool call looks like now
A concrete diff: read operation
Per-tool metadata is unchanged
NDJSON event additions
What it buys you
What is a skill?
Why skills (vs. tools)?
The headline bug we fixed
The fix: one loader, one source of truth
3-layer storage
Why shared storage, not per-agent?
agentskills.io frontmatter
What gets dropped from old frontmatter
FileSystemWatcher hot-reload
Snapshot per request
Per-agent enablement: enabled.json
Default = disabled, fail-closed
Skills.razor UI — top-level nav
Browse
Act
Per-agent assignment modal
4-step import wizard
v1 import: awesome-copilot only
Manual authoring path
SKILL.md anatomy in detail
Bounded resources (S-11)
Hardening invariants S-1..S-12
Hardening invariants S-1..S-12 (cont.)
Structured logging — 14 events
What we DON'T log
E2E tests — what passes
Implementation waves
Bruno's question
What was wrong
The new defaults
Configuration: three sources, one winner
OPENCLAWNET_STORAGE_ROOT — one name only
ISafePathResolver — one resolver, one rule
H-1: storage-root containment, fail-closed
H-2: one sanitizer, one resolver
H-3: no reparse-point escapes
H-4: boundary-safe containment
H-5: strict name allowlist
H-6: per-agent scoping seam
H-7: ACL hardening on credential subdirs
H-8: audit every write
All eight, side by side
Wiring it up
Settings UI
Migration story
The context window problem
Summarization strategy
SessionSummary entity
IMemoryService shape
Local embeddings — no API calls
Semantic search across past sessions
Transparent memory dashboard
What's coming next (Session 4 preview)
Demo 1 — aspire start walkthrough
Demo 2 — curl /api/skills
Demo 3 — manual skill drop-in
Key insights
What we built today ✅
Session 4 preview
Scroll to top
Ask AI about this page
Copy as Markdown
Was this page helpful?
Yes
No