| name | mlp-continuity |
| description | Full-stack memory continuity with MLP storage. Combines the Continuity Framework's reflection capabilities with encrypted IPFS/Pinata storage via the Memory Ledger Protocol. |
| version | 1.0.0 |
MLP Continuity - Full Stack Integration
Combines asynchronous reflection with sovereign, encrypted memory storage via the Memory Ledger Protocol.
Architecture
┌─────────────────────────────────────────────────────────────┐
│ Full Stack Continuity │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Continuity Framework (Reflection) │ │
│ │ Classifier → Scorer → Generator → Integration │ │
│ └───────────────────────┬─────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ MLP Storage Layer │ │
│ │ Encryption → IPFS → Envelopes │ │
│ └───────────────────────┬─────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Decentralized Storage │ │
│ │ IPFS / Pinata / Arweave │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
Features
| Feature | Reflection-Only | Full Stack |
|---|
| Memory extraction | ✓ | ✓ |
| Confidence scoring | ✓ | ✓ |
| Question generation | ✓ | ✓ |
| Local markdown storage | ✓ | ✓ |
| Encrypted storage | ✗ | ✓ |
| IPFS/Pinata persistence | ✗ | ✓ |
| Cross-platform portability | ✗ | ✓ |
| Cryptographic attestations | ✗ | ✓ |
| Identity kernel integration | ✗ | ✓ |
| Context pack generation | ✗ | ✓ |
Commands
All Continuity Commands
Includes all commands from the base Continuity skill:
mlp-continuity reflect [--session <transcript>]
mlp-continuity questions [--limit 5]
mlp-continuity status
mlp-continuity greet
mlp-continuity resolve <question-id>
MLP-Specific Commands
mlp-continuity store "Memory content" --type fact --tags "tag1,tag2"
mlp-continuity load <envelope-cid>
mlp-continuity context-pack [--intent general_session]
mlp-continuity export-identity <output-path>
mlp-continuity import-identity <input-path>
mlp-continuity sync
mlp-continuity mlp-status
Configuration
Environment Variables
export CONTINUITY_MEMORY_DIR=~/clawd/memory
export CONTINUITY_IDLE_THRESHOLD=1800
export CONTINUITY_QUESTION_LIMIT=3
export MLP_CONFIG_PATH=~/.openclaw/mlp-config.yaml
export PINATA_JWT=your_pinata_jwt_token
export PINATA_GATEWAY=your_gateway.mypinata.cloud
Config File (~/.openclaw/mlp-config.yaml)
mlp_version: "0.2"
storage:
provider: pinata
jwt: ${PINATA_JWT}
gateway: ${PINATA_GATEWAY}
encryption:
algorithm: "XChaCha20-Poly1305"
key_path: ~/.openclaw/keys
identity:
kernel_path: ~/.openclaw/identity-kernel.yaml
epoch_duration: "P30D"
Workflow
Session Start
- Load IdentityKernel from MLP storage
- Generate ContextPack with relevant memories
- Load pending questions from continuity store
- Surface questions in greeting
const result = await skill.onSessionStart();
Session End
- Run Continuity reflection (classifier → scorer → generator)
- Encrypt new memories
- Store encrypted blobs to IPFS
- Create MLP envelopes with attestations
- Save questions for next session
const result = await skill.onSessionEnd(session);
Multi-Agent Configuration
Add to your openclaw.json:
{
"agents": {
"list": [
{
"id": "main"
},
{
"id": "continuity-classifier",
"workspace": "~/clawd/continuity-agents/classifier",
"model": "anthropic/claude-sonnet-4",
"tools": {
"allow": ["read"]
}
},
{
"id": "continuity-scorer",
"workspace": "~/clawd/continuity-agents/scorer",
"model": "anthropic/claude-sonnet-4",
"tools": {
"allow": ["read"]
}
},
{
"id": "continuity-generator",
"workspace": "~/clawd/continuity-agents/generator",
"model": "anthropic/claude-sonnet-4",
"tools": {
"allow": ["read"]
}
}
]
}
}
Memory Flow
Conversation
│
▼
┌────────────────────────────────┐
│ Continuity Reflection │
│ - Classify memories │
│ - Score confidence │
│ - Generate questions │
└────────────────────────────────┘
│
▼
┌────────────────────────────────┐
│ MLP Storage Bridge │
│ - Convert to MLP format │
│ - Encrypt content │
│ - Sign with identity │
└────────────────────────────────┘
│
▼
┌────────────────────────────────┐
│ IPFS/Pinata │
│ - Store encrypted blob │
│ - Get CID │
└────────────────────────────────┘
│
▼
┌────────────────────────────────┐
│ MLP Envelope │
│ - Create envelope │
│ - Add attestations │
│ - Store to ledger │
└────────────────────────────────┘
Trust Model
| Component | Trust Level | Notes |
|---|
| Your agent | Trusted | Signs memories with identity |
| Continuity sub-agents | Partial | Read-only, no external access |
| Storage (IPFS) | Untrusted | Only sees encrypted data |
| Platform | Untrusted | No access to decryption keys |
Example: Full Reflection + Storage
import { MLPContinuity } from 'mlp-continuity';
const skill = new MLPContinuity();
await skill.init();
const reflection = await skill.reflect(conversation);
const context = await skill.generateContextPack();
Compatibility
- Node.js: >= 18.0.0
- MLP Spec: v0.2
- Continuity Framework: v1.0.0
- Storage: Pinata, IPFS, local (dev mode)
Migration from Continuity-Only
If you started with the continuity-only skill (skills/openclaw/continuity/):
mlp-continuity sync --source ~/clawd/memory
Related