How does Pulse work without making LLM calls?
How does Pulse work without making LLM calls?
Pulse uses a three-layer hierarchical architecture where only the final reasoning step (if needed) involves an LLM:
- Layer 1 (Retina): Deterministic change detection—watches files, memory, time, and network for changes
- Layer 2 (Limbic Filter): Small neural networks (~50K-200K parameters) that run on CPU in under 5ms, producing relevance scores for each module cluster
- Layer 3 (Prefrontal Filter): Template-based question formation using string interpolation
How does Pulse handle the cold-start problem?
How does Pulse handle the cold-start problem?
Every AI agent system that learns from usage faces the cold-start problem: the model is useless before it has seen any data.Pulse solves this through module fingerprints—structured JSON documents that each module provides at registration time, describing what signals are associated with its relevance. These fingerprints include:
- Relevant file extensions and directories
- Typical activation hours and days
- Memory namespaces to monitor
- Expected signal patterns
What happens with rare events?
What happens with rare events?
For events that occur very rarely (once a year or less), the cluster model will have sparse training data and lower confidence. This is a known limitation.The module fingerprint prior provides a starting point, but rare-event prediction is inherently challenging. Future work may explore:
- Pre-training cluster models on aggregate anonymized data from multiple users (with consent)
- Transfer learning from similar modules
- Hybrid approaches that combine Pulse with explicit scheduling for known rare events
Is my data sent to external servers?
Is my data sent to external servers?
No. Pulse operates with privacy by design:
- All training data is stored locally on your machine in
~/.macroa/pulse/training_data.db - All model weights are stored locally in
~/.macroa/pulse/models/ - No data ever leaves your machine
- Pulse does not require an internet connection to function
How does Pulse improve over time?
How does Pulse improve over time?
Pulse uses online learning—it updates cluster models with one gradient step per new labeled example. Labels come from two sources:
- Implicit feedback: If the agent was activated and took an action (wrote to memory, ran a tool), the activation is labeled positive. If the agent did nothing, it’s labeled negative.
- Explicit feedback: The shell can present a “was this useful?” prompt. User response overrides implicit labels.
What signals does Pulse monitor?
What signals does Pulse monitor?
Pulse watches four types of signals:
Modules declare which signals they care about in their fingerprints. Pulse only monitors what modules have explicitly requested.
| Signal Source | What’s Detected | Example Use Case |
|---|---|---|
| File system | New, modified, or deleted files in monitored directories | Homework assignment appears in Downloads |
| Memory | Facts written or updated in monitored namespaces | Last assignment check date updated |
| Time | Cyclical time features (hour of day, day of week, time since last activation) | It’s 3pm on a weekday (typical study time) |
| Network (optional) | Hash changes on monitored HTTP endpoints | Course website updated with new assignment |
Can Pulse be fooled or exploited?
Can Pulse be fooled or exploited?
Like any perceptual system, Pulse can be triggered by adversarial inputs. For example:
- A malicious file placed in a watched directory could trigger the Pulse
- Rapid file system changes could cause false positives
- Capability-based security: Modules can only watch directories they’ve declared in their fingerprints
- Threshold tuning: Cluster models require a minimum relevance score before firing
- User feedback: Incorrect activations are labeled as negative examples, teaching the model to ignore similar patterns
How much CPU and memory does Pulse use?
How much CPU and memory does Pulse use?
Pulse is designed to run continuously in the background with minimal resource usage:
- CPU: Layer 1 uses filesystem watchers (inotify on Linux) which are event-driven and idle when nothing changes. Layer 2 runs small models (under 5ms inference time per cluster). Layer 3 is string interpolation (~0 cost).
- Memory: Each cluster model is ~50K-200K parameters (~200KB-800KB per cluster). With 10 clusters, total memory usage is under 10MB for models alone.
- Disk: Training data is stored in SQLite. Size grows over time but is typically under 50MB even after months of usage.
What's the difference between Pulse and a cron job?
What's the difference between Pulse and a cron job?
A cron job asks: “Is it 3pm?”Pulse asks: “Does the current state of the world look like a state that has historically preceded something worth doing?”Key differences:
Pulse can complement cron jobs for known, scheduled events. But it excels at the long tail of events that are hard to schedule explicitly.
| Cron Job | Pulse |
|---|---|
| Fires at fixed times | Fires based on learned patterns |
| Requires explicit scheduling | Learns from usage |
| Same behavior forever | Improves over time |
| No context about environment | Considers files, memory, time together |
| Developer anticipates triggers | System discovers triggers |
What models does Pulse use for Layer 2?
What models does Pulse use for Layer 2?
Layer 2 uses small LSTM (Long Short-Term Memory) or TCN (Temporal Convolutional Network) models. These are well-established architectures for time-series pattern recognition.Key characteristics:
- 50,000-200,000 parameters per cluster model
- 32-64 hidden units
- Single sigmoid output (relevance score 0.0-1.0)
- Under 5ms inference time on CPU
- Trained with PyTorch
Can I disable Pulse?
Can I disable Pulse?
Yes. Pulse is a component of the Macroa platform, but it can be disabled if you prefer a purely reactive agent system.When Pulse is disabled:
- Agents will only respond to explicit triggers (user messages, webhooks, cron jobs)
- No background monitoring occurs
- No cluster models are trained
- All module fingerprints are ignored
What happens when multiple clusters fire at the same time?
What happens when multiple clusters fire at the same time?
When multiple cluster models produce relevance scores above their thresholds simultaneously, Pulse emits multiple
ScopedQuestion objects—one per cluster.The kernel (the agent runtime component) receives these questions and can:- Queue them and process sequentially
- Prioritize based on cluster confidence scores
- Batch them into a single agent activation with multiple focused questions
Can I see what Pulse is learning?
Can I see what Pulse is learning?
Yes. Pulse provides introspection through the Macroa shell (when built):
- View recent signal events and which clusters fired
- Inspect cluster model confidence scores over time
- See the training examples that have been collected
- Export model weights for analysis
- Visualize activation patterns
Is Pulse production-ready?
Is Pulse production-ready?
No. Pulse is currently in proof-of-concept / active development stage.Current status:
- Architecture specification is complete
- Core concepts have been validated through design review
- Implementation is in progress
- Integration with the Macroa kernel is not yet complete
How can I contribute or provide feedback?
How can I contribute or provide feedback?
Macroa-Pulse is an open-source project under the AGPLv3 license. Contributions are welcome:Best ways to contribute right now:
- Read the architecture documents in the GitHub repository to understand the design
- Provide feedback on the design paper and architecture guide (open an issue)
- Experiment with the code once the proof of concept is released
- Propose modules that would benefit from proactive activation
- Report bugs or suggest improvements through GitHub issues
Still Have Questions?
If your question isn’t answered here, feel free to:- Open an issue on the GitHub repository
- Read the detailed design paper
- Check the architecture guide for technical details
Join the Discussion
Visit the GitHub repository to ask questions and contribute