| license | Apache-2.0 |
| name | always-on-agent-inputs |
| description | How to design contextual inputs for an always-on AI agent with episodic memory. Covers what data to feed the agent, how to structure observations and triggers, ambient context capture (screen, audio, calendar), context window budgeting, and retrieval strategies that keep the agent grounded in what's actually happening. Activate on: "what should the agent observe", "context inputs for agent", "ambient context capture", "agent triggers", "agent input design", "screenpipe integration", "context window budget", "what data to feed my agent", "/always-on-agent-inputs". NOT for: memory architecture and storage (use always-on-agent-architecture), application ideas (use always-on-agent-applications), safety concerns (use always-on-agent-safety).
|
| allowed-tools | ["Read","Write","Edit","Bash","Glob","Grep","Task","WebSearch","WebFetch"] |
| metadata | {"category":"AI & Agents","tags":["always-on","context-engineering","inputs","triggers","ambient-context","RAG","observations"],"pairs-with":[{"skill":"always-on-agent-architecture","reason":"Architecture defines the memory tiers; this skill defines what fills them"},{"skill":"always-on-agent-safety","reason":"Every input channel is a privacy surface — safety must review what you capture"},{"skill":"prompt-engineer","reason":"How you format and compress inputs determines agent reasoning quality"},{"skill":"agentic-patterns","reason":"Context management is a core agentic pattern that this skill specializes"}]} |
| category | Agent & Orchestration |
| tags | ["always","agent","inputs","rag","ai","design"] |
/always-on-agent-inputs — Feeding Context to a Persistent Agent
You are designing what an always-on agent sees, hears, and knows. The architecture skill handles where memory lives. This skill handles what goes into it — the raw signals, how they're structured, when the agent wakes up, and how to keep the context window honest.
DECISION POINTS
RETRIEVAL STRATEGY SELECTION
Agent Task Type → Retrieval Strategy
IF conversational/chat:
├─ Use recency-first (70% temporal, 30% semantic)
├─ Budget: 15K conversation history + 4K recent recall
└─ Skip archival unless user asks "remember when..."
IF problem-solving/debugging:
├─ Use relevance-first (60% semantic, 40% temporal)
├─ Budget: 8K archival + 4K recall + 2K ambient
└─ Include error patterns from past solutions
IF context-switch detected:
├─ Use frequency-based (what does user work on most?)
├─ Budget: 6K project context + 2K recent + 4K goals
└─ Pull entity history for active files/people
IF scheduled trigger (morning briefing):
├─ Use structured agenda (calendar + tasks + updates)
├─ Budget: 4K calendar + 4K unfinished tasks + 2K changes
└─ No conversation history needed
IF reactive trigger (CI failure, meeting starting):
├─ Use event-specific context loading
├─ Budget: 8K event context + 4K related history
└─ Skip general conversation unless relevant
AMBIENT DATA FILTERING
Screen/Audio Observation → Filter Decision
IF same app + same text for >5 minutes:
└─ DISCARD (no change, noise)
IF app switch detected:
├─ KEEP transition record
└─ Score relevance of new app content
IF high-signal keywords found:
├─ Check against active projects/goals
├─ IF match score >0.6 → STORE to archival + recall
├─ IF match score 0.3-0.6 → STORE to recall only
└─ IF match score <0.3 → DISCARD
IF technical error/exception visible:
├─ ALWAYS STORE (debugging context)
└─ Tag with urgency level
IF calendar event mentioned:
├─ ALWAYS STORE (temporal anchor)
└─ Cross-reference with actual calendar
TRIGGER URGENCY ASSIGNMENT
Event Type + Context → Urgency Level
IF CI failure:
├─ Production branch → ACTIVE (notify user)
├─ Feature branch + user currently coding → PASSIVE (mention when user next engages)
└─ Old branch/PR → SILENT (log only)
IF meeting starting:
├─ <5 minutes → ACTIVE (interrupt with prep)
├─ 5-15 minutes → BADGE (show prep available)
└─ >15 minutes → SILENT (prep in background)
IF code change detected:
├─ First commit on new branch → PASSIVE (note new work)
├─ Commit fixes previous error → PASSIVE (note resolution)
└─ Regular commits → SILENT (track progress)
IF mentioned in Slack:
├─ Direct message → ACTIVE (respond needed)
├─ Channel mention + urgent keywords → ACTIVE
└─ Channel mention, normal → BADGE (review when convenient)
FAILURE MODES