Zero-trust memory toolkit for AI Agents. Pure Python, zero infrastructure, self-defending.
Project description
MOYU โ Secure Memory Toolkit for AI Agents
Your AI remembers every conversation, but is your memory safe? Will old memories bloat your context window?
MOYU is a lightweight memory toolkit that gives your Agent a secure, self-managing, cross-session persistent memory system. Pure Python, zero infrastructure, plug-and-play with one folder. Works with Hermes, OpenClaw, LangChain, AutoGen, or any custom Python project.
v2.5.1 โ Security hardening: LLM guard reworked (+38% interception), pattern library expanded (433โ513), circuit breaker optimized with exponential backoff. 13,705 adversarial samples validated. Now available via pip install moyu-memory.
๐ Quick Start
One-line install (recommended):
pip install moyu-memory
Then use it anywhere:
moyu search "what did we talk about last time"
Or copy the toolkit (no pip needed):
pip install -r requirements.txt
Copy the moyu_toolkit/ folder into your project and run:
cd moyu_toolkit
python3 moyu.py search "what did we talk about last time"
Zero-config mode: Works out of the box without an API key. Install FastEmbed to unlock semantic search (see
requirements.txt).
python3 moyu.py help # List all commands
python3 moyu.py demo # Show capabilities
python3 moyu.py init # Initialize file integrity protection
๐ก๏ธ Security Capability โ What MOYU Does and Doesn't Cover
MOYU's defense chain is a layered deterrent, not a silver bullet. Honest assessment by threat level:
| Level | Threat | Coverage | How |
|---|---|---|---|
| ๐ข | Accidental misuse (fat-finger, mis-script) | ~90% | Password gate + burst guard + integrity check + daily backup |
| ๐ข | Script-kiddie injection (known patterns) | ~70% | Content gate (injection patterns + regex combos) + loop detection |
| ๐ก | Simple prompt injection (standard variants) | ~60% | Regex covers (forget |
| ๐ | Professional adversarial injection (targeted bypass) | ~20% | Keyword-based gates can't catch every novel variant |
| ๐ | Semantic-level injection (metaphor, abstraction, no keywords) | ~60% | LLM Security Guard detects semantic bypasses โ regex-untouched patterns like "pretend to be DAN" are caught. Uses your configured LLM. Falls back to safe on API failure: never blocks legitimate writes. |
How it works: LLM Guard is a second layer after regex โ regex untouched โ LLM verdict. No API key? Silent degrade to regex-only. This means semantic injection coverage goes from ~0% to ~60% without breaking zero-config.
MOYU's strength is in the combination: content gate + LLM guard + PII redaction + write burst guard + forensic analysis + password gate + integrity check + auto-restore + loop detection โ unique layers no other memory toolkit offers.
Additional opt-in: user isolation (per-directory storage) & AES-256-GCM file encryption (requires cryptography). Not in default config โ add to config.yaml to enable:
security:
isolation:
enabled: true
user_id: "your-username" # separate storage per user
encryption:
enabled: true # AES-256-GCM file encryption
Encryption also requires MOYU_ENCRYPTION_PASSWORD environment variable.
๐ Command Reference
All commands through a single entry point:
python3 moyu.py <command> [arguments]
๐ก๏ธ Defense & Security
| Command | Description |
|---|---|
moyu setup |
Set security password (required for dangerous operations) |
moyu verify <type> [desc] |
Verify dangerous operations (delete, modify config, etc.) |
moyu unlock |
Unlock security system (auto-locks for 30 min after 3 failed attempts) |
moyu check |
Check file integrity (SHA256 comparison + auto-recovery) |
moyu audit |
Full security audit โ all four defense layers |
moyu init |
Initialize integrity manifest |
Four-layer defense chain:
Layer 1 (pre-write): Content security gate + PII redaction โ injections & sensitive data blocked
Layer 2 (pre-op): Password verification โ dangerous operations blocked
Layer 3 (startup): Integrity check + forensic analysis โ tampering detected
Layer 4 (post-op): Auto-restore โ restore from daily backup
Additional defenses:
- Write burst protection โ >30 writes in 60s triggers fine-grained rollback + 5-minute lock + alert
- Tool call loop detection โ Intercepts infinite loops at agent layer, SHA256 fingerprint + cycle detection + hard abort
- PII redaction โ Chinese & international phone/ID/bank cards + email/SSN/credit cards/IPs/API keys, regex-based auto-replacement
๐ง Memory & Retrieval
| Command | Description |
|---|---|
moyu search <query> |
TEMPR multi-strategy search (semantic + BM25 keywords + time-weighted) + optional LLM rerank |
moyu stats |
Show all statistics (memory count, embedding type, source distribution) |
moyu status |
System status + defense chain visualization |
moyu context |
Get behavioral rules (inject into system prompt) |
moyu signals |
View active trigger words (from learner module) |
Search quality: Local FastEmbed 512-dim semantic vectors, no crash on missing โ auto-degrades to n-gram + BM25. Backed by SQLite FTS5 full-text index.
๐ Knowledge Layer
| Command | Description |
|---|---|
moyu kg search <entity> |
Search entity relationships in knowledge graph |
moyu kg search <entity> --snapshot YYYY-MM-DD |
Time-travel query โ view graph state at a past point in time |
moyu kg search <entity> --snapshot all |
Include all historical relations (including expired) |
moyu kg history <entity> |
View entity's complete timeline (lifecycle of all relations) |
moyu kg invalidate --source X --target Y --relation Z |
Mark a relation as expired (preserved for backtracking) |
moyu kg invalidate --entity E |
Expire an entity and all its relations |
moyu kg stats |
Knowledge graph stats (active/expired/total) |
moyu kb list |
List all workflow knowledge files |
moyu kb search <keyword> |
Search knowledge files |
moyu kb index |
Rebuild keyword index |
moyu kb read <file> |
Read a knowledge file |
โณ Lifecycle & Context Management
| Command | Description |
|---|---|
moyu compress |
View compression status |
moyu compress --now |
Force manual compression (password required) |
moyu compress config |
View compression parameters |
moyu compress set <key> <value> |
Adjust compression thresholds |
moyu compress diagnose |
Show detailed scan results for all supported agents |
moyu context |
One-line context usage percentage |
moyu context raw |
Get behavioral rules (inject into system prompt) |
moyu forget |
View forgetting curve status (4-gate + LLM review + distillation stats) |
moyu forget config |
View forgetting curve parameters |
moyu forget set <key> <value> |
Adjust forgetting parameters (demote_days, archive_days, etc.) |
moyu ref <name> |
Read original content of a compressed memory |
moyu ref list |
List all compressed memory references |
Forgetting curve + knowledge distillation:
- Four gates (OR logic): Safety window (14 days) โ Access density analysis โ Scene association protection โ LLM semantic importance review
- Distillation: Entity relations auto-extracted to knowledge graph before demotion โ structural knowledge survives when raw memory is cleared
- Task map: Auto-generated Mermaid task graph on wake โ agent sees the big picture at a glance
๐ง Context warning: MOYU auto-detects your running agent (Hermes, Claude Code, OpenClaw, Cursor, Continue), reads its real-time context usage, and injects a warning into behavior rules before compression kicks in.
# Quick check python3 moyu.py context # โ Hermes็ชๅฃ: 85% (็ดฏ่ฎก120,456/128,000, 45ๆฌก่ฐ็จ) โ ๏ธ ๅทฒๆทฑๅบฆๅ็ผฉ # Configure moyu compress set warn_threshold 0.6 # warn at 60% (default: 0.7) moyu compress set warn_language zh # Chinese warning moyu compress config # view all parametersCan't detect your agent? Run
moyu compress diagnosefor a per-agent path scan, or setMOYU_FORCE_PROVIDER/MOYU_PROVIDER_PATHto bypass auto-detection.
๐ Learning & Self-Reflection
| Command | Description |
|---|---|
moyu learn <text> |
Learn from user corrections (3 identical corrections โ permanent rule) |
moyu detect <text> |
Detect correction signals in text |
moyu reflect |
Self-reflect (cross-time association analysis, contradiction detection) |
๐ Session & Maintenance
| Command | Description |
|---|---|
moyu bridge |
View cross-session bridge status (prefill + current_context dual sync) |
moyu update |
Check GitHub for updates (TOFU checksum verification) |
moyu update now |
Download and apply latest update (password required) |
moyu demo |
Interactive capability showcase |
๐ฌ 26 Capabilities Detailed (7 LLM-Enhanced)
| # | Capability | Description |
|---|---|---|
| ๐ก๏ธ Defense Layer (9) | ||
| 1 | Content Security Gate | Blocks injection attacks before writing (injection patterns + regex combos, 8 categories) |
| 2 | Forensic Analysis | Detects injection patterns, JSON corruption, file tampering |
| 3 | Write Burst Protection | >30 writes/60s triggers fine-grained rollback + 5-min lock |
| 4 | Tool Call Loop Detection | Runtime-level infinite loop interception, SHA256 fingerprint + exhaustive cycle scan + hard abort |
| 5 | PII Redaction | Bilingual: Chinese & international phones, ID cards, bank cards, emails, SSNs, IPs, API keys โ regex-based, no deps |
| 6 | Password Verification | Pre-op confirmation + auto-lock after 3 failures (30 min) |
| 7 | Integrity Check & Recovery | SHA256 manifest + daily backups (3-day retention) |
| 8 | User Isolation & Encryption (opt-in) | Per-user storage directories + AES-256-GCM file encryption (requires cryptography, see requirements.txt) |
| 9 | LLM Security Guard (LLM) | Second layer after regex: regex-untouched inputs get LLM verdict for semantic injection. Uses your configured LLM. No API key? Degrades to regex-only โ never blocks legitimate writes. |
๐ง Memory Layer (4) 2 LLM-Enhanced
| # | Capability | Description |
|---|---|---|
| 10 | TEMPR Multi-Strategy Retrieval | Semantic embedding + BM25 keywords + time-weighted hybrid ranking + optional LLM rerank |
| 11 | Smart Summary (LLM) | add_memory auto-refined by LLM โ conversational filler removed, key facts preserved. Falls back to raw text. |
| 12 | FastEmbed Local Embedding | Local ONNX vectorization, no API dependency, auto-degrade to n-gram |
| 13 | SQLite FTS5 + MD5 Dedup | Full-text index + in-library/batch double dedup |
๐ Knowledge Layer (3) 1 LLM-Enhanced
| # | Capability | Description |
|---|---|---|
| 14 | Knowledge Graph | Entity-relation extraction (LLM-enhanced, falls back to regex) + time-travel snapshots + relation invalidation + full timeline + knowledge distillation |
| 15 | Workflow Knowledge Base | Markdown knowledge file indexing + keyword search |
| 16 | User Profile | Auto-extract preferences, habits, facts from conversation |
โณ Lifecycle Layer (4) 3 LLM-Enhanced
| # | Capability | Description |
|---|---|---|
| 17 | Context-Aware Compression + Warning | Two-tier (70% mild / 85% aggressive), originals preserved in refs/. Auto-detects agent context usage and warns before compression (configurable threshold, bilingual) |
| 18 | Task Map | Auto-generated Mermaid task graph on wake โ see full progress at a glance |
| 19 | Forgetting Curve | Four gates (safety window / access density / scene protection / LLM semantic review) + LLM scene classification + knowledge distillation |
| 20 | Memory Merge | Detect keyword-overlapping related memories + LLM merged summary. Originals preserved. |
๐ Learning & Reflection (2)
| # | Capability | Description |
|---|---|---|
| 21 | Learn from Corrections | Auto-detect correction signals, 3 identical corrections โ permanent behavioral rule |
| 22 | Self-Reflection | Analyze memory base on startup, discover cross-time associations, contradictions, topic shifts |
๐ Integration Layer (4)
| # | Capability | Description |
|---|---|---|
| 23 | Working Memory | Independent file, survives context compression |
| 24 | Cross-Session Bridge | Conversation summaries auto-synced to prefill + current_context, continuity across sessions |
| 25 | Auto-Update | Check GitHub for new versions, in-place update (TOFU checksum), preserves user data and config |
| 26 | Wake Orchestration | moyu_wake: full module pipeline โ checkโbackupโforgetโmergeโreflectโcontextโbridge |
๐ File Structure
moyu_toolkit/
โโโ agent_memory.py # Vector memory engine + TEMPR retrieval
โโโ agent_memory_sqlite.py # SQLite FTS5 search index
โโโ active_context.py # Working memory (compression-surviving)
โโโ context_manager.py # Context-aware compression + warning + task map
โโโ forgetting_curve.py # Memory lifecycle โ four gates + LLM review + knowledge distillation
โโโ memory_merge.py # Topic-aware memory merging
โโโ knowledge_graph.py # Entity-relation knowledge graph (with time-travel)
โโโ knowledge_base.py # Workflow knowledge base
โโโ learner.py # Learn from corrections + user profile
โโโ security.py # Memory self-protection โ password + lockout
โโโ session_bridge.py # Cross-session continuity
โโโ moyu.py # Unified CLI entry point
โโโ moyu_wake.py # Startup integration pipeline
โโโ moyu_demo.py # Interactive demo
โโโ updater.py # Auto-update (TOFU checksum verification)
โโโ self_reflection.py # Self-reflection
โโโ defense_toolkit/
โ โโโ integrity_checker.py # File integrity + auto-recovery + forensic analysis + alerts
โ โโโ forensic_patterns.json # Injection detection rule base (patterns + regex)
โ โโโ pii_redactor.py # PII redaction (bilingual, API key support)
โ โโโ isolation.py # User isolation (opt-in)
โ โโโ encrypt.py # AES-256-GCM file encryption (opt-in, requires cryptography)
โโโ tests/
โ โโโ test_all.py # Automated tests (26 items)
โโโ config.yaml # API keys & settings
โโโ requirements.txt
๐ Comparison (Honest)
| Dimension | MOYU | Mem0 | Letta | Zep | Cognee |
|---|---|---|---|---|---|
| Setup | Minimal: pip, zero config | Low: pip + API Key | Medium: needs runtime setup | Medium: cloud simple, self-host complex | Low: uv pip install |
| External deps | Zero: no DB/API/Docker | LLM API + vector DB | LLM API + storage | Cloud dep strong; self-host needs graph DB | LLM API |
| Security | Best: injection defense/PII redaction/integrity check/zero-trust | Medium: API Key + compliance | Basic: framework isolation | Medium: cloud SOC2/HIPAA | Basic: tenant isolation |
| Retrieval | Semantic+BM25+time+LLM rerank | Semantic+BM25+entity (3-way fusion) | Agent tool-call pagination | Temporal graph retrieval + validity window | Graph+vector hybrid |
| Lifecycle | Most complete: compression/forgetting review/merge/scene class, fully auto | ADD-only, no active forgetting | 3-tier memory, auto pagination | Temporal graph auto version tracking | Feedback learning, needs config |
| Knowledge Graph | Entity extraction+time-travel+distillation | Pro only ($249/mo) | Indirect (external tools) | Temporal graph, all tiers | Core feature, full OSS |
| Cross-session | Auto prefill sync | 3-tier isolation (user/session/agent) | Native (stateful runtime) | Temporal graph natural continuity | Cross-agent sharing |
| Offline | Fully offline, zero network | Partial (self-host + local embed) | Self-hostable | Self-host only | Fully local |
| Platform lock-in | Minimal: pure Python, any framework | Low: OSS, multi-language SDK | Medium: requires Letta framework | Medium: cloud has lock-in | Low: Python only |
Bottom line: MOYU excels at security, offline capability, and lifecycle management โ areas where alternatives offer little to none. Mem0 brings the richest ecosystem, Zep leads in temporal graph reasoning, and Cognee offers the most complete open-source knowledge graph. Choose by your scenario, not by feature count.
๐ฎ Use Cases
- Want your AI Agent to remember cross-session conversations with real security
- Frequently hit context limits, need auto-compression without losing important memories
- Concerned about PII leaks โ don't want phone numbers, IDs, API keys lingering in memory files
- Switching between Hermes, OpenClaw, LangChain, or custom projects, need a unified memory solution
- Want zero infrastructure โ no Docker, no databases, no signups
๐ License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file moyu_memory-2.5.1.tar.gz.
File metadata
- Download URL: moyu_memory-2.5.1.tar.gz
- Upload date:
- Size: 154.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0972df7dd269ea1e0ebdfc2faee5cc373e2a625afbbd79c6d99d3a53b2c86f6
|
|
| MD5 |
d07d8bfbd30c7497c2fd586094f5cfdf
|
|
| BLAKE2b-256 |
6a735ee5e127d13644d8b12eed3c7a5304ef56bb5000501e0ce5172642f41e0d
|
File details
Details for the file moyu_memory-2.5.1-py3-none-any.whl.
File metadata
- Download URL: moyu_memory-2.5.1-py3-none-any.whl
- Upload date:
- Size: 167.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b1e1a81995d4789dbfbd99b2bda5ba9b15b136332ee1bdac268b33279c5f555
|
|
| MD5 |
b56e64af1742b803bd5f05d91ff67f0d
|
|
| BLAKE2b-256 |
e44c89d64b5adfcfd23df25da2a807827a5141b1774fc862782606a5075ca8cc
|