Recursive Language Models Toolkit for processing unlimited context
Project description
RLM-Toolkit
Recursive Language Models Toolkit โ A high-security LangChain alternative for processing unlimited context (10M+ tokens) using recursive LLM calls.
๐ Quick Start
pip install rlm-toolkit
from rlm_toolkit import RLM
# Simple usage with Ollama
rlm = RLM.from_ollama("llama3")
result = rlm.run(
context=open("large_document.txt").read(),
query="What are the key findings?"
)
print(result.answer)
โจ Features
| Feature | Description |
|---|---|
| Infinite Context | Process 10M+ tokens with O(1) memory |
| InfiniRetri | ๐ Attention-based retrieval, 100% accuracy on 1M+ tokens |
| H-MEM | ๐ 4-level hierarchical memory with LLM consolidation |
| Self-Evolving | ๐ LLMs that improve through usage (R-Zero pattern) |
| Multi-Agent | ๐ Decentralized P2P agents with Trust Zones |
| DSPy Optimization | ๐ Automatic prompt optimization |
| Secure REPL | CIRCLE-compliant sandboxed code execution |
| Multi-Provider | 75 LLM providers (OpenAI, Anthropic, Google, Ollama, vLLM...) |
| Document Loaders | 135+ sources (Slack, Jira, GitHub, S3, databases...) |
| Vector Stores | 20+ stores (Pinecone, Chroma, Weaviate, pgvector...) |
| Embeddings | 15+ providers (OpenAI, BGE, E5, Jina, Cohere...) |
| Cost Control | Budget limits, cost tracking |
| Observability | OpenTelemetry, Langfuse, LangSmith, W&B (12 backends) |
| Memory Systems | Buffer, Episodic, Hierarchical (H-MEM) |
๐ Full Integration Catalog โ 287+ production-ready integrations
๐ฅ InfiniRetri (NEW)
Attention-based infinite context retrieval โ 100% accuracy on Needle-In-a-Haystack up to 1M+ tokens.
from rlm_toolkit.retrieval import InfiniRetriever
# Retrieve from 1M+ token documents
retriever = InfiniRetriever("Qwen/Qwen2.5-0.5B-Instruct")
answer = retriever.retrieve(
context=million_token_doc,
question="What is the secret code?"
)
# Or use automatic routing in RLM
from rlm_toolkit import RLM, RLMConfig
config = RLMConfig(
use_infiniretri=True,
infiniretri_threshold=100_000, # Auto-switch at 100K tokens
)
rlm = RLM.from_ollama("llama3", config=config)
result = rlm.run(huge_document, "Summarize") # Automatically uses InfiniRetri
Based on arXiv:2502.12962 โ requires
pip install infini-retri
๐ง Hierarchical Memory (H-MEM) (NEW)
Multi-level persistent memory with semantic consolidation โ memories that learn and evolve.
from rlm_toolkit.memory import HierarchicalMemory, SecureHierarchicalMemory
# Basic H-MEM
hmem = HierarchicalMemory()
hmem.add_episode("User asked about weather")
hmem.add_episode("AI responded with forecast")
hmem.consolidate() # Auto-creates traces, categories, domains
results = hmem.retrieve("weather")
# Secure H-MEM with encryption and trust zones
smem = SecureHierarchicalMemory(
agent_id="agent-001",
trust_zone="zone-secure"
)
smem.add_episode("Confidential data")
smem.grant_access("agent-002", "zone-secure")
4-Level Architecture:
Level 3: DOMAIN โ High-level knowledge
Level 2: CATEGORY โ Semantic categories
Level 1: TRACE โ Consolidated memories
Level 0: EPISODE โ Raw interactions
Based on arXiv H-MEM paper (July 2025)
๐งฌ Self-Evolving LLMs (NEW)
LLMs that improve reasoning through usage โ no human supervision required.
from rlm_toolkit.evolve import SelfEvolvingRLM, EvolutionStrategy
from rlm_toolkit.providers import OllamaProvider
# Create self-evolving RLM
evolve = SelfEvolvingRLM(
provider=OllamaProvider("llama3"),
strategy=EvolutionStrategy.CHALLENGER_SOLVER
)
# Solve with self-refinement
answer = evolve.solve("What is 25 * 17?")
print(f"Answer: {answer.answer}, Confidence: {answer.confidence}")
# Run training loop (generates challenges โ solves โ improves)
metrics = evolve.training_loop(iterations=10, domain="math")
print(f"Success rate: {metrics.success_rate}")
Strategies:
SELF_REFINEโ Iterative self-improvementCHALLENGER_SOLVERโ R-Zero co-evolutionary loopEXPERIENCE_REPLAYโ Learn from past solutions
Based on R-Zero (arXiv:2508.05004)
๐ค Multi-Agent Framework (NEW)
Decentralized P2P agents inspired by Meta Matrix โ no central orchestrator bottleneck.
from rlm_toolkit.agents import MultiAgentRuntime, SecureAgent, EvolvingAgent
# Create runtime
runtime = MultiAgentRuntime()
# Register agents with Trust Zones
runtime.register(SecureAgent("analyst", "Data Analyst", trust_zone="internal"))
runtime.register(EvolvingAgent("solver", "Problem Solver", llm_provider=provider))
# Run message through agents
from rlm_toolkit.agents import AgentMessage
message = AgentMessage(content="Analyze this data", routing=["analyst", "solver"])
result = runtime.run(message)
Agent Types:
SecureAgentโ H-MEM Trust Zones integrationEvolvingAgentโ Self-improving via R-ZeroSecureEvolvingAgentโ Both combined
Based on Meta Matrix (arXiv 2025)
๐ฏ DSPy-Style Optimization (NEW)
Automatic prompt optimization โ define what, not how.
from rlm_toolkit.optimize import Signature, Predict, ChainOfThought, BootstrapFewShot
# Define signature
sig = Signature(
inputs=["question", "context"],
outputs=["answer"],
instructions="Answer based on context"
)
# Use with Chain of Thought
cot = ChainOfThought(sig, provider)
result = cot(question="What is X?", context="X is 42")
# Auto-optimize with few-shot selection
optimizer = BootstrapFewShot(metric=lambda p, g: p["answer"] == g["answer"])
optimized = optimizer.compile(Predict(sig, provider), trainset=examples)
Modules: Predict, ChainOfThought, SelfRefine
Optimizers: BootstrapFewShot, PromptOptimizer
Inspired by Stanford DSPy
๐ฆ Installation
# Basic
pip install rlm-toolkit
# With all providers
pip install rlm-toolkit[all]
# Development
pip install -e ".[dev]"
๐ง Usage
Basic
from rlm_toolkit import RLM, RLMConfig
# With configuration
config = RLMConfig(
max_iterations=50,
max_cost=5.0, # USD
)
rlm = RLM.from_openai("gpt-4o", config=config)
result = rlm.run(context, query)
With Memory
from rlm_toolkit.memory import EpisodicMemory
memory = EpisodicMemory(max_entries=1000)
rlm = RLM.from_ollama("llama3", memory=memory)
# Memory persists across runs
result1 = rlm.run(doc1, "Summarize this")
result2 = rlm.run(doc2, "Compare with previous")
With Observability
from rlm_toolkit.observability import Tracer, CostTracker
tracer = Tracer(service_name="my-app")
cost_tracker = CostTracker(budget=10.0)
rlm = RLM.from_openai("gpt-4o", tracer=tracer, cost_tracker=cost_tracker)
๐ Security
RLM-Toolkit implements CIRCLE-compliant security with v1.2.1 hardening:
- AES-256-GCM โ Mandatory authenticated encryption for all persistent data
- Fail-Closed โ No XOR fallback; raises error if cryptography unavailable
- Rate Limiting โ 60s cooldown on reindex to prevent I/O exhaustion
- AST Analysis โ Block dangerous imports before execution
- Sandboxed REPL โ Isolated code execution with timeouts
- Virtual Filesystem โ Quota-enforced file operations
- Attack Detection โ Obfuscation and indirect attack patterns
from rlm_toolkit import RLMConfig, SecurityConfig
config = RLMConfig(
security=SecurityConfig(
sandbox=True,
max_execution_time=30.0,
max_memory_mb=512,
)
)
๐ Benchmarks
Based on RLM paper methodology:
| Benchmark | Score |
|---|---|
| OOLONG-Pairs | TBD |
| CIRCLE Security | ~95% |
๐ ๏ธ CLI
# Run a query
rlm run --model ollama:llama3 --context file.txt --query "Summarize"
# Interactive REPL
rlm repl --model openai:gpt-4o
# Cost tracking
rlm trace --session latest
๐ Documentation
v1.2.1: 156 files (78 EN + 78 RU) โ NIOKR 10/10
| Category | EN | RU |
|---|---|---|
| Concepts | 25 | 25 |
| Tutorials | 13 | 13 |
| Examples | 10 | 10 |
| How-To | 20 | 20 |
| Reference | 3 | 3 |
- Quickstart / ะัััััะน ััะฐัั
- Tutorials / ะขััะพัะธะฐะปั
- Security Guide
- Certification Checklist
- Examples
๐ค Contributing
# Clone repo
git clone https://github.com/DmitrL-dev/AISecurity.git
cd AISecurity/sentinel-community/rlm-toolkit
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Lint
ruff check rlm_toolkit/
๐ License
Apache 2.0 โ see LICENSE
๐ Acknowledgments
- RLM Paper by Zhang, Kraska, Khattab
- CIRCLE Benchmark
- SENTINEL Community
Project details
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 rlm_toolkit-1.2.1.tar.gz.
File metadata
- Download URL: rlm_toolkit-1.2.1.tar.gz
- Upload date:
- Size: 194.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc32598e004b671f89c6314e73a4e42b6d97f96141df4e95322c762632811c61
|
|
| MD5 |
b2b4f7c79391651c0723078c76501387
|
|
| BLAKE2b-256 |
cba1fbe1229b010a4ba59ea4c2d1761a6b94f0a9b34893d1b317a13fa25a229f
|
File details
Details for the file rlm_toolkit-1.2.1-py3-none-any.whl.
File metadata
- Download URL: rlm_toolkit-1.2.1-py3-none-any.whl
- Upload date:
- Size: 233.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c3332ffd2200e856683465fb5d43349ce1fa162ccfebf2c10a97ae8b30c164e
|
|
| MD5 |
b63f2b9bfcc126ccacea1515b9cfb8de
|
|
| BLAKE2b-256 |
2e7132429fdb00f78e6ac154da46aa6f9787cd48dfcb42f71d28c20cc1be1154
|